diff --git a/includes/fbproduct.php b/includes/fbproduct.php index 12a3b41b5..3eabf797e 100644 --- a/includes/fbproduct.php +++ b/includes/fbproduct.php @@ -896,6 +896,10 @@ public function prepare_product( $retailer_id = null, $type_to_prepare_for = sel $product_data['gtin'] = $gtin; } + if ( $date_modified = $this->woo_product->get_date_modified() ) { + $product_data[ 'external_update_time' ] = $date_modified->getTimestamp(); + } + // Only use checkout URLs if they exist. $checkout_url = $this->build_checkout_url( $product_url ); if ( $checkout_url ) { diff --git a/includes/fbproductfeed.php b/includes/fbproductfeed.php index d65ed4192..6911371ba 100644 --- a/includes/fbproductfeed.php +++ b/includes/fbproductfeed.php @@ -384,7 +384,7 @@ public function get_product_feed_header_row() { return 'id,title,description,image_link,link,product_type,' . 'brand,price,availability,item_group_id,checkout_url,' . 'additional_image_link,sale_price_effective_date,sale_price,condition,' . - 'visibility,gender,color,size,pattern,google_product_category,default_product,variant,gtin,quantity_to_sell_on_facebook,rich_text_description' . PHP_EOL; + 'visibility,gender,color,size,pattern,google_product_category,default_product,variant,gtin,quantity_to_sell_on_facebook,rich_text_description,external_update_time' . PHP_EOL; } @@ -533,7 +533,8 @@ private function prepare_product_for_feed( $woo_product, &$attribute_variants ) static::format_string_for_feed( static::get_value_from_product_data( $product_data, 'variant' )) . ',' . static::format_string_for_feed( static::get_value_from_product_data( $product_data, 'gtin' )) . ',' . static::format_string_for_feed( static::get_value_from_product_data( $product_data, 'quantity_to_sell_on_facebook' )) . ',' . - static::format_string_for_feed( static::get_value_from_product_data( $product_data, 'rich_text_description' ) ) . PHP_EOL; + static::format_string_for_feed( static::get_value_from_product_data( $product_data, 'rich_text_description' ) ) . ',' . + static::get_value_from_product_data( $product_data, 'external_update_time' ) . PHP_EOL; } private static function format_additional_image_url( $product_image_urls ) { diff --git a/tests/Unit/fbproductTest.php b/tests/Unit/fbproductTest.php index c6bbe7396..a6506ba33 100644 --- a/tests/Unit/fbproductTest.php +++ b/tests/Unit/fbproductTest.php @@ -865,4 +865,34 @@ public function test_get_fb_brand_variable_products() { $brand = $facebook_product_variation->get_fb_brand(); $this->assertEquals($brand, 'Adidas'); } + + /** + * Test external_update_time is populated + * @return void + */ + public function test_external_update_time_set() { + $woo_product = WC_Helper_Product::create_simple_product(); + + $timestamp = time(); + $woo_product->set_date_modified($timestamp); + + $fb_product = new \WC_Facebook_Product( $woo_product ); + $data = $fb_product->prepare_product(); + + $this->assertEquals( $data['external_update_time'], $timestamp); + } + + /** + * Test external_update_time is not populated + * @return void + */ + public function test_external_update_time_unset() { + $woo_product = WC_Helper_Product::create_simple_product(); + $woo_product->set_date_modified(null); + + $fb_product = new \WC_Facebook_Product( $woo_product ); + $data = $fb_product->prepare_product(); + + $this->assertEquals(isset($data['external_update_time']), false); + } }