Product Feed PRO for WooCommerce - Version 7.4.6

Version Description

Solved a PHP warning that showed for variable products that had no attributes set Solved an IE 11 Javascript error Solved two illegal string offsets

Download this release

Release Info

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

Code changes from version 7.4.4 to 7.4.6

TODO.txt CHANGED
@@ -5,6 +5,7 @@ Tutorial / Blog posts:
5
  - Explain all the different fields/attributes that can be selected from the drop-downs
6
 
7
  Priority issues:
 
8
  - Change XML header for Elite users (so it doesn't say its free for example)
9
  - Make extra woosea fields available for front-end usage
10
  - Only update feed when changes to products have been made
5
  - Explain all the different fields/attributes that can be selected from the drop-downs
6
 
7
  Priority issues:
8
+ - Add feature to add parent product to feeds (DSA and possible others)
9
  - Change XML header for Elite users (so it doesn't say its free for example)
10
  - Make extra woosea fields available for front-end usage
11
  - Only update feed when changes to products have been made
classes/class-get-products.php CHANGED
@@ -913,6 +913,10 @@ class WooSEA_Get_Products {
913
  }
914
 
915
  if(strlen($shipping_cost) > 0){
 
 
 
 
916
  $zone_details['price'] = trim($currency." ".$shipping_cost);
917
  } else {
918
  unset($zone_details);
@@ -2530,6 +2534,12 @@ class WooSEA_Get_Products {
2530
  $product_data[$new_key] = $custom_value;
2531
  }
2532
 
 
 
 
 
 
 
2533
  /**
2534
  * We need to check if this product has individual custom product attributes
2535
  */
@@ -2665,24 +2675,27 @@ class WooSEA_Get_Products {
2665
  */
2666
  $mother_attributes = get_post_meta($product_data['item_group_id'], '_product_attributes');
2667
 
2668
- foreach ($mother_attributes as $attribute){
2669
- foreach($attribute as $key => $attr){
2670
- $attr_name = $attr['name'];
 
 
2671
 
2672
- if(!empty($attr_name)){
2673
- $terms = get_the_terms($product_data['item_group_id'], $attr_name);
2674
 
2675
- if(is_array($terms)){
2676
- foreach($terms as $term){
2677
- $attr_value = $term->name;
2678
- }
2679
- $product_data[$attr_name] = $attr_value;
2680
- } else {
2681
- // Add the variable parent attributes
2682
- // When the attribute was not set for variations
2683
- if($attr['is_variation'] == 0){
2684
- $new_key ="custom_attributes_" . $key;
2685
- $product_data[$new_key] = $attr['value'];
 
2686
  }
2687
  }
2688
  }
913
  }
914
 
915
  if(strlen($shipping_cost) > 0){
916
+
917
+ //error_log(print_r($project_config, TRUE));
918
+
919
+
920
  $zone_details['price'] = trim($currency." ".$shipping_cost);
921
  } else {
922
  unset($zone_details);
2534
  $product_data[$new_key] = $custom_value;
2535
  }
2536
 
2537
+
2538
+
2539
+
2540
+
2541
+
2542
+
2543
  /**
2544
  * We need to check if this product has individual custom product attributes
2545
  */
2675
  */
2676
  $mother_attributes = get_post_meta($product_data['item_group_id'], '_product_attributes');
2677
 
2678
+ if(!empty($mother_attributes)){
2679
+
2680
+ foreach ($mother_attributes as $attribute){
2681
+ foreach($attribute as $key => $attr){
2682
+ $attr_name = $attr['name'];
2683
 
2684
+ if(!empty($attr_name)){
2685
+ $terms = get_the_terms($product_data['item_group_id'], $attr_name);
2686
 
2687
+ if(is_array($terms)){
2688
+ foreach($terms as $term){
2689
+ $attr_value = $term->name;
2690
+ }
2691
+ $product_data[$attr_name] = $attr_value;
2692
+ } else {
2693
+ // Add the variable parent attributes
2694
+ // When the attribute was not set for variations
2695
+ if($attr['is_variation'] == 0){
2696
+ $new_key ="custom_attributes_" . $key;
2697
+ $product_data[$new_key] = $attr['value'];
2698
+ }
2699
  }
2700
  }
2701
  }
js/woosea_add_cart.js CHANGED
@@ -1,13 +1,12 @@
1
  jQuery(document).ready(function($) {
2
 
3
  //localStorage.removeItem("attributes");
4
-
5
  $( "select" ).change(function() {
6
 
7
  //localStorage.removeItem("attributes");
8
  var productId = $('input[name=product_id]').val();
9
- var selectedValue = this.selectedOptions[0].value;
10
  var selectedName = $(this).attr("name");
 
11
  var storedAttributes = JSON.parse(localStorage.getItem("attributes"));
12
 
13
  // Already saved a selection in local storage
1
  jQuery(document).ready(function($) {
2
 
3
  //localStorage.removeItem("attributes");
 
4
  $( "select" ).change(function() {
5
 
6
  //localStorage.removeItem("attributes");
7
  var productId = $('input[name=product_id]').val();
 
8
  var selectedName = $(this).attr("name");
9
+ var selectedValue = $(this).find('option:selected').text();
10
  var storedAttributes = JSON.parse(localStorage.getItem("attributes"));
11
 
12
  // Already saved a selection in local storage
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.4.4',
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.4.6',
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.4.4
9
 
10
  == Description ==
11
 
@@ -312,6 +312,14 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
312
 
313
  === Changelog ===
314
 
 
 
 
 
 
 
 
 
315
  = 7.4.4 (2020-02-11) =
316
  * Solved a PHP warning that showed when products had no custom attributes configured
317
 
@@ -2362,6 +2370,14 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
2362
 
2363
  == Upgrade Notice ==
2364
 
 
 
 
 
 
 
 
 
2365
  = 7.4.4 =
2366
  Solved a PHP warning that showed when products had no custom attributes configured
2367
 
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.4.6
9
 
10
  == Description ==
11
 
312
 
313
  === Changelog ===
314
 
315
+ = 7.4.6 (2020-02-19) =
316
+ * Solved a PHP warning that showed for variable products that had no attributes set
317
+ * Solved an IE 11 Javascript error
318
+ * Solved two illegal string offsets
319
+
320
+ = 7.4.5 (2020-02-12) =
321
+ * In between code test fix
322
+
323
  = 7.4.4 (2020-02-11) =
324
  * Solved a PHP warning that showed when products had no custom attributes configured
325
 
2370
 
2371
  == Upgrade Notice ==
2372
 
2373
+ = 7.4.6 =
2374
+ Solved a PHP warning that showed for variable products that had no attributes set
2375
+ Solved an IE 11 Javascript error
2376
+ Solved two illegal string offsets
2377
+
2378
+ = 7.4.5 =
2379
+ In between test fix
2380
+
2381
  = 7.4.4 =
2382
  Solved a PHP warning that showed when products had no custom attributes configured
2383
 
woocommerce-sea.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * Plugin Name: Product Feed PRO for WooCommerce
4
- * Version: 7.4.4
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.4.4' );
52
  define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
53
  define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
54
 
@@ -753,7 +753,12 @@ function woosea_license_notice(){
753
  $license_notification = get_option( 'woosea_license_notification_closed' );
754
  $screen = get_current_screen();
755
  $current_date = strtotime(date( 'd-m-Y' ));
756
- $off_date = strtotime($license_notification['timestamp']);
 
 
 
 
 
757
 
758
  // Show notification again after 30 days
759
  $diff_days = 2592000;
@@ -762,6 +767,8 @@ function woosea_license_notice(){
762
  // 30 days have passed
763
  if($diff > $diff_days){
764
  $license_notification['show'] = "yes";
 
 
765
  }
766
 
767
  // Add a check, notification should not show in the plugin pages itself as it will duplicate notices
@@ -3826,7 +3833,7 @@ function woosea_license_valid(){
3826
 
3827
  if(!empty($license_information['license_key'])){
3828
  $curl = curl_init();
3829
- $url = "https://www.adtribes.io/check/license.php?key=$license_information[license_key]&email=$license_information[license_email]&domain=$domain&version=7.4.4";
3830
 
3831
  curl_setopt_array($curl, array(
3832
  CURLOPT_RETURNTRANSFER => 1,
1
  <?php
2
  /**
3
  * Plugin Name: Product Feed PRO for WooCommerce
4
+ * Version: 7.4.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', '7.4.6' );
52
  define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
53
  define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
54
 
753
  $license_notification = get_option( 'woosea_license_notification_closed' );
754
  $screen = get_current_screen();
755
  $current_date = strtotime(date( 'd-m-Y' ));
756
+
757
+ if(isset($license_notification['timestamp'])){
758
+ $off_date = strtotime($license_notification['timestamp']);
759
+ } else {
760
+ $off_date = strtotime(date( 'd-m-Y' ));
761
+ }
762
 
763
  // Show notification again after 30 days
764
  $diff_days = 2592000;
767
  // 30 days have passed
768
  if($diff > $diff_days){
769
  $license_notification['show'] = "yes";
770
+ } else {
771
+ $license_notification['show'] = "no";
772
  }
773
 
774
  // Add a check, notification should not show in the plugin pages itself as it will duplicate notices
3833
 
3834
  if(!empty($license_information['license_key'])){
3835
  $curl = curl_init();
3836
+ $url = "https://www.adtribes.io/check/license.php?key=$license_information[license_key]&email=$license_information[license_email]&domain=$domain&version=7.4.6";
3837
 
3838
  curl_setopt_array($curl, array(
3839
  CURLOPT_RETURNTRANSFER => 1,