Product Feed PRO for WooCommerce - Version 8.3.6

Version Description

Added priceValidUntil structured data for variable and variation products

Download this release

Release Info

Developer jorisverwater
Plugin Icon 128x128 Product Feed PRO for WooCommerce
Version 8.3.6
Comparing to
See all releases

Code changes from version 8.3.5 to 8.3.6

Files changed (2) hide show
  1. readme.txt +7 -1
  2. woocommerce-sea.php +22 -16
readme.txt CHANGED
@@ -5,7 +5,7 @@ License URI: http://www.gnu.org/licenses/gpl.html
5
  Tags: Product Feed, Google Shopping, Google Shopping Feed, WooCommerce Product Feed, WooCommerce Product Feed PRO, Bing Shopping, Bing product feed, Bing remarking, Google Merchant Feed, Google DRM Feed, Google Dynamic Remarketing Feed, Facebook feed, Google feed, Bing feed, Facebook Product Feed, Facebook Dynamic remarketing, Data Feed, WooCommerce Feed, XML product feed, CSV product feed, TSV, TXT product feed, comparison shopping engines, comparison shopping websites, vergelijk.nl, vergelijk.be, vertaa.fi, beslist.nl, kieskeurig.nl, bol.com, raketten, pricerunner, pricegrabber, Buy, leGuide, Kelkoo, Twenga, Yandex, Etsy, Dealtime, Shopzilla, Billiger, Google Product Review feed
6
  Requires at least: 4.5
7
  Tested up to: 5.4
8
- Stable tag: 8.3.5
9
 
10
  == Description ==
11
 
@@ -313,6 +313,9 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
313
 
314
  === Changelog ===
315
 
 
 
 
316
  = 8.3.5 (2020-06-13) =
317
  * Changed the Google Product Review feed node order
318
 
@@ -2657,6 +2660,9 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
2657
 
2658
  == Upgrade Notice ==
2659
 
 
 
 
2660
  = 8.3.5 =
2661
  Changed the Google Product Review feed node order
2662
 
5
  Tags: Product Feed, Google Shopping, Google Shopping Feed, WooCommerce Product Feed, WooCommerce Product Feed PRO, Bing Shopping, Bing product feed, Bing remarking, Google Merchant Feed, Google DRM Feed, Google Dynamic Remarketing Feed, Facebook feed, Google feed, Bing feed, Facebook Product Feed, Facebook Dynamic remarketing, Data Feed, WooCommerce Feed, XML product feed, CSV product feed, TSV, TXT product feed, comparison shopping engines, comparison shopping websites, vergelijk.nl, vergelijk.be, vertaa.fi, beslist.nl, kieskeurig.nl, bol.com, raketten, pricerunner, pricegrabber, Buy, leGuide, Kelkoo, Twenga, Yandex, Etsy, Dealtime, Shopzilla, Billiger, Google Product Review feed
6
  Requires at least: 4.5
7
  Tested up to: 5.4
8
+ Stable tag: 8.3.6
9
 
10
  == Description ==
11
 
313
 
314
  === Changelog ===
315
 
316
+ = 8.3.6 (2020-06-14) =
317
+ * Added priceValidUntil structured data for variable and variation products
318
+
319
  = 8.3.5 (2020-06-13) =
320
  * Changed the Google Product Review feed node order
321
 
2660
 
2661
  == Upgrade Notice ==
2662
 
2663
+ = 8.3.6 =
2664
+ Added priceValidUntil structured data for variable and variation products
2665
+
2666
  = 8.3.5 =
2667
  Changed the Google Product Review feed node order
2668
 
woocommerce-sea.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * Plugin Name: Product Feed PRO for WooCommerce
4
- * Version: 8.3.5
5
  * Plugin URI: https://www.adtribes.io/support/?utm_source=wpadmin&utm_medium=plugin&utm_campaign=woosea_product_feed_pro
6
  * Description: Configure and maintain your WooCommerce product feeds for Google Shopping, Facebook, Remarketing, Bing, Yandex, Comparison shopping websites and over a 100 channels more.
7
  * Author: AdTribes.io
