Version Description
(2022-10-26) = * Fixed: Snapchat image attribute changes from image to image_link. * Fixed: Halloween discount banner only shows into plugin pages.
Download this release
Release Info
Developer | wahid0003 |
Plugin | CTX Feed – WooCommerce Product Feed Manager Plugin |
Version | 4.5.6 |
Comparing to | |
See all releases |
Code changes from version 4.5.5 to 4.5.6
- README.txt +5 -1
- V5/Filter/Filter.php +28 -3
- V5/Utility/DropDown.php +14 -14
- includes/classes/class-woo-feed-constants.php +1 -1
- includes/helper.php +1 -0
- includes/template-configs.php +1 -1
- woo-feed.php +4 -4
README.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: WooCommerce Product Feed, WooCommerce, Google Shopping, Google Merchant, F
|
|
5 |
Requires at least: 4.4
|
6 |
Tested Up To: 6.0
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 4.5.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -590,6 +590,10 @@ Using pro version:
|
|
590 |
|
591 |
== Changelog ==
|
592 |
|
|
|
|
|
|
|
|
|
593 |
= 4.5.5 (2022-10-17) =
|
594 |
* Added: Product Status attribute added.
|
595 |
|
5 |
Requires at least: 4.4
|
6 |
Tested Up To: 6.0
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 4.5.6
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
590 |
|
591 |
== Changelog ==
|
592 |
|
593 |
+
= 4.5.6 (2022-10-26) =
|
594 |
+
* Fixed: Snapchat image attribute changes from image to image_link.
|
595 |
+
* Fixed: Halloween discount banner only shows into plugin pages.
|
596 |
+
|
597 |
= 4.5.5 (2022-10-17) =
|
598 |
* Added: Product Status attribute added.
|
599 |
|
V5/Filter/Filter.php
CHANGED
@@ -66,10 +66,11 @@ class Filter
|
|
66 |
*/
|
67 |
public function exclude_out_of_stock_products()
|
68 |
{
|
69 |
-
if ($this->config->remove_outofstock_product()
|
70 |
-
return
|
71 |
}
|
72 |
-
|
|
|
73 |
}
|
74 |
|
75 |
//TODO Out of stock visibility.
|
@@ -191,4 +192,28 @@ class Filter
|
|
191 |
|
192 |
return $exclude;
|
193 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
}
|
66 |
*/
|
67 |
public function exclude_out_of_stock_products()
|
68 |
{
|
69 |
+
if ( ! $this->config->remove_outofstock_product() || $this->product->get_stock_status() !== 'outofstock' && $this->product->get_stock_quantity() !== 0 ) {
|
70 |
+
return false;
|
71 |
}
|
72 |
+
|
73 |
+
return true;
|
74 |
}
|
75 |
|
76 |
//TODO Out of stock visibility.
|
192 |
|
193 |
return $exclude;
|
194 |
}
|
195 |
+
|
196 |
+
public function exclude_variation_products( ) {
|
197 |
+
|
198 |
+
}
|
199 |
+
|
200 |
+
public function include_variation_products( ) {
|
201 |
+
|
202 |
+
}
|
203 |
+
|
204 |
+
public function exclude_variation_category( ) {
|
205 |
+
|
206 |
+
}
|
207 |
+
|
208 |
+
public function include_variation_category( ) {
|
209 |
+
|
210 |
+
}
|
211 |
+
|
212 |
+
public function exclude_variation_status( ) {
|
213 |
+
|
214 |
+
}
|
215 |
+
|
216 |
+
public function include_variation_status( ) {
|
217 |
+
|
218 |
+
}
|
219 |
}
|
V5/Utility/DropDown.php
CHANGED
@@ -6,11 +6,11 @@ class DropDown {
|
|
6 |
* @var string $options Hold Options
|
7 |
*/
|
8 |
private static $options;
|
9 |
-
|
10 |
public function __construct() {
|
11 |
self::$options = '';
|
12 |
}
|
13 |
-
|
14 |
/**
|
15 |
* Create Dropdown from array.
|
16 |
*
|
@@ -23,13 +23,13 @@ class DropDown {
|
|
23 |
*/
|
24 |
public static function Create( $data, $selected, $cache_key = null, $cache = false ) {
|
25 |
//TODO: Option to set disabled options.
|
26 |
-
|
27 |
self::$options = "";
|
28 |
-
|
29 |
if ( empty( $data ) || ! is_array( $data ) ) {
|
30 |
return "<option class='disabled' selected>No data available.</option>";
|
31 |
}
|
32 |
-
|
33 |
// If $cache true then return cached data.
|
34 |
if ( $cache ) {
|
35 |
self::$options = Cache::get( $cache_key );
|
@@ -43,23 +43,23 @@ class DropDown {
|
|
43 |
self::$options = str_replace( "value=\"$selectedValue\"", "value=\"$selectedValue\" selected", self::$options );
|
44 |
}
|
45 |
}
|
46 |
-
|
47 |
return self::$options;
|
48 |
}
|
49 |
}
|
50 |
|
51 |
if ( count($data) !== count($data, COUNT_RECURSIVE) ) {
|
52 |
-
|
53 |
foreach ( $data as $value ) {
|
54 |
if ( isset( $value['optionGroup'] ) ) {
|
55 |
self::$options .= "<optgroup label=\"{$value['optionGroup']}\">";
|
56 |
}
|
57 |
-
|
58 |
if ( isset( $value['options'] ) && ! empty( $value['options'] ) ) {
|
59 |
foreach ( $value['options'] as $optionKey => $option ) {
|
60 |
self::$options .= sprintf( '<option value="%s">%s</option>', $optionKey, $option );
|
61 |
}
|
62 |
-
|
63 |
self::$options .= isset( $value['optionGroup'] ) ? '</optgroup>' : '';
|
64 |
}
|
65 |
}
|
@@ -68,14 +68,14 @@ class DropDown {
|
|
68 |
self::$options .= sprintf( '<option value="%s">%s</option>', $optionKey, $option );
|
69 |
}
|
70 |
}
|
71 |
-
|
72 |
// If $cache true then set cache.
|
73 |
if ( $cache ) {
|
74 |
Cache::set( $cache_key, self::$options );
|
75 |
}
|
76 |
-
|
77 |
if ( $selected !== '' && is_string( $selected ) ) {
|
78 |
-
|
79 |
self::$options = str_replace( "value=\"$selected\"", "value=\"$selected\" selected", self::$options );
|
80 |
} elseif ( $selected !== '' && is_array( $selected ) ) {
|
81 |
foreach ( $selected as $selectedValue ) {
|
@@ -83,7 +83,7 @@ class DropDown {
|
|
83 |
self::$options = str_replace( "value=\"$selectedValue\"", "value=\"$selectedValue\" selected", self::$options );
|
84 |
}
|
85 |
}
|
86 |
-
|
87 |
return self::$options;
|
88 |
}
|
89 |
-
}
|
6 |
* @var string $options Hold Options
|
7 |
*/
|
8 |
private static $options;
|
9 |
+
|
10 |
public function __construct() {
|
11 |
self::$options = '';
|
12 |
}
|
13 |
+
|
14 |
/**
|
15 |
* Create Dropdown from array.
|
16 |
*
|
23 |
*/
|
24 |
public static function Create( $data, $selected, $cache_key = null, $cache = false ) {
|
25 |
//TODO: Option to set disabled options.
|
26 |
+
|
27 |
self::$options = "";
|
28 |
+
|
29 |
if ( empty( $data ) || ! is_array( $data ) ) {
|
30 |
return "<option class='disabled' selected>No data available.</option>";
|
31 |
}
|
32 |
+
|
33 |
// If $cache true then return cached data.
|
34 |
if ( $cache ) {
|
35 |
self::$options = Cache::get( $cache_key );
|
43 |
self::$options = str_replace( "value=\"$selectedValue\"", "value=\"$selectedValue\" selected", self::$options );
|
44 |
}
|
45 |
}
|
46 |
+
|
47 |
return self::$options;
|
48 |
}
|
49 |
}
|
50 |
|
51 |
if ( count($data) !== count($data, COUNT_RECURSIVE) ) {
|
52 |
+
|
53 |
foreach ( $data as $value ) {
|
54 |
if ( isset( $value['optionGroup'] ) ) {
|
55 |
self::$options .= "<optgroup label=\"{$value['optionGroup']}\">";
|
56 |
}
|
57 |
+
|
58 |
if ( isset( $value['options'] ) && ! empty( $value['options'] ) ) {
|
59 |
foreach ( $value['options'] as $optionKey => $option ) {
|
60 |
self::$options .= sprintf( '<option value="%s">%s</option>', $optionKey, $option );
|
61 |
}
|
62 |
+
|
63 |
self::$options .= isset( $value['optionGroup'] ) ? '</optgroup>' : '';
|
64 |
}
|
65 |
}
|
68 |
self::$options .= sprintf( '<option value="%s">%s</option>', $optionKey, $option );
|
69 |
}
|
70 |
}
|
71 |
+
|
72 |
// If $cache true then set cache.
|
73 |
if ( $cache ) {
|
74 |
Cache::set( $cache_key, self::$options );
|
75 |
}
|
76 |
+
|
77 |
if ( $selected !== '' && is_string( $selected ) ) {
|
78 |
+
//$selected = esc_attr( $selected );
|
79 |
self::$options = str_replace( "value=\"$selected\"", "value=\"$selected\" selected", self::$options );
|
80 |
} elseif ( $selected !== '' && is_array( $selected ) ) {
|
81 |
foreach ( $selected as $selectedValue ) {
|
83 |
self::$options = str_replace( "value=\"$selectedValue\"", "value=\"$selectedValue\" selected", self::$options );
|
84 |
}
|
85 |
}
|
86 |
+
|
87 |
return self::$options;
|
88 |
}
|
89 |
+
}
|
includes/classes/class-woo-feed-constants.php
CHANGED
@@ -23,7 +23,7 @@ if( ! class_exists("Woo_Feed_Constants") ) {
|
|
23 |
* @var string
|
24 |
* @since 3.1.6
|
25 |
*/
|
26 |
-
define( 'WOO_FEED_FREE_VERSION', '4.5.
|
27 |
}
|
28 |
|
29 |
if ( ! defined( 'WOO_FEED_FREE_PATH' ) ) {
|
23 |
* @var string
|
24 |
* @since 3.1.6
|
25 |
*/
|
26 |
+
define( 'WOO_FEED_FREE_VERSION', '4.5.6' );
|
27 |
}
|
28 |
|
29 |
if ( ! defined( 'WOO_FEED_FREE_PATH' ) ) {
|
includes/helper.php
CHANGED
@@ -3650,6 +3650,7 @@ if ( ! function_exists( 'woo_feed_filter_dropdown_attributes' ) ) {
|
|
3650 |
$filtered_attributes = $default_attr;
|
3651 |
$snapchat_additional_attr = array();
|
3652 |
$snapchat_additional_attr['--18'] = 'Snapchat Additional Attributes';
|
|
|
3653 |
$snapchat_additional_attr['icon_media_url'] = 'Icon Media Url[icon_media_url]';
|
3654 |
$snapchat_additional_attr['ios_app_name'] = 'IOS App Name[ios_app_name]';
|
3655 |
$snapchat_additional_attr['ios_app_store_id'] = 'IOS App Store ID[ios_app_store_id]';
|
3650 |
$filtered_attributes = $default_attr;
|
3651 |
$snapchat_additional_attr = array();
|
3652 |
$snapchat_additional_attr['--18'] = 'Snapchat Additional Attributes';
|
3653 |
+
$snapchat_additional_attr['image_link'] = 'Image Link';
|
3654 |
$snapchat_additional_attr['icon_media_url'] = 'Icon Media Url[icon_media_url]';
|
3655 |
$snapchat_additional_attr['ios_app_name'] = 'IOS App Name[ios_app_name]';
|
3656 |
$snapchat_additional_attr['ios_app_store_id'] = 'IOS App Store ID[ios_app_store_id]';
|
includes/template-configs.php
CHANGED
@@ -2694,7 +2694,7 @@ return array(
|
|
2694 |
'limit' => array( '', '' ),
|
2695 |
),
|
2696 |
'snapchat' => array(
|
2697 |
-
'mattributes' => array( 'id', 'title', 'description', 'item_group_id', 'link', 'product_type', 'current_category', '
|
2698 |
'prefix' => array( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ),
|
2699 |
'type' => array( 'attribute', 'attribute', 'attribute', 'attribute', 'attribute', 'attribute', 'pattern', 'attribute', 'attribute', 'attribute', 'attribute', 'attribute', 'attribute', 'pattern', 'attribute' ),
|
2700 |
'attributes' => array( 'id', 'title', 'description', 'item_group_id', 'link', 'product_type', '', 'image', 'condition', 'availability', 'price', 'current_price', 'sku', '', 'canonical_link' ),
|
2694 |
'limit' => array( '', '' ),
|
2695 |
),
|
2696 |
'snapchat' => array(
|
2697 |
+
'mattributes' => array( 'id', 'title', 'description', 'item_group_id', 'link', 'product_type', 'current_category', 'image_link', 'condition', 'availability', 'price', 'sale_price', 'sku', 'brand', 'canonical_link' ),
|
2698 |
'prefix' => array( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ),
|
2699 |
'type' => array( 'attribute', 'attribute', 'attribute', 'attribute', 'attribute', 'attribute', 'pattern', 'attribute', 'attribute', 'attribute', 'attribute', 'attribute', 'attribute', 'pattern', 'attribute' ),
|
2700 |
'attributes' => array( 'id', 'title', 'description', 'item_group_id', 'link', 'product_type', '', 'image', 'condition', 'availability', 'price', 'current_price', 'sku', '', 'canonical_link' ),
|
woo-feed.php
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
* Plugin Name: CTX Feed
|
11 |
* Plugin URI: https://webappick.com/
|
12 |
* Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
|
13 |
-
* Version: 4.5.
|
14 |
* Author: WebAppick
|
15 |
* Author URI: https://webappick.com/
|
16 |
* License: GPL v2
|
@@ -32,7 +32,6 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
32 |
die(); // If this file is called directly, abort.
|
33 |
}
|
34 |
|
35 |
-
|
36 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|
37 |
/**
|
38 |
* Plugin Base File
|
@@ -55,7 +54,6 @@ if ( ! defined( 'WOO_FEED_FREE_ADMIN_URL' ) ) {
|
|
55 |
|
56 |
require_once __DIR__ . '/includes/classes/class-woo-feed-constants.php';
|
57 |
Woo_Feed_Constants::defined_constants();
|
58 |
-
|
59 |
/*
|
60 |
* Autoloader
|
61 |
*
|
@@ -132,7 +130,9 @@ if ( ! function_exists( 'run_woo_feed' ) ) {
|
|
132 |
add_action( 'plugins_loaded', array( $plugin, 'run' ), PHP_INT_MAX );
|
133 |
add_action( 'admin_notices', 'wooFeed_Admin_Notices' );
|
134 |
//add_action( 'admin_notices', 'woo_feed_black_friday_notice' );
|
135 |
-
|
|
|
|
|
136 |
WooFeedWebAppickAPI::getInstance();
|
137 |
|
138 |
}
|
10 |
* Plugin Name: CTX Feed
|
11 |
* Plugin URI: https://webappick.com/
|
12 |
* Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
|
13 |
+
* Version: 4.5.6
|
14 |
* Author: WebAppick
|
15 |
* Author URI: https://webappick.com/
|
16 |
* License: GPL v2
|
32 |
die(); // If this file is called directly, abort.
|
33 |
}
|
34 |
|
|
|
35 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|
36 |
/**
|
37 |
* Plugin Base File
|
54 |
|
55 |
require_once __DIR__ . '/includes/classes/class-woo-feed-constants.php';
|
56 |
Woo_Feed_Constants::defined_constants();
|
|
|
57 |
/*
|
58 |
* Autoloader
|
59 |
*
|
130 |
add_action( 'plugins_loaded', array( $plugin, 'run' ), PHP_INT_MAX );
|
131 |
add_action( 'admin_notices', 'wooFeed_Admin_Notices' );
|
132 |
//add_action( 'admin_notices', 'woo_feed_black_friday_notice' );
|
133 |
+
if( isset($_GET['page'] ) && preg_match( '/^webappick\W+/', $_GET['page'] ) ) {
|
134 |
+
add_action( 'admin_notices', 'woo_feed_halloween_notice' );
|
135 |
+
}
|
136 |
WooFeedWebAppickAPI::getInstance();
|
137 |
|
138 |
}
|