Version Description
Added an attribute named "Main image simple and variations" which will always use the simple and variable main image
Download this release
Release Info
Developer | jorisverwater |
Plugin | Product Feed PRO for WooCommerce |
Version | 7.7.5 |
Comparing to | |
See all releases |
Code changes from version 7.7.4 to 7.7.5
- classes/class-attributes.php +3 -0
- classes/class-get-products.php +22 -21
- js/woosea_key.js +1 -1
- readme.txt +12 -6
- woocommerce-sea.php +4 -4
classes/class-attributes.php
CHANGED
@@ -266,6 +266,7 @@ public function get_mapping_attributes_dropdown() {
|
|
266 |
|
267 |
$images = array(
|
268 |
"image" => "Main image",
|
|
|
269 |
"feature_image" => "Featured image",
|
270 |
"image_1" => "Additional image 1",
|
271 |
"image_2" => "Additional image 2",
|
@@ -395,6 +396,7 @@ public function get_mapping_attributes_dropdown() {
|
|
395 |
"variable_link" => "Product variable link",
|
396 |
"add_to_cart_link" => "Add to cart link",
|
397 |
"image" => "Main image",
|
|
|
398 |
"feature_image" => "Feature image",
|
399 |
"product_type" => "Product Type",
|
400 |
"content_type" => "Content Type",
|
@@ -454,6 +456,7 @@ public function get_mapping_attributes_dropdown() {
|
|
454 |
|
455 |
$images = array(
|
456 |
"image" => "Main image",
|
|
|
457 |
"feature_image" => "Featured image",
|
458 |
"image_1" => "Additional image 1",
|
459 |
"image_2" => "Additional image 2",
|
266 |
|
267 |
$images = array(
|
268 |
"image" => "Main image",
|
269 |
+
"image_all" => "Main image simple and variations",
|
270 |
"feature_image" => "Featured image",
|
271 |
"image_1" => "Additional image 1",
|
272 |
"image_2" => "Additional image 2",
|
396 |
"variable_link" => "Product variable link",
|
397 |
"add_to_cart_link" => "Add to cart link",
|
398 |
"image" => "Main image",
|
399 |
+
"image_all" => "Main image simple and variations",
|
400 |
"feature_image" => "Feature image",
|
401 |
"product_type" => "Product Type",
|
402 |
"content_type" => "Content Type",
|
456 |
|
457 |
$images = array(
|
458 |
"image" => "Main image",
|
459 |
+
"image_all" => "Main image simple and variations",
|
460 |
"feature_image" => "Featured image",
|
461 |
"image_1" => "Additional image 1",
|
462 |
"image_2" => "Additional image 2",
|
classes/class-get-products.php
CHANGED
@@ -721,7 +721,7 @@ class WooSEA_Get_Products {
|
|
721 |
if(!$shipping_cost){
|
722 |
$shipping_cost = 0;
|
723 |
}
|
724 |
-
|
725 |
// Do we need to convert the shipping costs with the Aelia Currency Switcher
|
726 |
if((isset($project_config['AELIA'])) AND (!empty($GLOBALS['woocommerce-aelia-currencyswitcher'])) AND (get_option ('add_aelia_support') == "yes")){
|
727 |
|
@@ -748,12 +748,12 @@ class WooSEA_Get_Products {
|
|
748 |
}
|
749 |
}
|
750 |
}
|
751 |
-
|
752 |
// WooCommerce Table Rate Bolder Elements
|
753 |
if(class_exists('BE_Table_Rate_WC')){
|
754 |
// Set shipping cost
|
755 |
-
|
756 |
-
|
757 |
if(!empty($product_id)){
|
758 |
// Add product to cart
|
759 |
if (isset($product_id)){
|
@@ -786,7 +786,7 @@ class WooSEA_Get_Products {
|
|
786 |
|
787 |
// CLASS SHIPPING COSTS
|
788 |
if(isset($v->instance_settings[$class_cost_id])){
|
789 |
-
|
790 |
if (is_numeric($v->instance_settings[$class_cost_id])){
|
791 |
$shipping_cost = $v->instance_settings[$class_cost_id];
|
792 |
|
@@ -816,7 +816,7 @@ class WooSEA_Get_Products {
|
|
816 |
} else {
|
817 |
$shipping_cost = $v->instance_settings[$class_cost_id];
|
818 |
$shipping_cost = str_replace("[qty]", "1", $shipping_cost);
|
819 |
-
|
820 |
$mathString = trim($shipping_cost); // trim white spaces
|
821 |
if (preg_match("/fee percent/", $mathString)){
|
822 |
$shipcost_piece = explode("+", $mathString);
|
@@ -858,7 +858,7 @@ class WooSEA_Get_Products {
|
|
858 |
}
|
859 |
}
|
860 |
}
|
861 |
-
|
862 |
// FREE SHIPPING COSTS IF MINIMUM FEE REACHED
|
863 |
if($v->id == "free_shipping"){
|
864 |
$minimum_fee = $v->min_amount;
|
@@ -952,19 +952,19 @@ class WooSEA_Get_Products {
|
|
952 |
}
|
953 |
|
954 |
// When Free shipping is allowed remove all other shipping costs
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
|
969 |
// Remove empty countries
|
970 |
foreach($shipping_arr as $k => $v){
|
@@ -972,7 +972,6 @@ class WooSEA_Get_Products {
|
|
972 |
unset($shipping_arr[$k]);
|
973 |
}
|
974 |
}
|
975 |
-
|
976 |
return $shipping_arr;
|
977 |
}
|
978 |
|
@@ -2169,6 +2168,7 @@ class WooSEA_Get_Products {
|
|
2169 |
$product_data['sale_price_effective_date'] = "";
|
2170 |
}
|
2171 |
$product_data['image'] = wp_get_attachment_url($product->get_image_id());
|
|
|
2172 |
$product_data['all_images'] = $product_data['image'];
|
2173 |
$product_data['all_gallery_images'] = "";
|
2174 |
|
@@ -2177,6 +2177,7 @@ class WooSEA_Get_Products {
|
|
2177 |
$parent_product = wc_get_product( $product_data['item_group_id'] );
|
2178 |
if(is_object($parent_product)){
|
2179 |
$gallery_ids = $parent_product->get_gallery_image_ids();
|
|
|
2180 |
$gal_id=1;
|
2181 |
foreach ($gallery_ids as $gallery_key => $gallery_value){
|
2182 |
$product_data["image_" . $gal_id] = wp_get_attachment_url($gallery_value);
|
721 |
if(!$shipping_cost){
|
722 |
$shipping_cost = 0;
|
723 |
}
|
724 |
+
|
725 |
// Do we need to convert the shipping costs with the Aelia Currency Switcher
|
726 |
if((isset($project_config['AELIA'])) AND (!empty($GLOBALS['woocommerce-aelia-currencyswitcher'])) AND (get_option ('add_aelia_support') == "yes")){
|
727 |
|
748 |
}
|
749 |
}
|
750 |
}
|
751 |
+
|
752 |
// WooCommerce Table Rate Bolder Elements
|
753 |
if(class_exists('BE_Table_Rate_WC')){
|
754 |
// Set shipping cost
|
755 |
+
|
756 |
+
$shipping_cost = 0;
|
757 |
if(!empty($product_id)){
|
758 |
// Add product to cart
|
759 |
if (isset($product_id)){
|
786 |
|
787 |
// CLASS SHIPPING COSTS
|
788 |
if(isset($v->instance_settings[$class_cost_id])){
|
789 |
+
|
790 |
if (is_numeric($v->instance_settings[$class_cost_id])){
|
791 |
$shipping_cost = $v->instance_settings[$class_cost_id];
|
792 |
|
816 |
} else {
|
817 |
$shipping_cost = $v->instance_settings[$class_cost_id];
|
818 |
$shipping_cost = str_replace("[qty]", "1", $shipping_cost);
|
819 |
+
|
820 |
$mathString = trim($shipping_cost); // trim white spaces
|
821 |
if (preg_match("/fee percent/", $mathString)){
|
822 |
$shipcost_piece = explode("+", $mathString);
|
858 |
}
|
859 |
}
|
860 |
}
|
861 |
+
|
862 |
// FREE SHIPPING COSTS IF MINIMUM FEE REACHED
|
863 |
if($v->id == "free_shipping"){
|
864 |
$minimum_fee = $v->min_amount;
|
952 |
}
|
953 |
|
954 |
// When Free shipping is allowed remove all other shipping costs
|
955 |
+
if(isset($currency)){
|
956 |
+
$free_check = $currency ." 0";
|
957 |
+
} else {
|
958 |
+
$free_check = "0";
|
959 |
+
}
|
960 |
+
|
961 |
+
if(in_array($free_check, array_column($shipping_arr, 'price'))) { // search value in the array
|
962 |
+
foreach($shipping_arr as $k => $v) {
|
963 |
+
if(!in_array($free_check, $v)){
|
964 |
+
unset($shipping_arr[$k]);
|
965 |
+
}
|
966 |
+
}
|
967 |
+
}
|
968 |
|
969 |
// Remove empty countries
|
970 |
foreach($shipping_arr as $k => $v){
|
972 |
unset($shipping_arr[$k]);
|
973 |
}
|
974 |
}
|
|
|
975 |
return $shipping_arr;
|
976 |
}
|
977 |
|
2168 |
$product_data['sale_price_effective_date'] = "";
|
2169 |
}
|
2170 |
$product_data['image'] = wp_get_attachment_url($product->get_image_id());
|
2171 |
+
$product_data['image_all'] = $product_data['image'];
|
2172 |
$product_data['all_images'] = $product_data['image'];
|
2173 |
$product_data['all_gallery_images'] = "";
|
2174 |
|
2177 |
$parent_product = wc_get_product( $product_data['item_group_id'] );
|
2178 |
if(is_object($parent_product)){
|
2179 |
$gallery_ids = $parent_product->get_gallery_image_ids();
|
2180 |
+
$product_data['image_all'] = wp_get_attachment_url($parent_product->get_image_id());
|
2181 |
$gal_id=1;
|
2182 |
foreach ($gallery_ids as $gallery_key => $gallery_value){
|
2183 |
$product_data["image_" . $gal_id] = wp_get_attachment_url($gallery_value);
|
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.7.
|
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.7.5',
|
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.7.
|
9 |
|
10 |
== Description ==
|
11 |
|
@@ -34,10 +34,10 @@ Determine yourself what attributes to in- or exclude in your product feed. This
|
|
34 |
= Field / attribute mapping =
|
35 |
Map your field attributes to those of the channels of your choice. For many channels using the right field names is obliged.
|
36 |
|
37 |
-
= Fix for WooCommerce structured data bug =
|
38 |
Because of a bug in WooCommerce variable products will get disapproved in Google's Merchant Center. WooCommerce adds the price of the cheapest variable product in the structured data for all variations of a product. Because of this there will be a mismatch between the product price you provide to Google in your Google Shopping product feed and the structured data price on the product landingpage. Google will therefor disapprove the product in its merchant center. You won't be able to advertise on that product in your Google Shopping campaign. Our plugin has a feature that will fix the structured data on variable product pages by adding the correct variable product price in the JSON-LD structured data so Google will approve the variable products you submitted.
|
39 |
|
40 |
-
= Add critical Google Shopping Feed fields to your store =
|
41 |
Google requires you to add certain fields to the feed you create for Google Shopping. However not all of the required fields are present in WooCommerce. Our plugin add's these fields / attributes for you so you can create a product feed that meets Google's requirements. The plugin will add the following product input fields for you: Brand, GTIN, UPC, MPN, EAN, Product condition (New, Refurbished, Used) unit pricing measure, unit pricing base measure, installment and an Optimised title field.
|
42 |
|
43 |
= Performance based =
|
@@ -86,13 +86,13 @@ Use the product tag information for your product feeds or to create filters and
|
|
86 |
= Product feed statistics =
|
87 |
Product feed statistics showing you the amount of products in yor product feed after every update and refresh.
|
88 |
|
89 |
-
= WPML =
|
90 |
Our plugin supports WPML
|
91 |
|
92 |
-
= WCML - WooCommerce Multilingual =
|
93 |
Our plugin supports WooCommerce Multilangual, especially the currency switcher
|
94 |
|
95 |
-
= Aelia Currency Switcher =
|
96 |
Our plugin supports the Aelia Currency Switcher
|
97 |
|
98 |
= Google Shopping product feed tutorial =
|
@@ -312,6 +312,9 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
|
|
312 |
|
313 |
=== Changelog ===
|
314 |
|
|
|
|
|
|
|
315 |
= 7.7.4 (2020-03-15) =
|
316 |
* Fixed a bug where rules on empty numeric product values did not work. This has been fixed now.
|
317 |
|
@@ -2465,6 +2468,9 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
|
|
2465 |
|
2466 |
== Upgrade Notice ==
|
2467 |
|
|
|
|
|
|
|
2468 |
= 7.7.4 =
|
2469 |
Fixed a bug where rules on empty numeric product values did not work. This has been fixed now.
|
2470 |
|
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.7.5
|
9 |
|
10 |
== Description ==
|
11 |
|
34 |
= Field / attribute mapping =
|
35 |
Map your field attributes to those of the channels of your choice. For many channels using the right field names is obliged.
|
36 |
|
37 |
+
= Fix for WooCommerce structured data bug (Elite version) =
|
38 |
Because of a bug in WooCommerce variable products will get disapproved in Google's Merchant Center. WooCommerce adds the price of the cheapest variable product in the structured data for all variations of a product. Because of this there will be a mismatch between the product price you provide to Google in your Google Shopping product feed and the structured data price on the product landingpage. Google will therefor disapprove the product in its merchant center. You won't be able to advertise on that product in your Google Shopping campaign. Our plugin has a feature that will fix the structured data on variable product pages by adding the correct variable product price in the JSON-LD structured data so Google will approve the variable products you submitted.
|
39 |
|
40 |
+
= Add critical Google Shopping Feed fields to your store (Elite version) =
|
41 |
Google requires you to add certain fields to the feed you create for Google Shopping. However not all of the required fields are present in WooCommerce. Our plugin add's these fields / attributes for you so you can create a product feed that meets Google's requirements. The plugin will add the following product input fields for you: Brand, GTIN, UPC, MPN, EAN, Product condition (New, Refurbished, Used) unit pricing measure, unit pricing base measure, installment and an Optimised title field.
|
42 |
|
43 |
= Performance based =
|
86 |
= Product feed statistics =
|
87 |
Product feed statistics showing you the amount of products in yor product feed after every update and refresh.
|
88 |
|
89 |
+
= WPML (Elite version) =
|
90 |
Our plugin supports WPML
|
91 |
|
92 |
+
= WCML - WooCommerce Multilingual (Elite version) =
|
93 |
Our plugin supports WooCommerce Multilangual, especially the currency switcher
|
94 |
|
95 |
+
= Aelia Currency Switcher (Elite version) =
|
96 |
Our plugin supports the Aelia Currency Switcher
|
97 |
|
98 |
= Google Shopping product feed tutorial =
|
312 |
|
313 |
=== Changelog ===
|
314 |
|
315 |
+
= 7.7.5 (2020-03-18) =
|
316 |
+
* Added an attribute named "Main image simple and variations" which will always use the simple and variable main image
|
317 |
+
|
318 |
= 7.7.4 (2020-03-15) =
|
319 |
* Fixed a bug where rules on empty numeric product values did not work. This has been fixed now.
|
320 |
|
2468 |
|
2469 |
== Upgrade Notice ==
|
2470 |
|
2471 |
+
= 7.7.5 =
|
2472 |
+
Added an attribute named "Main image simple and variations" which will always use the simple and variable main image
|
2473 |
+
|
2474 |
= 7.7.4 =
|
2475 |
Fixed a bug where rules on empty numeric product values did not work. This has been fixed now.
|
2476 |
|
woocommerce-sea.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Product Feed PRO for WooCommerce
|
4 |
-
* Version: 7.7.
|
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.7.
|
52 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
|
53 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
|
54 |
|
@@ -4215,7 +4215,7 @@ function woosea_license_valid(){
|
|
4215 |
|
4216 |
if(!empty($license_information['license_key'])){
|
4217 |
$curl = curl_init();
|
4218 |
-
$url = "https://www.adtribes.io/check/license.php?key=$license_information[license_key]&email=$license_information[license_email]&domain=$domain&version=7.7.
|
4219 |
|
4220 |
curl_setopt_array($curl, array(
|
4221 |
CURLOPT_RETURNTRANSFER => 1,
|
@@ -4299,7 +4299,7 @@ function woosea_create_all_feeds(){
|
|
4299 |
|
4300 |
// Only process projects that are active
|
4301 |
if(($val['active'] == "true") AND (!empty($val)) AND (isset($val['cron']))){
|
4302 |
-
|
4303 |
if (($val['cron'] == "daily") AND ($hour == 07)){
|
4304 |
$batch_project = "batch_project_".$val['project_hash'];
|
4305 |
if (!get_option( $batch_project )){
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Product Feed PRO for WooCommerce
|
4 |
+
* Version: 7.7.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 |
* Plugin versionnumber, please do not override.
|
49 |
* Define some constants
|
50 |
*/
|
51 |
+
define( 'WOOCOMMERCESEA_PLUGIN_VERSION', '7.7.5' );
|
52 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
|
53 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
|
54 |
|
4215 |
|
4216 |
if(!empty($license_information['license_key'])){
|
4217 |
$curl = curl_init();
|
4218 |
+
$url = "https://www.adtribes.io/check/license.php?key=$license_information[license_key]&email=$license_information[license_email]&domain=$domain&version=7.7.5";
|
4219 |
|
4220 |
curl_setopt_array($curl, array(
|
4221 |
CURLOPT_RETURNTRANSFER => 1,
|
4299 |
|
4300 |
// Only process projects that are active
|
4301 |
if(($val['active'] == "true") AND (!empty($val)) AND (isset($val['cron']))){
|
4302 |
+
|
4303 |
if (($val['cron'] == "daily") AND ($hour == 07)){
|
4304 |
$batch_project = "batch_project_".$val['project_hash'];
|
4305 |
if (!get_option( $batch_project )){
|