@@ -48,7 +48,7 @@ if (!defined('ABSPATH')) {
48
  * Plugin versionnumber, please do not override.
49
  * Define some constants
50
  */
51
- define( 'WOOCOMMERCESEA_PLUGIN_VERSION', '8.3.5' );
52
  define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
53
  define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
54
 
@@ -1269,6 +1269,8 @@ function woosea_product_delete_meta_price( $product = null ) {
1269
  $lowest = reset( $prices['price'] );
1270
  $highest = end( $prices['price'] );
1271
 
 
 
1272
  if ( $lowest === $highest ) {
1273
  $markup_offer = array(
1274
  '@type' => 'Offer',
@@ -1298,6 +1300,7 @@ function woosea_product_delete_meta_price( $product = null ) {
1298
  'lowPrice' => wc_format_decimal( $lowest, wc_get_price_decimals() ),
1299
  'highPrice' => wc_format_decimal( $highest, wc_get_price_decimals() ),
1300
  'priceCurrency' => $shop_currency,
 
1301
  'itemCondition' => 'https://schema.org/'.$json_condition.'',
1302
  'availability' => 'https://schema.org/' . $stock = ( $product->is_in_stock() ? 'InStock' : 'OutOfStock' ),
1303
  'sku' => $product->get_sku(),
@@ -1317,19 +1320,21 @@ function woosea_product_delete_meta_price( $product = null ) {
1317
  // variation product. That is why we also put this in the JSON
1318
  // When there are no parameters in the URL (so for normal users, not coming via Google Shopping URL's) show the old WooCommwerce JSON
1319
  $product_price = round(wc_get_price_to_display($product),2);
1320
-
1321
- $markup_offer += array(
1322
- '@type' => 'Offer',
1323
- 'price' => $product_price,
1324
- 'priceCurrency' => $shop_currency,
1325
- 'availability' => 'https://schema.org/' . ( $product->is_in_stock() ? 'InStock' : 'OutOfStock' ),
1326
- 'sku' => $product->get_sku(),
1327
- 'seller' => array(
1328
- '@type' => 'Organization',
1329
- 'name' => $shop_name,
1330
- 'url' => $shop_url,
 
 
1331
  ),
1332
- 'url' => $link
1333
  );
1334
 
1335
  }
@@ -1393,8 +1398,9 @@ function woosea_product_delete_meta_price( $product = null ) {
1393
  $lowest = reset( $prices['price'] );
1394
  $highest = end( $prices['price'] );
1395
  $permalink = get_permalink( $product->get_id() );
1396
-
1397
- if ( $lowest === $highest ) {
 
1398
 
1399
  $markup_offer = array(
1400
  '@type' => 'Offer',
1
  <?php
2
  /**
3
  * Plugin Name: Product Feed PRO for WooCommerce
4
+ * Version: 8.3.6
5
  * Plugin URI: https://www.adtribes.io/support/?utm_source=wpadmin&utm_medium=plugin&utm_campaign=woosea_product_feed_pro
6
  * Description: Configure and maintain your WooCommerce product feeds for Google Shopping, Facebook, Remarketing, Bing, Yandex, Comparison shopping websites and over a 100 channels more.
7
  * Author: AdTribes.io
48
  * Plugin versionnumber, please do not override.
49
  * Define some constants
50
  */
51
+ define( 'WOOCOMMERCESEA_PLUGIN_VERSION', '8.3.6' );
52
  define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
53
  define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
54
 
1269
  $lowest = reset( $prices['price'] );
1270
  $highest = end( $prices['price'] );
1271
 
1272
+ $price_valid_until = date( 'Y-m-d', $variable_product->get_date_on_sale_to()->getTimestamp() );
1273
+
1274
  if ( $lowest === $highest ) {
1275
  $markup_offer = array(
1276
  '@type' => 'Offer',
1300
  'lowPrice' => wc_format_decimal( $lowest, wc_get_price_decimals() ),
1301
  'highPrice' => wc_format_decimal( $highest, wc_get_price_decimals() ),
1302
  'priceCurrency' => $shop_currency,
1303
+ 'priceValidUntil' => $price_valid_until,
1304
  'itemCondition' => 'https://schema.org/'.$json_condition.'',
1305
  'availability' => 'https://schema.org/' . $stock = ( $product->is_in_stock() ? 'InStock' : 'OutOfStock' ),
1306
  'sku' => $product->get_sku(),
1320
  // variation product. That is why we also put this in the JSON
1321
  // When there are no parameters in the URL (so for normal users, not coming via Google Shopping URL's) show the old WooCommwerce JSON
1322
  $product_price = round(wc_get_price_to_display($product),2);
1323
+ $price_valid_until = date( 'Y-12-31', current_time( 'timestamp', true ) + YEAR_IN_SECONDS );
1324
+
1325
+ $markup_offer += array(
1326
+ '@type' => 'Offer',
1327
+ 'price' => $product_price,
1328
+ 'priceCurrency' => $shop_currency,
1329
+ 'priceValidUntil' => $price_valid_until,
1330
+ 'availability' => 'https://schema.org/' . ( $product->is_in_stock() ? 'InStock' : 'OutOfStock' ),
1331
+ 'sku' => $product->get_sku(),
1332
+ 'seller' => array(
1333
+ '@type' => 'Organization',
1334
+ 'name' => $shop_name,
1335
+ 'url' => $shop_url,
1336
  ),
1337
+ 'url' => $link
1338
  );
1339
 
1340
  }
1398
  $lowest = reset( $prices['price'] );
1399
  $highest = end( $prices['price'] );
1400
  $permalink = get_permalink( $product->get_id() );
1401
+ $price_valid_until = date( 'Y-m-d', $product->get_date_on_sale_to()->getTimestamp() );
1402
+
1403
+ if ( $lowest === $highest ) {
1404
 
1405
  $markup_offer = array(
1406
  '@type' => 'Offer',