Version Description
Fixed an issue for prices of bundled products that always added the VAT to the price
Download this release
Release Info
Developer | jorisverwater |
Plugin | Product Feed PRO for WooCommerce |
Version | 8.9.3 |
Comparing to | |
See all releases |
Code changes from version 8.9.2 to 8.9.3
- TODO.txt +2 -0
- classes/class-get-products.php +28 -18
- js/woosea_key.js +1 -1
- readme.txt +13 -1
- woocommerce-sea.php +2 -2
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 |
- Facebook pixel: add other attributes to the tracking apart from the curreny product ID (such as the SKU);
|
9 |
- Own hosted plugin updating: https://rudrastyh.com/wordpress/self-hosted-plugin-update.html
|
10 |
- My adtribes environment with download link in it
|
@@ -16,6 +17,7 @@ Priority issues:
|
|
16 |
- Only update feed when changes to products have been made
|
17 |
- Add header to extra fields on product edit pages
|
18 |
- Add possibility to create OR rules
|
|
|
19 |
- Build a better WP Cron check, current one is not good enough
|
20 |
- AMAZON integration:
|
21 |
- requires a professional seller account, 39 dollar a month, before being able to create a developer account
|
5 |
- Explain all the different fields/attributes that can be selected from the drop-downs
|
6 |
|
7 |
Priority issues:
|
8 |
+
- Add a preview option so only 5-10 products are being generated
|
9 |
- Facebook pixel: add other attributes to the tracking apart from the curreny product ID (such as the SKU);
|
10 |
- Own hosted plugin updating: https://rudrastyh.com/wordpress/self-hosted-plugin-update.html
|
11 |
- My adtribes environment with download link in it
|
17 |
- Only update feed when changes to products have been made
|
18 |
- Add header to extra fields on product edit pages
|
19 |
- Add possibility to create OR rules
|
20 |
+
- Add support for Google My Business product feeds
|
21 |
- Build a better WP Cron check, current one is not good enough
|
22 |
- AMAZON integration:
|
23 |
- requires a professional seller account, 39 dollar a month, before being able to create a developer account
|
classes/class-get-products.php
CHANGED
@@ -658,8 +658,6 @@ class WooSEA_Get_Products {
|
|
658 |
$zone_count = 0;
|
659 |
$nr_shipping_zones = count($shipping_zones);
|
660 |
$zone_details = array();
|
661 |
-
$base_location = wc_get_base_location();
|
662 |
-
$base_country = $base_location['country'];
|
663 |
$from_currency = get_woocommerce_currency();
|
664 |
$add_all_shipping = "no";
|
665 |
$add_all_shipping = get_option ('add_all_shipping');
|
@@ -677,7 +675,7 @@ class WooSEA_Get_Products {
|
|
677 |
|
678 |
foreach ( $zone['zone_locations'] as $zone_type ) {
|
679 |
$code_from_config = $this->woosea_country_to_code($project_config['countries']);
|
680 |
-
|
681 |
// Only add shipping zones to the feed for specific feed country
|
682 |
$ship_found = strpos($zone_type->code, $code_from_config);
|
683 |
|
@@ -693,8 +691,8 @@ class WooSEA_Get_Products {
|
|
693 |
$zone_expl = explode(":", $zone_type->code);
|
694 |
$zone_details['country'] = $zone_expl[0];
|
695 |
|
696 |
-
// Adding a region is only allowed for these countries
|
697 |
-
$region_countries = array ('US','JP','AU','FR');
|
698 |
if(in_array($zone_details['country'], $region_countries)){
|
699 |
$zone_details['region'] = $zone_expl[1];
|
700 |
}
|
@@ -707,13 +705,14 @@ class WooSEA_Get_Products {
|
|
707 |
} else {
|
708 |
// Unknown shipping zone type
|
709 |
}
|
710 |
-
|
711 |
// Get the g:services and g:prices, because there could be multiple services the $shipping_arr could multiply again
|
712 |
// g:service = "Method title - Shipping class costs"
|
713 |
// for example, g:service = "Estimated Shipping - Heavy shipping". g:price would be 180
|
714 |
$shipping_methods = $zone['shipping_methods'];
|
715 |
|
716 |
foreach ($shipping_methods as $k => $v){
|
|
|
717 |
if($v->enabled == "yes"){
|
718 |
if(empty($zone_details['country'])){
|
719 |
$zone_details['service'] = $zone['zone_name'] ." ". $v->title;
|
@@ -915,7 +914,9 @@ class WooSEA_Get_Products {
|
|
915 |
$zone_details['free'] = "yes";
|
916 |
} else {
|
917 |
// No Free Shipping Allowed for this product
|
918 |
-
unset($zone_details);
|
|
|
|
|
919 |
unset($shipping_cost);
|
920 |
}
|
921 |
}
|
@@ -987,13 +988,12 @@ class WooSEA_Get_Products {
|
|
987 |
}
|
988 |
}
|
989 |
|
990 |
-
// Fix empty
|
991 |
foreach($shipping_arr as $k => $v){
|
992 |
-
|
993 |
-
|
994 |
-
$
|
995 |
-
$shipping_arr[$k]
|
996 |
-
//unset($shipping_arr[$k]);
|
997 |
}
|
998 |
}
|
999 |
return $shipping_arr;
|
@@ -2452,8 +2452,9 @@ class WooSEA_Get_Products {
|
|
2452 |
if(($product->get_type() == "bundle") OR ($product->get_type() == "composite")){
|
2453 |
$meta = get_post_meta($product_data['id']);
|
2454 |
if($product->get_type() == "bundle"){
|
2455 |
-
$product_data['price'] = round(get_post_meta($product_data['id'], '_price', true)
|
2456 |
-
$product_data['
|
|
|
2457 |
$product_data['regular_price'] = round(get_post_meta($product_data['id'], '_regular_price', true) * (100+$tax_rates[1]['rate'])/100,2);
|
2458 |
$product_data['net_regular_price'] = get_post_meta($product_data['id'], '_regular_price', true);
|
2459 |
if($product_data['price'] != $product_data['regular_price']){
|
@@ -2651,6 +2652,7 @@ class WooSEA_Get_Products {
|
|
2651 |
// Get only shipping costs
|
2652 |
$product_data['shipping_price'] = 0;
|
2653 |
$shipping_arr = $product_data['shipping'];
|
|
|
2654 |
if(is_array($shipping_arr)){
|
2655 |
foreach($shipping_arr as $akey => $arr){
|
2656 |
//$product_data['shipping_price'] = $arr['price'];
|
@@ -2658,8 +2660,17 @@ class WooSEA_Get_Products {
|
|
2658 |
if(isset($pieces_ship['1'])){
|
2659 |
$product_data['shipping_price'] = $pieces_ship['1'];
|
2660 |
}
|
2661 |
-
}
|
2662 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2663 |
}
|
2664 |
|
2665 |
// Google Dynamic Remarketing feeds require the English price notation
|
@@ -3599,9 +3610,8 @@ class WooSEA_Get_Products {
|
|
3599 |
$shipping_str = "";
|
3600 |
foreach ($product_data[$attr_value['mapfrom']] as $key => $value){
|
3601 |
$shipping_str .= "||";
|
3602 |
-
|
3603 |
foreach($value as $k => $v){
|
3604 |
-
|
3605 |
if($k == "country"){
|
3606 |
$shipping_str .= ":WOOSEA_COUNTRY##$v";
|
3607 |
} elseif ($k == "region"){
|
658 |
$zone_count = 0;
|
659 |
$nr_shipping_zones = count($shipping_zones);
|
660 |
$zone_details = array();
|
|
|
|
|
661 |
$from_currency = get_woocommerce_currency();
|
662 |
$add_all_shipping = "no";
|
663 |
$add_all_shipping = get_option ('add_all_shipping');
|
675 |
|
676 |
foreach ( $zone['zone_locations'] as $zone_type ) {
|
677 |
$code_from_config = $this->woosea_country_to_code($project_config['countries']);
|
678 |
+
|
679 |
// Only add shipping zones to the feed for specific feed country
|
680 |
$ship_found = strpos($zone_type->code, $code_from_config);
|
681 |
|
691 |
$zone_expl = explode(":", $zone_type->code);
|
692 |
$zone_details['country'] = $zone_expl[0];
|
693 |
|
694 |
+
// Adding a region is only allowed for these countries
|
695 |
+
$region_countries = array ('US','JP','AU','FR','CA');
|
696 |
if(in_array($zone_details['country'], $region_countries)){
|
697 |
$zone_details['region'] = $zone_expl[1];
|
698 |
}
|
705 |
} else {
|
706 |
// Unknown shipping zone type
|
707 |
}
|
708 |
+
|
709 |
// Get the g:services and g:prices, because there could be multiple services the $shipping_arr could multiply again
|
710 |
// g:service = "Method title - Shipping class costs"
|
711 |
// for example, g:service = "Estimated Shipping - Heavy shipping". g:price would be 180
|
712 |
$shipping_methods = $zone['shipping_methods'];
|
713 |
|
714 |
foreach ($shipping_methods as $k => $v){
|
715 |
+
|
716 |
if($v->enabled == "yes"){
|
717 |
if(empty($zone_details['country'])){
|
718 |
$zone_details['service'] = $zone['zone_name'] ." ". $v->title;
|
914 |
$zone_details['free'] = "yes";
|
915 |
} else {
|
916 |
// No Free Shipping Allowed for this product
|
917 |
+
//unset($zone_details);
|
918 |
+
unset($zone_details['service']);
|
919 |
+
unset($zone_details['price']);
|
920 |
unset($shipping_cost);
|
921 |
}
|
922 |
}
|
988 |
}
|
989 |
}
|
990 |
|
991 |
+
// Fix empty services
|
992 |
foreach($shipping_arr as $k => $v){
|
993 |
+
if(empty($v['service'])){
|
994 |
+
// $lalala = get_option( 'woocommerce_default_country' );
|
995 |
+
// $shipping_arr[$k]['country'] = get_option( 'woocommerce_default_country' );
|
996 |
+
unset($shipping_arr[$k]);
|
|
|
997 |
}
|
998 |
}
|
999 |
return $shipping_arr;
|
2452 |
if(($product->get_type() == "bundle") OR ($product->get_type() == "composite")){
|
2453 |
$meta = get_post_meta($product_data['id']);
|
2454 |
if($product->get_type() == "bundle"){
|
2455 |
+
$product_data['price'] = round(get_post_meta($product_data['id'], '_price', true));
|
2456 |
+
$product_data['price_forced'] = round(get_post_meta($product_data['id'], '_price', true) * (100+$tax_rates[1]['rate'])/100,2);
|
2457 |
+
$product_data['net_price'] = get_post_meta($product_data['id'], '_price', true);
|
2458 |
$product_data['regular_price'] = round(get_post_meta($product_data['id'], '_regular_price', true) * (100+$tax_rates[1]['rate'])/100,2);
|
2459 |
$product_data['net_regular_price'] = get_post_meta($product_data['id'], '_regular_price', true);
|
2460 |
if($product_data['price'] != $product_data['regular_price']){
|
2652 |
// Get only shipping costs
|
2653 |
$product_data['shipping_price'] = 0;
|
2654 |
$shipping_arr = $product_data['shipping'];
|
2655 |
+
|
2656 |
if(is_array($shipping_arr)){
|
2657 |
foreach($shipping_arr as $akey => $arr){
|
2658 |
//$product_data['shipping_price'] = $arr['price'];
|
2660 |
if(isset($pieces_ship['1'])){
|
2661 |
$product_data['shipping_price'] = $pieces_ship['1'];
|
2662 |
}
|
2663 |
+
}
|
2664 |
|
2665 |
+
// Check if we need to add a region
|
2666 |
+
foreach($shipping_arr as $akey => $arr){
|
2667 |
+
if(isset($arr['country'])){
|
2668 |
+
if (preg_match("/:/i",$arr['country'])){
|
2669 |
+
$region_split = explode(":", $arr['country']);
|
2670 |
+
$sgipping_arr[$akey]['region'] = $region_split[1];
|
2671 |
+
}
|
2672 |
+
}
|
2673 |
+
}
|
2674 |
}
|
2675 |
|
2676 |
// Google Dynamic Remarketing feeds require the English price notation
|
3610 |
$shipping_str = "";
|
3611 |
foreach ($product_data[$attr_value['mapfrom']] as $key => $value){
|
3612 |
$shipping_str .= "||";
|
3613 |
+
|
3614 |
foreach($value as $k => $v){
|
|
|
3615 |
if($k == "country"){
|
3616 |
$shipping_str .= ":WOOSEA_COUNTRY##$v";
|
3617 |
} elseif ($k == "region"){
|
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=8.9.
|
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=8.9.4',
|
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.5
|
8 |
-
Stable tag: 8.9.
|
9 |
|
10 |
== Description ==
|
11 |
|
@@ -320,6 +320,12 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
|
|
320 |
|
321 |
=== Changelog ===
|
322 |
|
|
|
|
|
|
|
|
|
|
|
|
|
323 |
= 8.9.2 (2020-10-13) =
|
324 |
* Next to CSV feeds for Bing Shopping the plugin now also strips the g: from the header for TXT feeds
|
325 |
|
@@ -2843,6 +2849,12 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
|
|
2843 |
|
2844 |
== Upgrade Notice ==
|
2845 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2846 |
= 8.9.2 =
|
2847 |
Next to CSV feeds for Bing Shopping the plugin now also strips the g: from the header for TXT feeds
|
2848 |
|
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.5
|
8 |
+
Stable tag: 8.9.4
|
9 |
|
10 |
== Description ==
|
11 |
|
320 |
|
321 |
=== Changelog ===
|
322 |
|
323 |
+
= 8.9.4 (2020-10-16) =
|
324 |
+
* Fixed a shipping issue where some shipping zone regions were missing
|
325 |
+
|
326 |
+
= 8.9.3 (2020-10-15) =
|
327 |
+
* Fixed an issue for prices of bundled products that always added the VAT to the price
|
328 |
+
|
329 |
= 8.9.2 (2020-10-13) =
|
330 |
* Next to CSV feeds for Bing Shopping the plugin now also strips the g: from the header for TXT feeds
|
331 |
|
2849 |
|
2850 |
== Upgrade Notice ==
|
2851 |
|
2852 |
+
= 8.9.4 =
|
2853 |
+
Fixed a shipping issue where some shipping zone regions were missing
|
2854 |
+
|
2855 |
+
= 8.9.3 =
|
2856 |
+
Fixed an issue for prices of bundled products that always added the VAT to the price
|
2857 |
+
|
2858 |
= 8.9.2 =
|
2859 |
Next to CSV feeds for Bing Shopping the plugin now also strips the g: from the header for TXT feeds
|
2860 |
|
woocommerce-sea.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Product Feed PRO for WooCommerce
|
4 |
-
* Version: 8.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,7 +48,7 @@ if (!defined('ABSPATH')) {
|
|
48 |
* Plugin versionnumber, please do not override.
|
49 |
* Define some constants
|
50 |
*/
|
51 |
-
define( 'WOOCOMMERCESEA_PLUGIN_VERSION', '8.9.
|
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: 8.9.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 |
* Plugin versionnumber, please do not override.
|
49 |
* Define some constants
|
50 |
*/
|
51 |
+
define( 'WOOCOMMERCESEA_PLUGIN_VERSION', '8.9.4' );
|
52 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
|
53 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
|
54 |
|