CTX Feed – WooCommerce Product Feed Manager Plugin - Version 4.3.30

Version Description

(2021-02-11) = * Added: WooCommerce latest version(5.0.0) compatibility. * Tweak: Updated doc links. * Tweak: Updated topbar links.

Download this release

Release Info

Developer wahid0003
Plugin Icon 128x128 CTX Feed – WooCommerce Product Feed Manager Plugin
Version 4.3.30
Comparing to
See all releases

Code changes from version 4.3.29 to 4.3.30

README.txt CHANGED
@@ -5,7 +5,7 @@ Tags: Product Feed, WooCommerce, Google Shopping, Google Merchant, Facebook Cata
5
  Requires at least: 3.6
6
  Tested Up To: 5.6.1
7
  Requires PHP: 5.6
8
- Stable tag: 4.3.29
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -498,6 +498,11 @@ Using pro version:
498
 
499
  == Changelog ==
500
 
 
 
 
 
 
501
  = 4.3.29 (2021-02-10) =
502
  * Added: Open feed file button in edit feed page.
503
 
5
  Requires at least: 3.6
6
  Tested Up To: 5.6.1
7
  Requires PHP: 5.6
8
+ Stable tag: 4.3.30
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
498
 
499
  == Changelog ==
500
 
501
+ = 4.3.30 (2021-02-11) =
502
+ * Added: WooCommerce latest version(5.0.0) compatibility.
503
+ * Tweak: Updated doc links.
504
+ * Tweak: Updated topbar links.
505
+
506
  = 4.3.29 (2021-02-10) =
507
  * Added: Open feed file button in edit feed page.
508
 
