Version Description
Bundle and composite products now also working with WPML and WCML Escaping & characters in deeplinks
Download this release
Release Info
Developer | jorisverwater |
Plugin | Product Feed PRO for WooCommerce |
Version | 8.9.6 |
Comparing to | |
See all releases |
Code changes from version 8.9.5 to 8.9.6
- TODO.txt +1 -0
- classes/class-get-products.php +35 -36
- js/woosea_key.js +1 -1
- readme.txt +9 -1
- woocommerce-sea.php +2 -2
TODO.txt
CHANGED
@@ -8,6 +8,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
|
12 |
- Add possibility to copy feed configuration from one WooCommerce instance to the other instance
|
13 |
- Google local product feed inventory in XML format (not just TXT like it is now)
|
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 |
+
- Skroutz grouping issue: https://wordpress.org/support/topic/grouping-attribute/
|
12 |
- My adtribes environment with download link in it
|
13 |
- Add possibility to copy feed configuration from one WooCommerce instance to the other instance
|
14 |
- Google local product feed inventory in XML format (not just TXT like it is now)
|
classes/class-get-products.php
CHANGED
@@ -2272,7 +2272,7 @@ class WooSEA_Get_Products {
|
|
2272 |
}
|
2273 |
|
2274 |
$product_data['link'] = get_permalink( $product_data['id'])."$utm_part";
|
2275 |
-
$variable_link = get_permalink( $product_data['id']
|
2276 |
$vlink_piece = explode("?", $variable_link);
|
2277 |
$qutm_part = ltrim($utm_part, "&");
|
2278 |
$qutm_part = ltrim($qutm_part, "amp;");
|
@@ -2399,40 +2399,6 @@ class WooSEA_Get_Products {
|
|
2399 |
//$product_data['system_sale_price'] = ($product->get_sale_price() != $sale_price) ? $this->get_product_price($product, $sale_price ) : '';
|
2400 |
$product_data['system_sale_price'] = wc_format_decimal($product_data['system_sale_price'],2);
|
2401 |
|
2402 |
-
// Override price when WCML price is different than the non-translated price
|
2403 |
-
if(isset($project_config['WCML'])){
|
2404 |
-
$product_data['price'] = apply_filters('wcml_raw_price_amount', $product_data['price'], $project_config['WCML']);
|
2405 |
-
$product_data['regular_price'] = apply_filters('wcml_raw_price_amount', $product_data['regular_price'], $project_config['WCML']);
|
2406 |
-
$product_data['sale_price'] = apply_filters('wcml_raw_price_amount', $product_data['sale_price'], $project_config['WCML']);
|
2407 |
-
|
2408 |
-
// Make sure the product ID is not NULL either
|
2409 |
-
global $woocommerce_wpml;
|
2410 |
-
if(!is_null($product_data['WCML'])){
|
2411 |
-
$product_data['non_geo_wcml_price'] = $woocommerce_wpml->multi_currency->prices->get_product_price_in_currency( $product_data['id'], $project_config['WCML'] );
|
2412 |
-
}
|
2413 |
-
|
2414 |
-
// When WCML manual prices have been entered
|
2415 |
-
if(!is_null($product_data['id'])){
|
2416 |
-
$custom_prices = $woocommerce_wpml->get_multi_currency()->custom_prices->get_product_custom_prices( $product_data['id'], $project_config['WCML'] );
|
2417 |
-
|
2418 |
-
if($custom_prices['_price'] > 0){
|
2419 |
-
$product_data['price'] = $custom_prices['_price'];
|
2420 |
-
}
|
2421 |
-
|
2422 |
-
if($custom_prices['_regular_price'] > 0){
|
2423 |
-
$product_data['regular_price'] = $custom_prices['_regular_price'];
|
2424 |
-
}
|
2425 |
-
|
2426 |
-
if($custom_prices['_sale_price'] > 0){
|
2427 |
-
$product_data['sale_price'] = $custom_prices['_sale_price'];
|
2428 |
-
}
|
2429 |
-
}
|
2430 |
-
}
|
2431 |
-
|
2432 |
-
if($product_data['regular_price'] == $product_data['sale_price']){
|
2433 |
-
$product_data['sale_price'] = "";
|
2434 |
-
}
|
2435 |
-
|
2436 |
if(!empty($tax_rates)){
|
2437 |
foreach ($tax_rates as $tk => $tv){
|
2438 |
if($tv['rate'] > 0){
|
@@ -2457,7 +2423,6 @@ class WooSEA_Get_Products {
|
|
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']){
|
2460 |
-
$product_data['sale_price'] = round(get_post_meta($product_data['id'], '_sale_price', true) * (100+$tax_rates[1]['rate'])/100,2);
|
2461 |
$product_data['net_sale_price'] = get_post_meta($product_data['id'], '_sale_price', true);
|
2462 |
}
|
2463 |
} else {
|
@@ -2476,6 +2441,40 @@ class WooSEA_Get_Products {
|
|
2476 |
}
|
2477 |
}
|
2478 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2479 |
// Determine the gross prices of products
|
2480 |
if($product->get_price()){
|
2481 |
$product_data['price_forced'] = round(wc_get_price_excluding_tax($product,array('price'=> $product->get_price())) * (100+$tax_rates[1]['rate'])/100,2);
|
2272 |
}
|
2273 |
|
2274 |
$product_data['link'] = get_permalink( $product_data['id'])."$utm_part";
|
2275 |
+
$variable_link = htmlspecialchars(get_permalink( $product_data['id']));
|
2276 |
$vlink_piece = explode("?", $variable_link);
|
2277 |
$qutm_part = ltrim($utm_part, "&");
|
2278 |
$qutm_part = ltrim($qutm_part, "amp;");
|
2399 |
//$product_data['system_sale_price'] = ($product->get_sale_price() != $sale_price) ? $this->get_product_price($product, $sale_price ) : '';
|
2400 |
$product_data['system_sale_price'] = wc_format_decimal($product_data['system_sale_price'],2);
|
2401 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2402 |
if(!empty($tax_rates)){
|
2403 |
foreach ($tax_rates as $tk => $tv){
|
2404 |
if($tv['rate'] > 0){
|
2423 |
$product_data['regular_price'] = round(get_post_meta($product_data['id'], '_regular_price', true) * (100+$tax_rates[1]['rate'])/100,2);
|
2424 |
$product_data['net_regular_price'] = get_post_meta($product_data['id'], '_regular_price', true);
|
2425 |
if($product_data['price'] != $product_data['regular_price']){
|
|
|
2426 |
$product_data['net_sale_price'] = get_post_meta($product_data['id'], '_sale_price', true);
|
2427 |
}
|
2428 |
} else {
|
2441 |
}
|
2442 |
}
|
2443 |
|
2444 |
+
// Override price when WCML price is different than the non-translated price
|
2445 |
+
if(isset($project_config['WCML'])){
|
2446 |
+
$product_data['price'] = apply_filters('wcml_raw_price_amount', $product_data['price'], $project_config['WCML']);
|
2447 |
+
$product_data['regular_price'] = apply_filters('wcml_raw_price_amount', $product_data['regular_price'], $project_config['WCML']);
|
2448 |
+
$product_data['sale_price'] = apply_filters('wcml_raw_price_amount', $product_data['sale_price'], $project_config['WCML']);
|
2449 |
+
|
2450 |
+
// Make sure the product ID is not NULL either
|
2451 |
+
global $woocommerce_wpml;
|
2452 |
+
if(!is_null($product_data['WCML'])){
|
2453 |
+
$product_data['non_geo_wcml_price'] = $woocommerce_wpml->multi_currency->prices->get_product_price_in_currency( $product_data['id'], $project_config['WCML'] );
|
2454 |
+
}
|
2455 |
+
|
2456 |
+
// When WCML manual prices have been entered
|
2457 |
+
if(!is_null($product_data['id'])){
|
2458 |
+
$custom_prices = $woocommerce_wpml->get_multi_currency()->custom_prices->get_product_custom_prices( $product_data['id'], $project_config['WCML'] );
|
2459 |
+
|
2460 |
+
if($custom_prices['_price'] > 0){
|
2461 |
+
$product_data['price'] = $custom_prices['_price'];
|
2462 |
+
}
|
2463 |
+
|
2464 |
+
if($custom_prices['_regular_price'] > 0){
|
2465 |
+
$product_data['regular_price'] = $custom_prices['_regular_price'];
|
2466 |
+
}
|
2467 |
+
|
2468 |
+
if($custom_prices['_sale_price'] > 0){
|
2469 |
+
$product_data['sale_price'] = $custom_prices['_sale_price'];
|
2470 |
+
}
|
2471 |
+
}
|
2472 |
+
}
|
2473 |
+
|
2474 |
+
if($product_data['regular_price'] == $product_data['sale_price']){
|
2475 |
+
$product_data['sale_price'] = "";
|
2476 |
+
}
|
2477 |
+
|
2478 |
// Determine the gross prices of products
|
2479 |
if($product->get_price()){
|
2480 |
$product_data['price_forced'] = round(wc_get_price_excluding_tax($product,array('price'=> $product->get_price())) * (100+$tax_rates[1]['rate'])/100,2);
|
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.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.5
|
8 |
-
Stable tag: 8.9.
|
9 |
|
10 |
== Description ==
|
11 |
|
@@ -320,6 +320,10 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
|
|
320 |
|
321 |
=== Changelog ===
|
322 |
|
|
|
|
|
|
|
|
|
323 |
= 8.9.5 (2020-10-21) =
|
324 |
* Tested for compatibility with WooCommerce 4.6
|
325 |
|
@@ -2852,6 +2856,10 @@ Questions left or unanswered? Please do not hesitate to contact us at support@ad
|
|
2852 |
|
2853 |
== Upgrade Notice ==
|
2854 |
|
|
|
|
|
|
|
|
|
2855 |
= 8.9.5 =
|
2856 |
Tested for compatibility with WooCommerce 4.6
|
2857 |
|
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.6
|
9 |
|
10 |
== Description ==
|
11 |
|
320 |
|
321 |
=== Changelog ===
|
322 |
|
323 |
+
= 8.9.6 (2020-10-22) =
|
324 |
+
* Escaping & characters in deeplinks
|
325 |
+
* Bundled and Composite products now also working for WPML/WCML
|
326 |
+
|
327 |
= 8.9.5 (2020-10-21) =
|
328 |
* Tested for compatibility with WooCommerce 4.6
|
329 |
|
2856 |
|
2857 |
== Upgrade Notice ==
|
2858 |
|
2859 |
+
= 8.9.6 =
|
2860 |
+
Bundle and composite products now also working with WPML and WCML
|
2861 |
+
Escaping & characters in deeplinks
|
2862 |
+
|
2863 |
= 8.9.5 =
|
2864 |
Tested for compatibility with WooCommerce 4.6
|
2865 |
|
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.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', '8.9.6' );
|
52 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME', 'woocommerce-product-feed-pro' );
|
53 |
define( 'WOOCOMMERCESEA_PLUGIN_NAME_SHORT', 'woo-product-feed-pro' );
|
54 |
|