Product Feed PRO for WooCommerce - Version 7.5.9

Version Description

Added priceSpecification type to the JSON-LD structured data Fixed a bug where reviews were removed from the structured data

Download this release

Release Info

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

Code changes from version 7.5.8 to 7.5.9

Files changed (3) hide show
  1. js/woosea_key.js +1 -1
  2. readme.txt +9 -1
  3. woocommerce-sea.php +102 -5
js/woosea_key.js CHANGED
@@ -27,7 +27,7 @@ jQuery(document).ready(function($) {
27
  var license_key = $('#license-key').val();
28
 
29
  jQuery.ajax({
30
- url: 'https://www.adtribes.io/check/license.php?key=' + license_key + '&email=' + license_email + '&domain=' + root_domain + '&version=7.5.8',
31
  jsonp: 'callback',
32
  dataType: 'jsonp',
33
  type: 'GET',
27
  var license_key = $('#license-key').val();
28
 
29
  jQuery.ajax({
30
+ url: 'https://www.adtribes.io/check/license.php?key=' + license_key + '&email=' + license_email + '&domain=' + root_domain + '&version=7.5.9',
31
  jsonp: 'callback',
32
  dataType: 'jsonp',
33
  type: 'GET',
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.3
8
- Stable tag: 7.5.8
9
 
10
  == Description ==
11
 
@@ -312,6 +312,10 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
312
 
313
  === Changelog ===
314
 
 
 
 
 
315
  = 7.5.8 (2020-02-28) =
316
  * Adding Brand and MPN to product JSON-LD when woosea values are set for products;
317
  * When a variation SKU has been filled in that will show in the structured data SKU instead of the parent variable SKU;
@@ -2413,6 +2417,10 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
2413
 
2414
  == Upgrade Notice ==
2415
 
 
 
 
 
2416
  = 7.5.8 =
2417
  Adding Brand and MPN to product JSON-LD when woosea values are set for products;
2418
  When a variation SKU has been filled in that will show in the structured data SKU instead of the parent variable SKU;
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.3
8
+ Stable tag: 7.5.9
9
 
10
  == Description ==
11
 
312
 
313
  === Changelog ===
314
 
315
+ = 7.5.9 (2020-02-29) =
316
+ * Added priceSpecification type to the JSON-LD structured data
317
+ * Fixed a bug where reviews were removed from the structured data
318
+
319
  = 7.5.8 (2020-02-28) =
320
  * Adding Brand and MPN to product JSON-LD when woosea values are set for products;
321
  * When a variation SKU has been filled in that will show in the structured data SKU instead of the parent variable SKU;
2417
 
2418
  == Upgrade Notice ==
2419
 
2420
+ = 7.5.9 =
2421
+ Added priceSpecification type to the JSON-LD structured data
2422
+ Fixed a bug where reviews were removed from the structured data
2423
+
2424
  = 7.5.8 =
2425
  Adding Brand and MPN to product JSON-LD when woosea values are set for products;
2426
  When a variation SKU has been filled in that will show in the structured data SKU instead of the parent variable SKU;
woocommerce-sea.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * Plugin Name: Product Feed PRO for WooCommerce
4
- * Version: 7.5.8
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', '7.5.8' );
52
  define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
53
  define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
54
 
@@ -1335,7 +1335,8 @@ function woosea_product_delete_meta_price( $product = null ) {
1335
  'price' => $product_price,
1336
  'priceValidUntil' => $price_valid_until,
1337
  'priceSpecification' => array(
1338
- 'price' => $product_price,
 
1339
  'priceCurrency' => $shop_currency,
1340
  'valueAddedTaxIncluded' => wc_prices_include_tax() ? 'true' : 'false',
1341
  ),
@@ -1364,6 +1365,7 @@ function woosea_product_delete_meta_price( $product = null ) {
1364
  'price' => wc_format_decimal( $lowest, wc_get_price_decimals() ),
1365
  'priceCurrency' => $shop_currency,
1366
  'priceSpecification' => array(
 
1367
  'price' => wc_format_decimal( $lowest, wc_get_price_decimals() ),
1368
  'priceCurrency' => $shop_currency,
1369
  'valueAddedTaxIncluded' => wc_prices_include_tax() ? 'true' : 'false',
@@ -1618,7 +1620,7 @@ function woosea_product_fix_structured_data( $product = null ) {
1618
  '@id' => $link . '#product', // Append '#product' to differentiate between this @id and the @id generated for the Breadcrumblist.
1619
  'name' => $variable_product->get_name(),
1620
  'url' => $link,
1621
- 'description' => wp_strip_all_tags( do_shortcode( $variable_product->get_short_description() ? $variable_product->get_short_description() : $variable_product->get_description() ) ),
1622
  );
1623
  $image = wp_get_attachment_url( $variable_product->get_image_id() );
1624
  if ( $image ) {
@@ -1646,6 +1648,53 @@ function woosea_product_fix_structured_data( $product = null ) {
1646
  } else {
1647
  $markup['sku'] = $variable_product->get_id();
1648
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1649
  }
1650
  } else {
1651
  // This is a simple product
@@ -1683,6 +1732,54 @@ function woosea_product_fix_structured_data( $product = null ) {
1683
  } else {
1684
  $markup['sku'] = $product->get_id();
1685
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1686
  }
1687
  } else {
1688
  // Structured data fix is not enabled
@@ -4052,7 +4149,7 @@ function woosea_license_valid(){
4052
 
4053
  if(!empty($license_information['license_key'])){
4054
  $curl = curl_init();
4055
- $url = "https://www.adtribes.io/check/license.php?key=$license_information[license_key]&email=$license_information[license_email]&domain=$domain&version=7.5.8";
4056
 
4057
  curl_setopt_array($curl, array(
4058
  CURLOPT_RETURNTRANSFER => 1,
1
  <?php
2
  /**
3
  * Plugin Name: Product Feed PRO for WooCommerce
4
+ * Version: 7.5.9
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', '7.5.9' );
52
  define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
53
  define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
54
 
1335
  'price' => $product_price,
1336
  'priceValidUntil' => $price_valid_until,
1337
  'priceSpecification' => array(
1338
+ '@type' => 'PriceSpecification',
1339
+ 'price' => $product_price,
1340
  'priceCurrency' => $shop_currency,
1341
  'valueAddedTaxIncluded' => wc_prices_include_tax() ? 'true' : 'false',
1342
  ),
1365
  'price' => wc_format_decimal( $lowest, wc_get_price_decimals() ),
1366
  'priceCurrency' => $shop_currency,
1367
  'priceSpecification' => array(
1368
+ '@type' => 'PriceSpecification',
1369
  'price' => wc_format_decimal( $lowest, wc_get_price_decimals() ),
1370
  'priceCurrency' => $shop_currency,
1371
  'valueAddedTaxIncluded' => wc_prices_include_tax() ? 'true' : 'false',
1620
  '@id' => $link . '#product', // Append '#product' to differentiate between this @id and the @id generated for the Breadcrumblist.
1621
  'name' => $variable_product->get_name(),
1622
  'url' => $link,
1623
+ 'description' => wp_strip_all_tags( do_shortcode( $product->get_short_description() ? $product->get_short_description() : $product->get_description() ) ),
1624
  );
1625
  $image = wp_get_attachment_url( $variable_product->get_image_id() );
1626
  if ( $image ) {
1648
  } else {
1649
  $markup['sku'] = $variable_product->get_id();
1650
  }
1651
+
1652
+ if ( $product->get_rating_count() && wc_review_ratings_enabled() ) {
1653
+ $markup['aggregateRating'] = array(
1654
+ '@type' => 'AggregateRating',
1655
+ 'ratingValue' => $product->get_average_rating(),
1656
+ 'reviewCount' => $product->get_review_count(),
1657
+ );
1658
+
1659
+ // Markup 5 most recent rating/review.
1660
+ $comments = get_comments(
1661
+ array(
1662
+ 'number' => 5,
1663
+ 'post_id' => $product->get_id(),
1664
+ 'status' => 'approve',
1665
+ 'post_status' => 'publish',
1666
+ 'post_type' => 'product',
1667
+ 'parent' => 0,
1668
+ 'meta_query' => array( // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
1669
+ array(
1670
+ 'key' => 'rating',
1671
+ 'type' => 'NUMERIC',
1672
+ 'compare' => '>',
1673
+ 'value' => 0,
1674
+ ),
1675
+ ),
1676
+ )
1677
+ );
1678
+
1679
+ if ( $comments ) {
1680
+ $markup['review'] = array();
1681
+ foreach ( $comments as $comment ) {
1682
+ $markup['review'][] = array(
1683
+ '@type' => 'Review',
1684
+ 'reviewRating' => array(
1685
+ '@type' => 'Rating',
1686
+ 'ratingValue' => get_comment_meta( $comment->comment_ID, 'rating', true ),
1687
+ ),
1688
+ 'author' => array(
1689
+ '@type' => 'Person',
1690
+ 'name' => get_comment_author( $comment ),
1691
+ ),
1692
+ 'reviewBody' => get_comment_text( $comment ),
1693
+ 'datePublished' => get_comment_date( 'c', $comment ),
1694
+ );
1695
+ }
1696
+ }
1697
+ }
1698
  }
1699
  } else {
1700
  // This is a simple product
1732
  } else {
1733
  $markup['sku'] = $product->get_id();
1734
  }
1735
+
1736
+ if ( $product->get_rating_count() && wc_review_ratings_enabled() ) {
1737
+ $markup['aggregateRating'] = array(
1738
+ '@type' => 'AggregateRating',
1739
+ 'ratingValue' => $product->get_average_rating(),
1740
+ 'reviewCount' => $product->get_review_count(),
1741
+ );
1742
+
1743
+ // Markup 5 most recent rating/review.
1744
+ $comments = get_comments(
1745
+ array(
1746
+ 'number' => 5,
1747
+ 'post_id' => $product->get_id(),
1748
+ 'status' => 'approve',
1749
+ 'post_status' => 'publish',
1750
+ 'post_type' => 'product',
1751
+ 'parent' => 0,
1752
+ 'meta_query' => array( // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
1753
+ array(
1754
+ 'key' => 'rating',
1755
+ 'type' => 'NUMERIC',
1756
+ 'compare' => '>',
1757
+ 'value' => 0,
1758
+ ),
1759
+ ),
1760
+ )
1761
+ );
1762
+
1763
+ if ( $comments ) {
1764
+ $markup['review'] = array();
1765
+ foreach ( $comments as $comment ) {
1766
+ $markup['review'][] = array(
1767
+ '@type' => 'Review',
1768
+ 'reviewRating' => array(
1769
+ '@type' => 'Rating',
1770
+ 'ratingValue' => get_comment_meta( $comment->comment_ID, 'rating', true ),
1771
+ ),
1772
+ 'author' => array(
1773
+ '@type' => 'Person',
1774
+ 'name' => get_comment_author( $comment ),
1775
+ ),
1776
+ 'reviewBody' => get_comment_text( $comment ),
1777
+ 'datePublished' => get_comment_date( 'c', $comment ),
1778
+ );
1779
+ }
1780
+ }
1781
+ }
1782
+
1783
  }
1784
  } else {
1785
  // Structured data fix is not enabled
4149
 
4150
  if(!empty($license_information['license_key'])){
4151
  $curl = curl_init();
4152
+ $url = "https://www.adtribes.io/check/license.php?key=$license_information[license_key]&email=$license_information[license_email]&domain=$domain&version=7.5.9";
4153
 
4154
  curl_setopt_array($curl, array(
4155
  CURLOPT_RETURNTRANSFER => 1,