Version Description
(2020-08-10) = * Added: Google product_details attribute added to Google Shopping template.
Download this release
Release Info
Developer | wahid0003 |
Plugin | CTX Feed – WooCommerce Product Feed Manager Plugin |
Version | 3.6.16 |
Comparing to | |
See all releases |
Code changes from version 3.6.15 to 3.6.16
README.txt
CHANGED
@@ -5,7 +5,7 @@ Tags:product feed,woocommerce product feed,google shopping feed,google shopping,
|
|
5 |
Requires at least: 3.6
|
6 |
Tested Up To: 5.4
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 3.6.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -308,10 +308,12 @@ Using pro version:
|
|
308 |
|
309 |
== Changelog ==
|
310 |
|
|
|
|
|
|
|
311 |
= 3.6.15 (2020-08-03) =
|
312 |
* Added: Google product highlight attribute added to Google Shopping template.
|
313 |
|
314 |
-
|
315 |
= 3.6.14 (2020-07-25) =
|
316 |
* Added: Etsy template added.
|
317 |
* Tweak: Pricerunner stock status will return Yes or No instead of in stock or out of stock.
|
5 |
Requires at least: 3.6
|
6 |
Tested Up To: 5.4
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 3.6.16
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
308 |
|
309 |
== Changelog ==
|
310 |
|
311 |
+
= 3.6.16 (2020-08-10) =
|
312 |
+
* Added: Google product_details attribute added to Google Shopping template.
|
313 |
+
|
314 |
= 3.6.15 (2020-08-03) =
|
315 |
* Added: Google product highlight attribute added to Google Shopping template.
|
316 |
|
|
|
317 |
= 3.6.14 (2020-07-25) =
|
318 |
* Added: Etsy template added.
|
319 |
* Tweak: Pricerunner stock status will return Yes or No instead of in stock or out of stock.
|
admin/partials/woo-feed-edit-filter.php
CHANGED
@@ -5,6 +5,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
5 |
?>
|
6 |
<table class="table tree widefat fixed woo-feed-filters">
|
7 |
<tbody>
|
|
|
8 |
<tr>
|
9 |
<td colspan="2"><?php _e( 'Campaign URL Builder', 'woo-feed' ); ?></td>
|
10 |
</tr>
|
@@ -49,6 +50,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
49 |
</label>
|
50 |
</td>
|
51 |
</tr>
|
|
|
|
|
|
|
52 |
</tbody>
|
53 |
<tfoot>
|
54 |
<tr>
|
@@ -63,5 +67,31 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
63 |
</table>
|
64 |
</td>
|
65 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
</tbody>
|
67 |
</table>
|
5 |
?>
|
6 |
<table class="table tree widefat fixed woo-feed-filters">
|
7 |
<tbody>
|
8 |
+
|
9 |
<tr>
|
10 |
<td colspan="2"><?php _e( 'Campaign URL Builder', 'woo-feed' ); ?></td>
|
11 |
</tr>
|
50 |
</label>
|
51 |
</td>
|
52 |
</tr>
|
53 |
+
|
54 |
+
|
55 |
+
|
56 |
</tbody>
|
57 |
<tfoot>
|
58 |
<tr>
|
67 |
</table>
|
68 |
</td>
|
69 |
</tr>
|
70 |
+
<tr><td colspan="2"> <b style="font-size: large;"><a href="http://bit.ly/2KIwvTt"> → Premium version</a> of the plugin have lots to filtering option like:</b><br>
|
71 |
+
<table class="table widefat fixed" style="border: 0">
|
72 |
+
<tr>
|
73 |
+
<td>1. Include/Exclude some specific products from feed by Product ID.</td>
|
74 |
+
</tr>
|
75 |
+
<tr>
|
76 |
+
<td>2. Include/Exclude product from feed by any attribute value with condition <b>(Advance Filter)</b></td>
|
77 |
+
</tr>
|
78 |
+
<tr>
|
79 |
+
<td>3. Remove Out Of Stock Products.</td>
|
80 |
+
</tr>
|
81 |
+
<tr>
|
82 |
+
<td>4. Make feed for Specific Product Categories.</td>
|
83 |
+
</tr>
|
84 |
+
<tr>
|
85 |
+
<td>5. Replace any string into feed.</td>
|
86 |
+
</tr>
|
87 |
+
<tr>
|
88 |
+
<td>6. Custom Number format.</td>
|
89 |
+
</tr>
|
90 |
+
<tr>
|
91 |
+
<td><b>Get →<a style="color: red;" href="http://bit.ly/2KIwvTt"> Woo Feed Pro</a></b></td>
|
92 |
+
</tr>
|
93 |
+
</table>
|
94 |
+
</td>
|
95 |
+
</tr>
|
96 |
</tbody>
|
97 |
</table>
|
includes/classes/class-woo-feed-default-attributes.php
CHANGED
@@ -48,16 +48,19 @@ class Woo_Feed_Default_Attributes {
|
|
48 |
'upc' => array( 'g:gtin', true ),
|
49 |
'identifier_exists' => array( 'g:identifier_exists', true ),
|
50 |
'item_group_id' => array( 'g:item_group_id', false ),
|
51 |
-
'product_highlight_1'
|
52 |
-
'product_highlight_2'
|
53 |
-
'product_highlight_3'
|
54 |
-
'product_highlight_4'
|
55 |
-
'product_highlight_5'
|
56 |
-
'product_highlight_6'
|
57 |
-
'product_highlight_7'
|
58 |
-
'product_highlight_8'
|
59 |
-
'product_highlight_9'
|
60 |
-
'product_highlight_10'
|
|
|
|
|
|
|
61 |
'color' => array( 'g:color', true ),
|
62 |
'gender' => array( 'g:gender', true ),
|
63 |
'age_group' => array( 'g:age_group', true ),
|
@@ -612,6 +615,9 @@ class Woo_Feed_Default_Attributes {
|
|
612 |
'product_highlight_8' => 'Product Highlight 8[product_highlight]',
|
613 |
'product_highlight_9' => 'Product Highlight 9[product_highlight]',
|
614 |
'product_highlight_10' => 'Product Highlight 10[product_highlight]',
|
|
|
|
|
|
|
615 |
'---4' => '',
|
616 |
'--5' => 'Tax & Shipping',
|
617 |
'tax' => 'Tax[tax]',
|
48 |
'upc' => array( 'g:gtin', true ),
|
49 |
'identifier_exists' => array( 'g:identifier_exists', true ),
|
50 |
'item_group_id' => array( 'g:item_group_id', false ),
|
51 |
+
'product_highlight_1' => array( 'g:product_highlight', true ),
|
52 |
+
'product_highlight_2' => array( 'g:product_highlight', true ),
|
53 |
+
'product_highlight_3' => array( 'g:product_highlight', true ),
|
54 |
+
'product_highlight_4' => array( 'g:product_highlight', true ),
|
55 |
+
'product_highlight_5' => array( 'g:product_highlight', true ),
|
56 |
+
'product_highlight_6' => array( 'g:product_highlight', true ),
|
57 |
+
'product_highlight_7' => array( 'g:product_highlight', true ),
|
58 |
+
'product_highlight_8' => array( 'g:product_highlight', true ),
|
59 |
+
'product_highlight_9' => array( 'g:product_highlight', true ),
|
60 |
+
'product_highlight_10' => array( 'g:product_highlight', true ),
|
61 |
+
// 'section_name' => array( 'g:section_name', true ),
|
62 |
+
// 'attribute_name' => array( 'g:attribute_name', true ),
|
63 |
+
// 'attribute_value' => array( 'g:attribute_value', true ),
|
64 |
'color' => array( 'g:color', true ),
|
65 |
'gender' => array( 'g:gender', true ),
|
66 |
'age_group' => array( 'g:age_group', true ),
|
615 |
'product_highlight_8' => 'Product Highlight 8[product_highlight]',
|
616 |
'product_highlight_9' => 'Product Highlight 9[product_highlight]',
|
617 |
'product_highlight_10' => 'Product Highlight 10[product_highlight]',
|
618 |
+
'section_name' => 'Section Name (Product Detail)[section_name]',
|
619 |
+
'attribute_name' => 'Attribute Name (Product Detail)[attribute_name]',
|
620 |
+
'attribute_value' => 'Attribute Value (Product Detail)[attribute_value]',
|
621 |
'---4' => '',
|
622 |
'--5' => 'Tax & Shipping',
|
623 |
'tax' => 'Tax[tax]',
|
includes/classes/class-woo-feed-products-v3.php
CHANGED
@@ -109,6 +109,9 @@ class Woo_Feed_Products_v3
|
|
109 |
'subscription_period',
|
110 |
'subscription_period_length',
|
111 |
'subscription_amount',
|
|
|
|
|
|
|
112 |
);
|
113 |
/**
|
114 |
* XML Wrapper Array
|
@@ -136,6 +139,9 @@ class Woo_Feed_Products_v3
|
|
136 |
'subscription_period',
|
137 |
'subscription_period_length',
|
138 |
'subscription_amount',
|
|
|
|
|
|
|
139 |
),
|
140 |
'facebook' => array(
|
141 |
'shipping_country',
|
@@ -151,6 +157,9 @@ class Woo_Feed_Products_v3
|
|
151 |
'subscription_period',
|
152 |
'subscription_period_length',
|
153 |
'subscription_amount',
|
|
|
|
|
|
|
154 |
),
|
155 |
);
|
156 |
|
@@ -661,9 +670,11 @@ class Woo_Feed_Products_v3
|
|
661 |
$shipping = array();
|
662 |
$tax = array();
|
663 |
$installment = array();
|
|
|
664 |
$s = 0; // Shipping Index
|
665 |
$t = 0; // Tax Index
|
666 |
$i = 0; // Installment Index
|
|
|
667 |
$shippingAttr = array(
|
668 |
'shipping_country',
|
669 |
'shipping_service',
|
@@ -673,6 +684,9 @@ class Woo_Feed_Products_v3
|
|
673 |
'tax_region',
|
674 |
'tax_rate',
|
675 |
'tax_ship',
|
|
|
|
|
|
|
676 |
);
|
677 |
foreach ($this->products[$this->pi] as $attribute => $value) {
|
678 |
if (in_array($attribute, $shippingAttr)) {
|
@@ -699,6 +713,7 @@ class Woo_Feed_Products_v3
|
|
699 |
$shipping[$s] .= $value . ':';
|
700 |
}
|
701 |
|
|
|
702 |
unset($this->products[$this->pi][$attribute]);
|
703 |
}
|
704 |
}
|
@@ -721,6 +736,8 @@ class Woo_Feed_Products_v3
|
|
721 |
$shipping = '';
|
722 |
$sub = 0;
|
723 |
$subscription = '';
|
|
|
|
|
724 |
if ('xml' == $this->config['feedType']) {
|
725 |
foreach ($merchantAttributes as $key => $value) {
|
726 |
|
@@ -799,7 +816,35 @@ class Woo_Feed_Products_v3
|
|
799 |
$subscription .= '<g:period_length>' . $output . '</g:period_length>' . "\n";
|
800 |
}elseif ( 'subscription_amount' == $value ) {
|
801 |
$subscription .= '<g:amount>' . $output . '</g:amount>' . "\n";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
802 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
803 |
}
|
804 |
|
805 |
if (1 == $s) {
|
@@ -815,6 +860,7 @@ class Woo_Feed_Products_v3
|
|
815 |
|
816 |
$this->feedBody .= $shipping;
|
817 |
$this->feedBody .= $tax;
|
|
|
818 |
|
819 |
if($productObj->is_type('subscription') ||
|
820 |
$productObj->is_type('variable-subscription') ||
|
109 |
'subscription_period',
|
110 |
'subscription_period_length',
|
111 |
'subscription_amount',
|
112 |
+
'section_name',
|
113 |
+
'attribute_name',
|
114 |
+
'attribute_value',
|
115 |
);
|
116 |
/**
|
117 |
* XML Wrapper Array
|
139 |
'subscription_period',
|
140 |
'subscription_period_length',
|
141 |
'subscription_amount',
|
142 |
+
'section_name',
|
143 |
+
'attribute_name',
|
144 |
+
'attribute_value',
|
145 |
),
|
146 |
'facebook' => array(
|
147 |
'shipping_country',
|
157 |
'subscription_period',
|
158 |
'subscription_period_length',
|
159 |
'subscription_amount',
|
160 |
+
'section_name',
|
161 |
+
'attribute_name',
|
162 |
+
'attribute_value',
|
163 |
),
|
164 |
);
|
165 |
|
670 |
$shipping = array();
|
671 |
$tax = array();
|
672 |
$installment = array();
|
673 |
+
$product_detail=array();
|
674 |
$s = 0; // Shipping Index
|
675 |
$t = 0; // Tax Index
|
676 |
$i = 0; // Installment Index
|
677 |
+
$pd = 0; // Product details Index
|
678 |
$shippingAttr = array(
|
679 |
'shipping_country',
|
680 |
'shipping_service',
|
684 |
'tax_region',
|
685 |
'tax_rate',
|
686 |
'tax_ship',
|
687 |
+
'section_name',
|
688 |
+
'attribute_name',
|
689 |
+
'attribute_value',
|
690 |
);
|
691 |
foreach ($this->products[$this->pi] as $attribute => $value) {
|
692 |
if (in_array($attribute, $shippingAttr)) {
|
713 |
$shipping[$s] .= $value . ':';
|
714 |
}
|
715 |
|
716 |
+
|
717 |
unset($this->products[$this->pi][$attribute]);
|
718 |
}
|
719 |
}
|
736 |
$shipping = '';
|
737 |
$sub = 0;
|
738 |
$subscription = '';
|
739 |
+
$product_detail='';
|
740 |
+
$pd=0;
|
741 |
if ('xml' == $this->config['feedType']) {
|
742 |
foreach ($merchantAttributes as $key => $value) {
|
743 |
|
816 |
$subscription .= '<g:period_length>' . $output . '</g:period_length>' . "\n";
|
817 |
}elseif ( 'subscription_amount' == $value ) {
|
818 |
$subscription .= '<g:amount>' . $output . '</g:amount>' . "\n";
|
819 |
+
}else if ('section_name' == $value) {
|
820 |
+
if (0 == $pd) {
|
821 |
+
$product_detail .= '<g:product_detail>';
|
822 |
+
$pd = 1;
|
823 |
+
} else {
|
824 |
+
$product_detail .= '</g:product_detail>' . "\n";
|
825 |
+
$product_detail .= '<g:product_detail>';
|
826 |
+
}
|
827 |
+
} elseif (!in_array('section_name', $merchantAttributes) && 'attribute_name' == $value) {
|
828 |
+
if (0 == $pd) {
|
829 |
+
$product_detail .= '<g:product_detail>';
|
830 |
+
$pd = 1;
|
831 |
+
} else {
|
832 |
+
$product_detail .= '</g:product_detail>' . "\n";
|
833 |
+
$product_detail .= '<g:product_detail>';
|
834 |
+
}
|
835 |
}
|
836 |
+
|
837 |
+
if ( 'section_name' == $value ) {
|
838 |
+
$product_detail .= '<g:section_name>' . $output . '</g:section_name>' . "\n";
|
839 |
+
}elseif ( 'attribute_name' == $value ) {
|
840 |
+
$product_detail .= '<g:attribute_name>' . $output . '</g:attribute_name>' . "\n";
|
841 |
+
}elseif ( 'attribute_value' == $value ) {
|
842 |
+
$product_detail .= '<g:attribute_value>' . $output . '</g:attribute_value>' . "\n";
|
843 |
+
}
|
844 |
+
}
|
845 |
+
|
846 |
+
if (1 == $pd) {
|
847 |
+
$product_detail .= '</g:product_detail>';
|
848 |
}
|
849 |
|
850 |
if (1 == $s) {
|
860 |
|
861 |
$this->feedBody .= $shipping;
|
862 |
$this->feedBody .= $tax;
|
863 |
+
$this->feedBody .= $product_detail;
|
864 |
|
865 |
if($productObj->is_type('subscription') ||
|
866 |
$productObj->is_type('variable-subscription') ||
|
woo-feed.php
CHANGED
@@ -11,7 +11,7 @@
|
|
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 |
*
|
14 |
-
* Version: 3.6.
|
15 |
* Author: WebAppick
|
16 |
* Author URI: https://webappick.com/
|
17 |
* License: GPL v2
|
@@ -39,7 +39,7 @@ if ( ! defined( 'WOO_FEED_FREE_VERSION' ) ) {
|
|
39 |
* @var string
|
40 |
* @since 3.1.6
|
41 |
*/
|
42 |
-
define( 'WOO_FEED_FREE_VERSION', '3.6.
|
43 |
}
|
44 |
|
45 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|
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 |
*
|
14 |
+
* Version: 3.6.16
|
15 |
* Author: WebAppick
|
16 |
* Author URI: https://webappick.com/
|
17 |
* License: GPL v2
|
39 |
* @var string
|
40 |
* @since 3.1.6
|
41 |
*/
|
42 |
+
define( 'WOO_FEED_FREE_VERSION', '3.6.16' );
|
43 |
}
|
44 |
|
45 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|