includes/class-woo-feed-docs.php CHANGED
@@ -53,7 +53,7 @@ if ( ! class_exists( 'WooFeedDocs' ) ) {
53
  <?php if ( ! empty( $faqs ) ) { ?>
54
  <?php
55
  foreach ( $faqs as $faq ) {
56
- $boxId = ( isset( $faq->id ) ) ? $faq->id : sanitize_title( $faq->title );
57
  if ( ! isset( $faq->icon ) ) $faq->icon = 'dashicons-admin-generic';
58
  ?>
59
  <div id="<?php echo esc_attr( $boxId ); ?>" class="postbox <?php echo esc_attr( postbox_classes( $boxId, $current_screen->id ) ); ?>">
@@ -61,25 +61,34 @@ if ( ! class_exists( 'WooFeedDocs' ) ) {
61
  <span class="screen-reader-text">
62
  <?php
63
  /* translators: %s: FAQ Title */
64
- printf( esc_html__( 'Toggle panel: %s', 'woo-feed' ), esc_html( $faq->title ) )
65
  ?>
66
  </span>
67
  <span class="toggle-indicator" aria-hidden="true"></span>
68
  </button>
69
  <h2 class="hndle">
70
  <span class="<?php printf( '%s%s', ( strpos( $faq->icon, 'dashicons' ) !== false ) ? 'dashicons ' : '', esc_attr( $faq->icon ) ); ?>" aria-hidden="true"></span>
71
- <span><?php echo esc_html( $faq->title ); ?></span>
72
  </h2>
73
  <div class="inside">
74
  <div class="main">
75
  <ul>
76
  <?php
77
- foreach ( $faq->questions as $qa ) {
 
 
78
  if ( ! isset( $qa->icon ) ) $qa->icon = 'dashicons-media-text';
 
 
 
 
 
 
 
79
  ?>
80
  <li>
81
  <span class="<?php printf( '%s%s', ( strpos( $qa->icon, 'dashicons' ) !== false ) ? 'dashicons ' : '', esc_attr( $qa->icon ) ); ?>" aria-hidden="true"></span>
82
- <a href="<?php echo esc_url( $qa->link ); ?>" target="_blank"><?php echo esc_html( $qa->title ); ?></a>
83
  </li>
84
  <?php } ?>
85
  </ul>
@@ -138,7 +147,7 @@ if ( ! class_exists( 'WooFeedDocs' ) ) {
138
  }
139
  if ( false === $help_docs ) {
140
  // bitbucket cache-control: max-age=900 (15 minutes)
141
- $help_url = 'https://api.bitbucket.org/2.0/snippets/woofeed/jLRxxB/files/woo-feed-docs.json';
142
  $response = wp_safe_remote_get( $help_url, array( 'timeout' => 15 ) ); // phpcs:ignore
143
  $help_docs = wp_remote_retrieve_body( $response );
144
  if ( is_wp_error( $response ) || 200 != $response['response']['code'] ) {
53
  <?php if ( ! empty( $faqs ) ) { ?>
54
  <?php
55
  foreach ( $faqs as $faq ) {
56
+ $boxId = ( isset( $faq->id ) ) ? $faq->id : sanitize_title( $faq->title->rendered );
57
  if ( ! isset( $faq->icon ) ) $faq->icon = 'dashicons-admin-generic';
58
  ?>
59
  <div id="<?php echo esc_attr( $boxId ); ?>" class="postbox <?php echo esc_attr( postbox_classes( $boxId, $current_screen->id ) ); ?>">
61
  <span class="screen-reader-text">
62
  <?php
63
  /* translators: %s: FAQ Title */
64
+ printf( esc_html__( 'Toggle panel: %s', 'woo-feed' ), esc_html( $faq->title->rendered ) )
65
  ?>
66
  </span>
67
  <span class="toggle-indicator" aria-hidden="true"></span>
68
  </button>
69
  <h2 class="hndle">
70
  <span class="<?php printf( '%s%s', ( strpos( $faq->icon, 'dashicons' ) !== false ) ? 'dashicons ' : '', esc_attr( $faq->icon ) ); ?>" aria-hidden="true"></span>
71
+ <span><?php echo esc_html( $faq->title->rendered ); ?></span>
72
  </h2>
73
  <div class="inside">
74
  <div class="main">
75
  <ul>
76
  <?php
77
+ $faq_response = wp_remote_get( 'https://webappick.com/wp-json/wp/v2/docs/?per_page=60&parent='.$faq->id.'&_fields=parent,title,link,id,doc_tag' );
78
+ $question_lists = json_decode( wp_remote_retrieve_body( $faq_response ) );
79
+ foreach ( $question_lists as $qa ) {
80
  if ( ! isset( $qa->icon ) ) $qa->icon = 'dashicons-media-text';
81
+ $doc_url = add_query_arg( array(
82
+ 'utm_source' => 'freePlugin',
83
+ 'utm_medium' => 'free_plugin_doc',
84
+ 'utm_campaign' => 'free_to_pro',
85
+ 'utm_term' => 'wooFeed',
86
+ ), $qa->link );
87
+
88
  ?>
89
  <li>
90
  <span class="<?php printf( '%s%s', ( strpos( $qa->icon, 'dashicons' ) !== false ) ? 'dashicons ' : '', esc_attr( $qa->icon ) ); ?>" aria-hidden="true"></span>
91
+ <a href="<?php echo esc_url( $doc_url ); ?>" target="_blank"><?php echo esc_html( $qa->title->rendered ); ?></a>
92
  </li>
93
  <?php } ?>
94
  </ul>
147
  }
148
  if ( false === $help_docs ) {
149
  // bitbucket cache-control: max-age=900 (15 minutes)
150
+ $help_url = 'https://webappick.com/wp-json/wp/v2/docs/?parent=3946&_fields=parent,title,link,id&order=asc';
151
  $response = wp_safe_remote_get( $help_url, array( 'timeout' => 15 ) ); // phpcs:ignore
152
  $help_docs = wp_remote_retrieve_body( $response );
153
  if ( is_wp_error( $response ) || 200 != $response['response']['code'] ) {
includes/classes/class-woo-feed-admin-message.php CHANGED
@@ -93,6 +93,14 @@ final class Woo_Feed_Message {
93
  */
94
  private function display_support_links() {
95
  $hide_promotion = (int) get_option('woo_feed_hide_promotion');
 
 
 
 
 
 
 
 
96
  ?>
97
  <?php if ( 1 !== $hide_promotion && empty($hide_promotion) ) { ?>
98
  <div class="woo-feed-promotion">
@@ -112,9 +120,9 @@ final class Woo_Feed_Message {
112
  <img src="<?php echo esc_url( WOO_FEED_PLUGIN_URL ); ?>admin/images/get-woo-feed-pro.svg" alt="<?php esc_attr_e( 'Get Woo Feed Pro', 'woo-feed' ); ?>">
113
  </a>
114
  <div class="woo-feed-top-buttons">
115
- <a class="woo-feed-doc-link" href="https://webappick.com/docs/woocommerce-product-feed/" target="_blank" ><span class="dashicons dashicons-book"></span> <?php esc_html_e( 'Documentation', 'woo-feed' ); ?></a>
116
  <a class="woo-feed-video-link" href="https://youtube.com/playlist?list=PLapCcXJAoEenI-35wc6YnnsAAgoYRxDr7" target="_blank"><span class="dashicons dashicons-youtube"></span> <?php esc_html_e( 'Video Tutorials', 'woo-feed' ); ?></a>
117
- <a class="woo-feed-support-link" href="https://webappick.com/support/" target="_blank"><span class="dashicons dashicons-sos"></span> <?php esc_html_e( 'Get Support', 'woo-feed' ); ?></a>
118
  </div>
119
  </div>
120
  </th>
93
  */
94
  private function display_support_links() {
95
  $hide_promotion = (int) get_option('woo_feed_hide_promotion');
96
+ $utm_links = array(
97
+ 'utm_source' => 'freePlugin',
98
+ 'utm_medium' => 'free_plugin_doc',
99
+ 'utm_campaign' => 'free_to_pro',
100
+ 'utm_term' => 'wooFeed',
101
+ );
102
+ $doc_link = add_query_arg( $utm_links, 'https://webappick.com/docs/woo-feed/' );
103
+ $support_link = 'https://wordpress.org/support/plugin/webappick-product-feed-for-woocommerce/';
104
  ?>
105
  <?php if ( 1 !== $hide_promotion && empty($hide_promotion) ) { ?>
106
  <div class="woo-feed-promotion">
120
  <img src="<?php echo esc_url( WOO_FEED_PLUGIN_URL ); ?>admin/images/get-woo-feed-pro.svg" alt="<?php esc_attr_e( 'Get Woo Feed Pro', 'woo-feed' ); ?>">
121
  </a>
122
  <div class="woo-feed-top-buttons">
123
+ <a class="woo-feed-doc-link" href="<?php echo esc_url($doc_link); ?>" target="_blank" ><span class="dashicons dashicons-book"></span> <?php esc_html_e( 'Documentation', 'woo-feed' ); ?></a>
124
  <a class="woo-feed-video-link" href="https://youtube.com/playlist?list=PLapCcXJAoEenI-35wc6YnnsAAgoYRxDr7" target="_blank"><span class="dashicons dashicons-youtube"></span> <?php esc_html_e( 'Video Tutorials', 'woo-feed' ); ?></a>
125
+ <a class="woo-feed-support-link" href="<?php echo esc_url($support_link); ?>" target="_blank"><span class="dashicons dashicons-sos"></span> <?php esc_html_e( 'Get Support', 'woo-feed' ); ?></a>
126
  </div>
127
  </div>
128
  </th>
includes/helper.php CHANGED
@@ -2698,7 +2698,7 @@ if ( ! function_exists( 'woo_feed_add_identifier_fields' ) ) {
2698
  function woo_feed_add_identifier_fields() {
2699
  $settings = woo_feed_get_options( 'all' );
2700
 
2701
- if( isset($settings['disable_mpn']) && 'disable' !== $settings['disable_mpn'] ) {
2702
  echo '<div class="options_group">';
2703
  echo sprintf( '<h4 class="%s" style="padding-left: 10px;">%s</h4>', esc_attr( 'woo-feed-option-title' ), esc_html( 'Unique Identifier - Woo Feed', 'woo-feed' ) );
2704
 
@@ -2788,7 +2788,7 @@ if ( ! function_exists( 'woo_feed_add_identifier_fields_for_variation' ) ) {
2788
  function woo_feed_add_identifier_fields_for_variation( $loop, $variation_data, $variation ) {
2789
  $settings = woo_feed_get_options( 'all' );
2790
 
2791
- if( isset($settings['disable_mpn']) && 'disable' !== $settings['disable_mpn'] ) {
2792
  echo '<div class="woo-feed-variation-options">';
2793
  echo sprintf( '<h4 class="%s">%s</h4>', esc_attr( 'woo-feed-variation-option-title' ), esc_html( 'Unique Identifier - Woo Feed', 'woo-feed' ) );
2794
  ?>
2698
  function woo_feed_add_identifier_fields() {
2699
  $settings = woo_feed_get_options( 'all' );
2700
 
2701
+ if ( isset($settings['disable_mpn']) && 'disable' !== $settings['disable_mpn'] ) {
2702
  echo '<div class="options_group">';
2703
  echo sprintf( '<h4 class="%s" style="padding-left: 10px;">%s</h4>', esc_attr( 'woo-feed-option-title' ), esc_html( 'Unique Identifier - Woo Feed', 'woo-feed' ) );
2704
 
2788
  function woo_feed_add_identifier_fields_for_variation( $loop, $variation_data, $variation ) {
2789
  $settings = woo_feed_get_options( 'all' );
2790
 
2791
+ if ( isset($settings['disable_mpn']) && 'disable' !== $settings['disable_mpn'] ) {
2792
  echo '<div class="woo-feed-variation-options">';
2793
  echo sprintf( '<h4 class="%s">%s</h4>', esc_attr( 'woo-feed-variation-option-title' ), esc_html( 'Unique Identifier - Woo Feed', 'woo-feed' ) );
2794
  ?>
woo-feed.php CHANGED
@@ -10,7 +10,7 @@
10
  * Plugin Name: Product Feed for WooCommerce
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.3.29
14
  * Author: WebAppick
15
  * Author URI: https://webappick.com/
16
  * License: GPL v2
@@ -25,7 +25,7 @@
25
  *
26
  * WC Requirement & Test
27
  * WC requires at least: 3.2
28
- * WC tested up to: 4.9
29
  */
30
 
31
  if ( ! defined( 'ABSPATH' ) ) {
@@ -38,7 +38,7 @@ if ( ! defined( 'WOO_FEED_FREE_VERSION' ) ) {
38
  * @var string
39
  * @since 3.1.6
40
  */
41
- define( 'WOO_FEED_FREE_VERSION', '4.3.29' );
42
  }
43
 
44
  if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
10
  * Plugin Name: Product Feed for WooCommerce
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.3.30
14
  * Author: WebAppick
15
  * Author URI: https://webappick.com/
16
  * License: GPL v2
25
  *
26
  * WC Requirement & Test
27
  * WC requires at least: 3.2
28
+ * WC tested up to: 5.0.0
29
  */
30
 
31
  if ( ! defined( 'ABSPATH' ) ) {
38
  * @var string
39
  * @since 3.1.6
40
  */
41
+ define( 'WOO_FEED_FREE_VERSION', '4.3.30' );
42
  }
43
 
44
  if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {