Version Description
Added a new attribute named "All images (comma separated)" which adds all product images on one line, comma separated The total product orders attribute is pretty heavy on MySql so we are now only requesting this data when it has been added to the field mapping and/or filters and rules
Download this release
Release Info
Developer | jorisverwater |
Plugin | Product Feed PRO for WooCommerce |
Version | 7.6.6 |
Comparing to | |
See all releases |
Code changes from version 7.6.5 to 7.6.6
- classes/class-attributes.php +2 -0
- classes/class-get-products.php +28 -3
- js/woosea_key.js +1 -1
- pages/admin/woosea-manage-settings.php +8 -6
- readme.txt +9 -1
- woocommerce-sea.php +30 -3
classes/class-attributes.php
CHANGED
@@ -277,6 +277,7 @@ public function get_mapping_attributes_dropdown() {
|
|
277 |
"image_8" => "Additional image 8",
|
278 |
"image_9" => "Additional image 9",
|
279 |
"image_10" => "Additional image 10",
|
|
|
280 |
);
|
281 |
|
282 |
/**
|
@@ -463,6 +464,7 @@ public function get_mapping_attributes_dropdown() {
|
|
463 |
"image_8" => "Additional image 8",
|
464 |
"image_9" => "Additional image 9",
|
465 |
"image_10" => "Additional image 10",
|
|
|
466 |
);
|
467 |
|
468 |
$attributes = array_merge($attributes, $images);
|
277 |
"image_8" => "Additional image 8",
|
278 |
"image_9" => "Additional image 9",
|
279 |
"image_10" => "Additional image 10",
|
280 |
+
"all_images" => "All images (comma separated)",
|
281 |
);
|
282 |
|
283 |
/**
|
464 |
"image_8" => "Additional image 8",
|
465 |
"image_9" => "Additional image 9",
|
466 |
"image_10" => "Additional image 10",
|
467 |
+
"all_images" => "All images (comma separated)",
|
468 |
);
|
469 |
|
470 |
$attributes = array_merge($attributes, $images);
|
classes/class-get-products.php
CHANGED
@@ -2156,6 +2156,7 @@ class WooSEA_Get_Products {
|
|
2156 |
$product_data['sale_price_effective_date'] = "";
|
2157 |
}
|
2158 |
$product_data['image'] = wp_get_attachment_url($product->get_image_id());
|
|
|
2159 |
|
2160 |
// For variable products I need to get the product gallery images of the simple mother product
|
2161 |
if($product_data['item_group_id'] > 0){
|
@@ -2165,6 +2166,7 @@ class WooSEA_Get_Products {
|
|
2165 |
$gal_id=1;
|
2166 |
foreach ($gallery_ids as $gallery_key => $gallery_value){
|
2167 |
$product_data["image_" . $gal_id] = wp_get_attachment_url($gallery_value);
|
|
|
2168 |
$gal_id++;
|
2169 |
}
|
2170 |
}
|
@@ -2173,9 +2175,12 @@ class WooSEA_Get_Products {
|
|
2173 |
$gal_id=1;
|
2174 |
foreach ($gallery_ids as $gallery_key => $gallery_value){
|
2175 |
$product_data["image_" . $gal_id] = wp_get_attachment_url($gallery_value);
|
|
|
2176 |
$gal_id++;
|
2177 |
}
|
2178 |
}
|
|
|
|
|
2179 |
$product_data['product_type'] = $product->get_type();
|
2180 |
$product_data['content_type'] = "product";
|
2181 |
if($product_data['product_type'] == "variation"){
|
@@ -2714,9 +2719,29 @@ class WooSEA_Get_Products {
|
|
2714 |
$product_data['exclude_from_all'] = "no";
|
2715 |
|
2716 |
// Get number of orders for this product
|
2717 |
-
|
2718 |
-
|
2719 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2720 |
|
2721 |
$visibility_list = wp_get_post_terms($product_data['item_group_id'], 'product_visibility', array("fields" => "all"));
|
2722 |
|
2156 |
$product_data['sale_price_effective_date'] = "";
|
2157 |
}
|
2158 |
$product_data['image'] = wp_get_attachment_url($product->get_image_id());
|
2159 |
+
$product_data['all_images'] = $product_data['image'];
|
2160 |
|
2161 |
// For variable products I need to get the product gallery images of the simple mother product
|
2162 |
if($product_data['item_group_id'] > 0){
|
2166 |
$gal_id=1;
|
2167 |
foreach ($gallery_ids as $gallery_key => $gallery_value){
|
2168 |
$product_data["image_" . $gal_id] = wp_get_attachment_url($gallery_value);
|
2169 |
+
$product_data['all_images'] .= ",".wp_get_attachment_url($gallery_value);
|
2170 |
$gal_id++;
|
2171 |
}
|
2172 |
}
|
2175 |
$gal_id=1;
|
2176 |
foreach ($gallery_ids as $gallery_key => $gallery_value){
|
2177 |
$product_data["image_" . $gal_id] = wp_get_attachment_url($gallery_value);
|
2178 |
+
$product_data['all_images'] .= ",".wp_get_attachment_url($gallery_value);
|
2179 |
$gal_id++;
|
2180 |
}
|
2181 |
}
|
2182 |
+
|
2183 |
+
$product_data['all_images'] = ltrim($product_data['all_images'],',');
|
2184 |
$product_data['product_type'] = $product->get_type();
|
2185 |
$product_data['content_type'] = "product";
|
2186 |
if($product_data['product_type'] == "variation"){
|
2719 |
$product_data['exclude_from_all'] = "no";
|
2720 |
|
2721 |
// Get number of orders for this product
|
2722 |
+
// First check if user added this field or created a rule or filter on it
|
2723 |
+
$ruleset = "false";
|
2724 |
+
if(array_key_exists('rules', $project_config)){
|
2725 |
+
foreach($project_config['rules'] as $rkey => $rvalue){
|
2726 |
+
if(in_array('total_product_orders', $rvalue)){
|
2727 |
+
$ruleset = "true";
|
2728 |
+
}
|
2729 |
+
}
|
2730 |
+
}
|
2731 |
+
|
2732 |
+
if(array_key_exists('rules2', $project_config)){
|
2733 |
+
foreach($project_config['rules2'] as $rkey => $rvalue){
|
2734 |
+
if(in_array('total_product_orders', $rvalue)){
|
2735 |
+
$ruleset = "true";
|
2736 |
+
}
|
2737 |
+
}
|
2738 |
+
}
|
2739 |
+
|
2740 |
+
if((array_key_exists('total_product_orders', $project_config['attributes'])) OR ($ruleset == "true")){
|
2741 |
+
$product_data['total_product_orders'] = 0;
|
2742 |
+
$sales_array = $this->woosea_get_nr_orders_variation ( $product_data['id'] );
|
2743 |
+
$product_data['total_product_orders'] = $sales_array[0];
|
2744 |
+
}
|
2745 |
|
2746 |
$visibility_list = wp_get_post_terms($product_data['item_group_id'], 'product_visibility', array("fields" => "all"));
|
2747 |
|
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.6.
|
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.6.6',
|
31 |
jsonp: 'callback',
|
32 |
dataType: 'jsonp',
|
33 |
type: 'GET',
|
pages/admin/woosea-manage-settings.php
CHANGED
@@ -76,9 +76,9 @@ if(isset($_GET["tab"])) {
|
|
76 |
} elseif ($_GET["tab"] == "woosea_system_check"){
|
77 |
$active_tab = "woosea_system_check";
|
78 |
$header_text = __( 'Plugin systems check', 'woo-product-feed-pro' );
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
} elseif ($_GET["tab"] == "woosea_license_check"){
|
83 |
$active_tab = "woosea_license_check";
|
84 |
$header_text = __( 'License', 'woo-product-feed-pro' );
|
@@ -125,9 +125,9 @@ if(isset($_GET["tab"])) {
|
|
125 |
<a href="?page=woosea_manage_settings&tab=woosea_manage_settings" class="nav-tab <?php if($active_tab == 'woosea_manage_settings'){echo 'nav-tab-active';} ?> "><?php _e('Plugin settings', 'woo-product-feed-pro'); ?></a>
|
126 |
<a href="?page=woosea_manage_settings&tab=woosea_manage_attributes" class="nav-tab <?php if($active_tab == 'woosea_manage_attributes'){echo 'nav-tab-active';} ?>"><?php _e('Extra fields (Elite feature)', 'woo-product-feed-pro'); ?></a>
|
127 |
<a href="?page=woosea_manage_settings&tab=woosea_system_check" class="nav-tab <?php if($active_tab == 'woosea_system_check'){echo 'nav-tab-active';} ?>"><?php _e('Plugin systems check', 'woo-product-feed-pro'); ?></a>
|
128 |
-
|
129 |
<a href="?page=woosea_manage_settings&tab=woosea_copy_configs" class="nav-tab <?php if($active_tab == 'woosea_copy_configs'){echo 'nav-tab-active';} ?>"><?php _e('Copy feed configuration', 'woo-product-feed-pro'); ?></a>
|
130 |
-
|
131 |
<a href="?page=woosea_manage_settings&tab=woosea_license_check" class="nav-tab <?php if($active_tab == 'woosea_license_check'){echo 'nav-tab-active';} ?>"><?php _e('License', 'woo-product-feed-pro'); ?></a>
|
132 |
</h2>
|
133 |
|
@@ -413,8 +413,10 @@ if(isset($_GET["tab"])) {
|
|
413 |
</table>
|
414 |
<?php
|
415 |
} elseif ($active_tab == "woosea_copy_configs"){
|
|
|
416 |
print "<table class=\"woo-product-feed-pro-table\">";
|
417 |
-
print "<tr><td colspan=\"2\">Copy feed
|
|
|
418 |
print "<tr><td colspan=\"2\"> </td></tr>";
|
419 |
print "</table>";
|
420 |
} elseif ($active_tab == "woosea_system_check"){
|
76 |
} elseif ($_GET["tab"] == "woosea_system_check"){
|
77 |
$active_tab = "woosea_system_check";
|
78 |
$header_text = __( 'Plugin systems check', 'woo-product-feed-pro' );
|
79 |
+
} elseif ($_GET["tab"] == "woosea_copy_configs"){
|
80 |
+
$active_tab = "woosea_copy_configs";
|
81 |
+
$header_text = __( 'Copy feed configuration', 'woo-product-feed-pro' );
|
82 |
} elseif ($_GET["tab"] == "woosea_license_check"){
|
83 |
$active_tab = "woosea_license_check";
|
84 |
$header_text = __( 'License', 'woo-product-feed-pro' );
|
125 |
<a href="?page=woosea_manage_settings&tab=woosea_manage_settings" class="nav-tab <?php if($active_tab == 'woosea_manage_settings'){echo 'nav-tab-active';} ?> "><?php _e('Plugin settings', 'woo-product-feed-pro'); ?></a>
|
126 |
<a href="?page=woosea_manage_settings&tab=woosea_manage_attributes" class="nav-tab <?php if($active_tab == 'woosea_manage_attributes'){echo 'nav-tab-active';} ?>"><?php _e('Extra fields (Elite feature)', 'woo-product-feed-pro'); ?></a>
|
127 |
<a href="?page=woosea_manage_settings&tab=woosea_system_check" class="nav-tab <?php if($active_tab == 'woosea_system_check'){echo 'nav-tab-active';} ?>"><?php _e('Plugin systems check', 'woo-product-feed-pro'); ?></a>
|
128 |
+
<!--
|
129 |
<a href="?page=woosea_manage_settings&tab=woosea_copy_configs" class="nav-tab <?php if($active_tab == 'woosea_copy_configs'){echo 'nav-tab-active';} ?>"><?php _e('Copy feed configuration', 'woo-product-feed-pro'); ?></a>
|
130 |
+
-->
|
131 |
<a href="?page=woosea_manage_settings&tab=woosea_license_check" class="nav-tab <?php if($active_tab == 'woosea_license_check'){echo 'nav-tab-active';} ?>"><?php _e('License', 'woo-product-feed-pro'); ?></a>
|
132 |
</h2>
|
133 |
|
413 |
</table>
|
414 |
<?php
|
415 |
} elseif ($active_tab == "woosea_copy_configs"){
|
416 |
+
print "<br>";
|
417 |
print "<table class=\"woo-product-feed-pro-table\">";
|
418 |
+
print "<tr><td colspan=\"2\">Copy feed configuarion from this domain:</td></tr>";
|
419 |
+
print "<tr><td colspan=\"2\"><select name=\"protocol\" id=\"protocol\" class=\"select-field\"><option value=\"https\">https://</option><option value=\"http\">http://</option></select> <input class=\"input-field\" name=\"copy_domain\" id=\"copy_domain\"> <input type=\"submit\" id=\"copy_button\" value=\"Copy feeds\"></td></tr>";
|
420 |
print "<tr><td colspan=\"2\"> </td></tr>";
|
421 |
print "</table>";
|
422 |
} elseif ($active_tab == "woosea_system_check"){
|
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.6.
|
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.6.5 (2020-03-04) =
|
316 |
* SQL query to retrieve number of sales for variations was too slow causing the feed processing to slow down. Improved query.
|
317 |
|
@@ -2436,6 +2440,10 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
|
|
2436 |
|
2437 |
== Upgrade Notice ==
|
2438 |
|
|
|
|
|
|
|
|
|
2439 |
= 7.6.5 =
|
2440 |
SQL query to retrieve number of sales for variations was too slow causing the feed processing to slow down. Improved query.
|
2441 |
|
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.6.6
|
9 |
|
10 |
== Description ==
|
11 |
|
312 |
|
313 |
=== Changelog ===
|
314 |
|
315 |
+
= 7.6.6 (2020-03-06) =
|
316 |
+
* Added a new attribute named "All images (comma separated)" which adds all product images on one line, comma separated
|
317 |
+
* The total product orders attribute is pretty heavy on MySql so we are now only requesting this data when it has been added to the field mapping and/or filters and rules
|
318 |
+
|
319 |
= 7.6.5 (2020-03-04) =
|
320 |
* SQL query to retrieve number of sales for variations was too slow causing the feed processing to slow down. Improved query.
|
321 |
|
2440 |
|
2441 |
== Upgrade Notice ==
|
2442 |
|
2443 |
+
= 7.6.6 =
|
2444 |
+
Added a new attribute named "All images (comma separated)" which adds all product images on one line, comma separated
|
2445 |
+
The total product orders attribute is pretty heavy on MySql so we are now only requesting this data when it has been added to the field mapping and/or filters and rules
|
2446 |
+
|
2447 |
= 7.6.5 =
|
2448 |
SQL query to retrieve number of sales for variations was too slow causing the feed processing to slow down. Improved query.
|
2449 |
|
woocommerce-sea.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Product Feed PRO for WooCommerce
|
4 |
-
* Version: 7.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,7 +48,7 @@ if (!defined('ABSPATH')) {
|
|
48 |
* Plugin versionnumber, please do not override.
|
49 |
* Define some constants
|
50 |
*/
|
51 |
-
define( 'WOOCOMMERCESEA_PLUGIN_VERSION', '7.6.
|
52 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
|
53 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
|
54 |
|
@@ -4178,6 +4178,33 @@ function woosea_de_register_license(){
|
|
4178 |
}
|
4179 |
add_action( 'woosea_deregister_hook', 'woosea_de_register_license', 99999); // deregister the paid version check after 60 seconds
|
4180 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4181 |
/**
|
4182 |
* This function checks if the Elite license is valid. When the license
|
4183 |
* key is invalid or expired the advanced options of this plugin will be disabled
|
@@ -4188,7 +4215,7 @@ function woosea_license_valid(){
|
|
4188 |
|
4189 |
if(!empty($license_information['license_key'])){
|
4190 |
$curl = curl_init();
|
4191 |
-
$url = "https://www.adtribes.io/check/license.php?key=$license_information[license_key]&email=$license_information[license_email]&domain=$domain&version=7.6.
|
4192 |
|
4193 |
curl_setopt_array($curl, array(
|
4194 |
CURLOPT_RETURNTRANSFER => 1,
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Product Feed PRO for WooCommerce
|
4 |
+
* Version: 7.6.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.6.6' );
|
52 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
|
53 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
|
54 |
|
4178 |
}
|
4179 |
add_action( 'woosea_deregister_hook', 'woosea_de_register_license', 99999); // deregister the paid version check after 60 seconds
|
4180 |
|
4181 |
+
/**
|
4182 |
+
* This function copies feed configurations from another domain
|
4183 |
+
* so users do not have to re-configure feeds for all their domains
|
4184 |
+
* Other domain need to explicitly allow this
|
4185 |
+
*/
|
4186 |
+
function woosea_copy_configurations(){
|
4187 |
+
|
4188 |
+
|
4189 |
+
$domain = "oplader.org";
|
4190 |
+
|
4191 |
+
$curl = curl_init();
|
4192 |
+
$url = "http://$domain/wp-content/uploads/woo-product-feed-pro/logs/debug.log";
|
4193 |
+
|
4194 |
+
curl_setopt_array($curl, array(
|
4195 |
+
CURLOPT_RETURNTRANSFER => 1,
|
4196 |
+
CURLOPT_URL => $url,
|
4197 |
+
CURLOPT_USERAGENT => 'AdTribes license cURL Request'
|
4198 |
+
));
|
4199 |
+
$response = curl_exec( $curl );
|
4200 |
+
curl_close($curl);
|
4201 |
+
|
4202 |
+
error_log("RESPONSE");
|
4203 |
+
error_log($respons);
|
4204 |
+
|
4205 |
+
$json_return = json_decode($response, true);
|
4206 |
+
}
|
4207 |
+
|
4208 |
/**
|
4209 |
* This function checks if the Elite license is valid. When the license
|
4210 |
* key is invalid or expired the advanced options of this plugin will be disabled
|
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.6.6";
|
4219 |
|
4220 |
curl_setopt_array($curl, array(
|
4221 |
CURLOPT_RETURNTRANSFER => 1,
|