Version Description
Added support for creation of find & replace rules Removed XML support for Bol.com feeds
Download this release
Release Info
Developer | jorisverwater |
Plugin | Product Feed PRO for WooCommerce |
Version | 7.0.9 |
Comparing to | |
See all releases |
Code changes from version 7.0.8 to 7.0.9
- TODO.txt +0 -1
- classes/channels/class-bol.php +1 -1
- classes/class-get-products.php +25 -1
- js/woosea_channel.js +5 -0
- js/woosea_key.js +1 -1
- js/woosea_rules.js +2 -2
- pages/admin/woosea-generate-feed-step-4.php +5 -0
- readme.txt +10 -2
- woocommerce-sea.php +2 -2
TODO.txt
CHANGED
@@ -5,7 +5,6 @@ Tutorial / Blog posts:
|
|
5 |
- Explain all the different fields/attributes that can be selected from the drop-downs
|
6 |
|
7 |
Priority issues:
|
8 |
-
- Add find and replace rule option (also requested by Chris)
|
9 |
- Change XML header for Elite users (so it doesn't say its free for example)
|
10 |
- Add Facebook pixel measure sales/conversion in checkout (onder andere InitiateCheckout, Purchase, Search and ViewCategory pages);
|
11 |
- Categories / subcategorie mapping issue when the categories have the exact same name
|
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 |
- Add Facebook pixel measure sales/conversion in checkout (onder andere InitiateCheckout, Purchase, Search and ViewCategory pages);
|
10 |
- Categories / subcategorie mapping issue when the categories have the exact same name
|
classes/channels/class-bol.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Settings for Bol.com product feeds
|
4 |
*/
|
5 |
class WooSEA_bol {
|
6 |
-
public $
|
7 |
|
8 |
public static function get_channel_attributes() {
|
9 |
|
3 |
* Settings for Bol.com product feeds
|
4 |
*/
|
5 |
class WooSEA_bol {
|
6 |
+
public $bol;
|
7 |
|
8 |
public static function get_channel_attributes() {
|
9 |
|
classes/class-get-products.php
CHANGED
@@ -3914,6 +3914,19 @@ class WooSEA_Get_Products {
|
|
3914 |
$newvalue = ($pd_value - $pr_array['criteria']);
|
3915 |
$product_data[$pr_array['attribute']] = $newvalue;
|
3916 |
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3917 |
default:
|
3918 |
break;
|
3919 |
}
|
@@ -4220,7 +4233,18 @@ class WooSEA_Get_Products {
|
|
4220 |
case($pr_array['condition'] = "replace"):
|
4221 |
$product_data[$pr_array['than_attribute']] = str_replace($pr_array['criteria'], $pr_array['newvalue'], $product_data[$pr_array['than_attribute']]);
|
4222 |
break;
|
4223 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4224 |
default:
|
4225 |
break;
|
4226 |
}
|
3914 |
$newvalue = ($pd_value - $pr_array['criteria']);
|
3915 |
$product_data[$pr_array['attribute']] = $newvalue;
|
3916 |
break;
|
3917 |
+
case($pr_array['condition'] = "findreplace"):
|
3918 |
+
if (strpos($pd_value, $pr_array['criteria']) !== false){
|
3919 |
+
// Make sure that a new value has been set
|
3920 |
+
if(!empty($pr_array['newvalue'])){
|
3921 |
+
// Find and replace only work on same attribute field, otherwise create a contains rule
|
3922 |
+
if($pr_array['attribute'] == $pr_array['than_attribute']){
|
3923 |
+
$newvalue = str_replace($pr_array['criteria'],$pr_array['newvalue'], $pd_value);
|
3924 |
+
$product_data[$pr_array['than_attribute']] = ucfirst($newvalue);
|
3925 |
+
}
|
3926 |
+
|
3927 |
+
}
|
3928 |
+
}
|
3929 |
+
break;
|
3930 |
default:
|
3931 |
break;
|
3932 |
}
|
4233 |
case($pr_array['condition'] = "replace"):
|
4234 |
$product_data[$pr_array['than_attribute']] = str_replace($pr_array['criteria'], $pr_array['newvalue'], $product_data[$pr_array['than_attribute']]);
|
4235 |
break;
|
4236 |
+
case($pr_array['condition'] = "findreplace"):
|
4237 |
+
if (strpos($pd_value, $pr_array['criteria']) !== false){
|
4238 |
+
// Make sure that a new value has been set
|
4239 |
+
if(!empty($pr_array['newvalue'])){
|
4240 |
+
// Find and replace only work on same attribute field, otherwise create a contains rule
|
4241 |
+
if($pr_array['attribute'] == $pr_array['than_attribute']){
|
4242 |
+
$newvalue = str_replace($pr_array['criteria'],$pr_array['newvalue'], $pd_value);
|
4243 |
+
$product_data[$pr_array['than_attribute']] = ucfirst($newvalue);
|
4244 |
+
}
|
4245 |
+
}
|
4246 |
+
}
|
4247 |
+
break;
|
4248 |
default:
|
4249 |
break;
|
4250 |
}
|
js/woosea_channel.js
CHANGED
@@ -63,6 +63,11 @@ jQuery(document).ready(function($) {
|
|
63 |
$("#fileformat option[value='tsv']").remove();
|
64 |
$("#fileformat option[value='xml']").remove();
|
65 |
|
|
|
|
|
|
|
|
|
|
|
66 |
$('#file').after('<tr id="delimiter"><td><span>Delimiter:</span></td><td><select name="delimiter" class="select-field"><option value=",">, comma</option><option value="|">| pipe</option><option value=";">;</option><option value="tab">tab</option><option value="#">#</option></select></td></tr>');
|
67 |
} else {
|
68 |
$("#fileformat")
|
63 |
$("#fileformat option[value='tsv']").remove();
|
64 |
$("#fileformat option[value='xml']").remove();
|
65 |
|
66 |
+
$('#file').after('<tr id="delimiter"><td><span>Delimiter:</span></td><td><select name="delimiter" class="select-field"><option value=",">, comma</option><option value="|">| pipe</option><option value=";">;</option><option value="tab">tab</option><option value="#">#</option></select></td></tr>');
|
67 |
+
} else if(channel_hash == 'Bol.com'){ // Ugly hack, should be configurable per channel
|
68 |
+
$("#fileformat option[value='tsv']").remove();
|
69 |
+
$("#fileformat option[value='xml']").remove();
|
70 |
+
|
71 |
$('#file').after('<tr id="delimiter"><td><span>Delimiter:</span></td><td><select name="delimiter" class="select-field"><option value=",">, comma</option><option value="|">| pipe</option><option value=";">;</option><option value="tab">tab</option><option value="#">#</option></select></td></tr>');
|
72 |
} else {
|
73 |
$("#fileformat")
|
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.0.
|
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.0.9',
|
31 |
jsonp: 'callback',
|
32 |
dataType: 'jsonp',
|
33 |
type: 'GET',
|
js/woosea_rules.js
CHANGED
@@ -112,9 +112,9 @@ jQuery(document).ready(function($) {
|
|
112 |
data = JSON.parse( data );
|
113 |
|
114 |
if(TrueRowCount == 0){
|
115 |
-
$( '#woosea-ajax-table' ).find('tbody:first').append('<tr><td><input type="hidden" name="rules2[' + data.rowCount + '][rowCount]" value="' + data.rowCount + '"><input type="checkbox" name="record" class="checkbox-field"></td><td><i>Rule:</i></td><td><select name="rules2[' + data.rowCount + '][attribute]" class="select-field">' + data.dropdown + '</select></td><td><select name="rules2[' + data.rowCount + '][condition]" class="select-field" id="condition_' + data.rowCount + '""><option value="contains">contains</option><option value="containsnot">does not contain</option><option value="=">is equal to</option><option value="!=">is not equal to</option><option value=">">is greater than</option><option value=">=">is greater or equal to</option><option value="<">is less than</option><option value="=<">is less or equal to</option><option value="empty">is empty</option><option value="multiply">multiply</option><option value="divide">divide</option><option value="plus">plus</option><option value="minus">minus</option></select></td><td><input type="text" name="rules2[' + rowCount + '][criteria]" class="input-field-large"></td><td><input type="checkbox" name="rules2[' + rowCount + '][cs]" class="checkbox-field" alt="Case sensitive" id="cs_' + data.rowCount + '"></td><td><select name="rules2[' + data.rowCount + '][than_attribute]" class="select-field" id="than_attribute_' + rowCount +'" style="width:150px;">' + data.dropdown + '</select> </td><td><input type="text" name="rules2[' + rowCount + '][newvalue]" class="input-field-large" id="is-field_' + rowCount +'"></td></tr>');
|
116 |
} else {
|
117 |
-
$('<tr><td><input type="hidden" name="rules2[' + data.rowCount + '][rowCount]" value="' + data.rowCount + '"><input type="checkbox" name="record" class="checkbox-field"></td><td><i>Rule:</i></td><td><select name="rules2[' + data.rowCount + '][attribute]" class="select-field">' + data.dropdown + '</select></td><td><select name="rules2[' + data.rowCount + '][condition]" class="select-field" id="condition_' + data.rowCount + '""><option value="contains">contains</option><option value="containsnot">does not contain</option><option value="=">is equal to</option><option value="!=">is not equal to</option><option value=">">is greater than</option><option value=">=">is greater or equal to</option><option value="<">is less than</option><option value="=<">is less or equal to</option><option value="empty">is empty</option><option value="multiply">multiply</option><option value="divide">divide</option><option value="plus">plus</option><option value="minus">minus</option></select></td><td><input type="text" name="rules2[' + rowCount + '][criteria]" class="input-field-large"></td><td><input type="checkbox" name="rules2[' + rowCount + '][cs]" class="checkbox-field" alt="Case sensitive" id="cs_' + data.rowCount + '"></td><td><select name="rules2[' + data.rowCount + '][than_attribute]" class="select-field" id="than_attribute_' + rowCount +'" style="width:150px;">' + data.dropdown + '</select> </td><td><input type="text" name="rules2[' + rowCount + '][newvalue]" class="input-field-large" id="is-field_' + rowCount +'"></td></tr>').insertBefore( ".rules-buttons");
|
118 |
}
|
119 |
|
120 |
// Check if user selected a data manipulation condition
|
112 |
data = JSON.parse( data );
|
113 |
|
114 |
if(TrueRowCount == 0){
|
115 |
+
$( '#woosea-ajax-table' ).find('tbody:first').append('<tr><td><input type="hidden" name="rules2[' + data.rowCount + '][rowCount]" value="' + data.rowCount + '"><input type="checkbox" name="record" class="checkbox-field"></td><td><i>Rule:</i></td><td><select name="rules2[' + data.rowCount + '][attribute]" class="select-field">' + data.dropdown + '</select></td><td><select name="rules2[' + data.rowCount + '][condition]" class="select-field" id="condition_' + data.rowCount + '""><option value="contains">contains</option><option value="containsnot">does not contain</option><option value="=">is equal to</option><option value="!=">is not equal to</option><option value=">">is greater than</option><option value=">=">is greater or equal to</option><option value="<">is less than</option><option value="=<">is less or equal to</option><option value="empty">is empty</option><option value="multiply">multiply</option><option value="divide">divide</option><option value="plus">plus</option><option value="minus">minus</option><option value="findreplace">find and replace</option></select></td><td><input type="text" name="rules2[' + rowCount + '][criteria]" class="input-field-large"></td><td><input type="checkbox" name="rules2[' + rowCount + '][cs]" class="checkbox-field" alt="Case sensitive" id="cs_' + data.rowCount + '"></td><td><select name="rules2[' + data.rowCount + '][than_attribute]" class="select-field" id="than_attribute_' + rowCount +'" style="width:150px;">' + data.dropdown + '</select> </td><td><input type="text" name="rules2[' + rowCount + '][newvalue]" class="input-field-large" id="is-field_' + rowCount +'"></td></tr>');
|
116 |
} else {
|
117 |
+
$('<tr><td><input type="hidden" name="rules2[' + data.rowCount + '][rowCount]" value="' + data.rowCount + '"><input type="checkbox" name="record" class="checkbox-field"></td><td><i>Rule:</i></td><td><select name="rules2[' + data.rowCount + '][attribute]" class="select-field">' + data.dropdown + '</select></td><td><select name="rules2[' + data.rowCount + '][condition]" class="select-field" id="condition_' + data.rowCount + '""><option value="contains">contains</option><option value="containsnot">does not contain</option><option value="=">is equal to</option><option value="!=">is not equal to</option><option value=">">is greater than</option><option value=">=">is greater or equal to</option><option value="<">is less than</option><option value="=<">is less or equal to</option><option value="empty">is empty</option><option value="multiply">multiply</option><option value="divide">divide</option><option value="plus">plus</option><option value="minus">minus</option><option value="findreplace">find and replace</option></select></td><td><input type="text" name="rules2[' + rowCount + '][criteria]" class="input-field-large"></td><td><input type="checkbox" name="rules2[' + rowCount + '][cs]" class="checkbox-field" alt="Case sensitive" id="cs_' + data.rowCount + '"></td><td><select name="rules2[' + data.rowCount + '][than_attribute]" class="select-field" id="than_attribute_' + rowCount +'" style="width:150px;">' + data.dropdown + '</select> </td><td><input type="text" name="rules2[' + rowCount + '][newvalue]" class="input-field-large" id="is-field_' + rowCount +'"></td></tr>').insertBefore( ".rules-buttons");
|
118 |
}
|
119 |
|
120 |
// Check if user selected a data manipulation condition
|
pages/admin/woosea-generate-feed-step-4.php
CHANGED
@@ -304,6 +304,11 @@ if (array_key_exists('project_hash', $_GET)){
|
|
304 |
} else {
|
305 |
print "<option value=\"minus\">minus</option>";
|
306 |
}
|
|
|
|
|
|
|
|
|
|
|
307 |
?>
|
308 |
</select>
|
309 |
</td>
|
304 |
} else {
|
305 |
print "<option value=\"minus\">minus</option>";
|
306 |
}
|
307 |
+
if (isset($project['rules2'][$rule2_key]['condition']) AND ($project['rules2'][$rule2_key]['condition'] == "findreplace")){
|
308 |
+
print "<option value=\"findreplace\" selected>find and replace</option>";
|
309 |
+
} else {
|
310 |
+
print "<option value=\"findreplace\">find and replace</option>";
|
311 |
+
}
|
312 |
?>
|
313 |
</select>
|
314 |
</td>
|
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.0.
|
9 |
|
10 |
== Description ==
|
11 |
|
@@ -302,7 +302,11 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
|
|
302 |
|
303 |
=== Changelog ===
|
304 |
|
305 |
-
= 7.0.
|
|
|
|
|
|
|
|
|
306 |
* Added support for the Perfect Woocommerce Brands plugin
|
307 |
|
308 |
= 7.0.7 (2019-12-27) =
|
@@ -2235,6 +2239,10 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
|
|
2235 |
|
2236 |
== Upgrade Notice ==
|
2237 |
|
|
|
|
|
|
|
|
|
2238 |
= 7.0.8 =
|
2239 |
Added support for the Perfect Woocommerce Brands plugin
|
2240 |
|
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.0.9
|
9 |
|
10 |
== Description ==
|
11 |
|
302 |
|
303 |
=== Changelog ===
|
304 |
|
305 |
+
= 7.0.9 (2019-12-30) =
|
306 |
+
* Added support for creation of find & replace rules
|
307 |
+
* Removed XML support for Bol.com feeds
|
308 |
+
|
309 |
+
= 7.0.8 (2019-12-28) =
|
310 |
* Added support for the Perfect Woocommerce Brands plugin
|
311 |
|
312 |
= 7.0.7 (2019-12-27) =
|
2239 |
|
2240 |
== Upgrade Notice ==
|
2241 |
|
2242 |
+
= 7.0.9 =
|
2243 |
+
Added support for creation of find & replace rules
|
2244 |
+
Removed XML support for Bol.com feeds
|
2245 |
+
|
2246 |
= 7.0.8 =
|
2247 |
Added support for the Perfect Woocommerce Brands plugin
|
2248 |
|
woocommerce-sea.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Product Feed PRO for WooCommerce
|
4 |
-
* Version: 7.0.
|
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.0.
|
52 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
|
53 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
|
54 |
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Product Feed PRO for WooCommerce
|
4 |
+
* Version: 7.0.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.0.9' );
|
52 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
|
53 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
|
54 |
|