Version Description
(2021-09-24) = * Fixed: UI issue fixed. * Fixed: Google category mapping issue fixed.
Download this release
Release Info
Developer | wahid0003 |
Plugin | CTX Feed – WooCommerce Product Feed Manager Plugin |
Version | 4.4.26 |
Comparing to | |
See all releases |
Code changes from version 4.4.25 to 4.4.26
- README.txt +5 -1
- admin/js/woo-feed-admin.js +23 -0
- admin/js/woo-feed-admin.min.js +1 -1
- admin/js/woo-feed-admin.min.js.map +1 -1
- includes/classes/class-woo-feed-dropdown.php +3 -8
- includes/classes/class-woo-feed-products-v3.php +24 -6
- languages/woo-feed.pot +108 -112
- woo-feed.php +3 -3
README.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: Product Feed, WooCommerce, Google Shopping, Google Merchant, Facebook Cata
|
|
5 |
Requires at least: 4.4
|
6 |
Tested Up To: 5.8
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 4.4.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -516,6 +516,10 @@ Using pro version:
|
|
516 |
|
517 |
== Changelog ==
|
518 |
|
|
|
|
|
|
|
|
|
519 |
= 4.4.25 (2021-09-17) =
|
520 |
* Fixed: CTX Custom Field backward compatability issue fixed.
|
521 |
|
5 |
Requires at least: 4.4
|
6 |
Tested Up To: 5.8
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 4.4.26
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
516 |
|
517 |
== Changelog ==
|
518 |
|
519 |
+
= 4.4.26 (2021-09-24) =
|
520 |
+
* Fixed: UI issue fixed.
|
521 |
+
* Fixed: Google category mapping issue fixed.
|
522 |
+
|
523 |
= 4.4.25 (2021-09-17) =
|
524 |
* Fixed: CTX Custom Field backward compatability issue fixed.
|
525 |
|
admin/js/woo-feed-admin.js
CHANGED
@@ -231,6 +231,7 @@
|
|
231 |
if (!self.form.length) return;
|
232 |
helper.common();
|
233 |
// noinspection JSUnresolvedVariable
|
|
|
234 |
$(document).trigger(new jQuery.Event('feedEditor.init', {
|
235 |
target: this.form
|
236 |
}));
|
@@ -1284,5 +1285,27 @@
|
|
1284 |
|
1285 |
});
|
1286 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1287 |
|
1288 |
})(jQuery, window, document, wp.ajax, wpf_ajax_obj);
|
231 |
if (!self.form.length) return;
|
232 |
helper.common();
|
233 |
// noinspection JSUnresolvedVariable
|
234 |
+
$(document).trigger('feed_editor_init');
|
235 |
$(document).trigger(new jQuery.Event('feedEditor.init', {
|
236 |
target: this.form
|
237 |
}));
|
1285 |
|
1286 |
});
|
1287 |
|
1288 |
+
/*
|
1289 |
+
* Issue fix for feed edit page unsupported `Feed Type` not disabling
|
1290 |
+
*
|
1291 |
+
* @since 4.4.22
|
1292 |
+
* */
|
1293 |
+
$(document).on( "feed_editor_init", function(){
|
1294 |
+
|
1295 |
+
let types = $('.merchant-info-section.feed_file_type .data').html().split(",").map(function(t) {
|
1296 |
+
return t.trim().toLowerCase();
|
1297 |
+
});
|
1298 |
+
|
1299 |
+
let feedType = $("#feedType");
|
1300 |
+
|
1301 |
+
if (types.length) {
|
1302 |
+
feedType.find('option').each(function() {
|
1303 |
+
let opt = $(this);
|
1304 |
+
opt.val() && !helper.in_array(opt.val(), types) ? opt.disabled(!0) : opt.disabled(!1);
|
1305 |
+
});
|
1306 |
+
if (types.length === 1) feedType.find('option[value="' + types[0] + '"]').attr('selected', 'selected');
|
1307 |
+
} else feedType.find('option').disabled(!1);
|
1308 |
+
|
1309 |
+
} );
|
1310 |
|
1311 |
})(jQuery, window, document, wp.ajax, wpf_ajax_obj);
|
admin/js/woo-feed-admin.min.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,t,o){return t&&_defineProperties(e.prototype,t),o&&_defineProperties(e,o),e}!function(s,n,c,l,d){s.fn.disabled=function(o){return s(this).each(function(){var e=s(this),t="disabled";void 0!==e.prop(t)?e.prop(t,void 0===o||!0===o):!0===o?e.addClass(t):e.removeClass(t)}),self},s.fn.isDisabled=function(){var e=s(this),t="disabled";return void 0!==e.prop(t)?e.prop(t):e.hasClass(t)};function e(e){s(e.currentTarget).removeClass(function(e,t){return(t.match(/\btooltipped-\S+/g)||[]).join(" ")}).removeClass("tooltipped").removeAttr("aria-label")}function a(e,t){s(e).addClass("tooltipped tooltipped-s").attr("aria-label",t)}function r(e,t){return s.extend(!0,{},e,t)}function t(){o=s(".toClipboard"),!ClipboardJS.isSupported()||/iPhone|iPad/i.test(navigator.userAgent)?o.find("img").hide(0):(o.each(function(){s(this).on("mouseleave",e).on("blur",e)}),new ClipboardJS(".toClipboard").on("error",function(e){var t,o;a(e.trigger,(t=e.action,o="cut"===t?"X":"C",/iPhone|iPad/i.test(navigator.userAgent)?"No support :(":/Mac/i.test(navigator.userAgent)?"Press ⌘-"+o+" to "+t:"Press Ctrl-"+o+" to "+t))}).on("success",function(e){a(e.trigger,"Copied")}))}var o,i,f=function(){function n(e,t,o){_classCallCheck(this,n),this.productCustomFields(e,t,o)}return _createClass(n,[{key:"cacheClear",value:function(){var e={action:"woo_feed_product_attribute_cache_remove",nonce:wpf_ajax_obj.ajax.nonce};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:e})}},{key:"productCustomFields",value:function(t,e,o){var n=this,a=1<arguments.length&&void 0!==e&&e,r=2<arguments.length?o:void 0,i={action:"woo_feed_custom_fields_status_change",nonce:wpf_ajax_obj.ajax.nonce,field:t,status:a,isTaxonomy:r};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:i,success:function(e){e.success?n.cacheClear():console.log(e),s("#"+t+"-switcher").closest("td").find(".switch-loader").hide()}})}}]),n}(),_={in_array:function(e,t){try{return-1!==t.indexOf(e)}catch(e){return!1}},selectize_render_item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.text),"</div>")},ajax_fail:function(e){console.warn(e),alert(e.hasOwnProperty("statusText")&&e.hasOwnProperty("status")?d.ajax.error+"\n"+e.statusText+" ("+e.status+")":e)},sortable:function(e,o,n,a){return(e||s(".sorted_table")).each(function(){var e=s(this),t=e.find("tbody > tr:eq(0) > td").length||n||9;e.wf_sortable(r({containerSelector:"table",itemPath:"> tbody",itemSelector:"tr",handle:"i.wf_sortedtable",placeholder:'<tr class="placeholder"><td colspan="'.concat(t,'"></td></tr>'),onDrop:function(e,t,o,n){e.removeClass(t.group.options.draggedClass).removeAttr("style"),s("body").removeClass(t.group.options.bodyClass),a&&"function"==typeof a&&a(e,t,o,n)}},o))})},selectize:function(e,t){return(e||s("select.selectize")).not(".selectized").not(".selectize-google-category").each(function(){var e=s(this);e.selectize(r({create:e.data("create")||!1,plugins:e.data("plugins")?e.data("plugins").split(",").map(function(e){return e.trim()}):[],render:{item:_.selectize_render_item}},t))})},fancySelect:function(e,t){return(e||s("select.fancySelect")).not(".FancySelectInit").each(function(){s(this).fancySelect(r({maxItemShow:3},t))})},reindex_config_table:function(){s("#table-1").find("tbody tr").each(function(o,e){s(e).find("[name]").each(function(e,t){s(t).attr("name",s(t).attr("name").replace(/(\[\d\])/g,"[".concat(o,"]")))})})},common:function(){_.sortable(s(".sorted_table"),{},9,_.reindex_config_table),_.selectize(),_.fancySelect(s(".outputType"))}},u={form:null,init:function(){this.form=s(".generateFeed"),this.form.length&&(_.common(),s(c).trigger(new jQuery.Event("feedEditor.init",{target:this.form})))},renderMerchantInfo:function(o,n,a){function e(e){var t;a.hasOwnProperty(e)&&(o.find(".merchant-info-section."+e+" .data").html(a[e]),"feed_file_type"===e&&((t=a[e].split(",").map(function(e){return e.trim().toLowerCase()}).filter(function(e){return""!==e&&e!==d.na.toLowerCase()})).length?(n.find("option").removeAttr("selected").each(function(){var e=s(this);e.val()&&!_.in_array(e.val(),t)?e.disabled(!0):e.disabled(!1)}),1===t.length&&n.find('option[value="'+t[0]+'"]').attr("selected","selected")):n.find("option").disabled(!1)))}for(var t in a)e(t);o.find(".spinner").removeClass("is-active"),n.disabled(!1),n.trigger("change"),s(c).trigger("woo_feed_config_loaded"),n.parent().find(".spinner").removeClass("is-active")},renderMerchantTemplate:function(o,n){function e(t){if(n.hasOwnProperty(t))if("tabs"===t)o.html(n[t]);else{var e=s('[name="'+t+'"]');e.length&&e.each(function(){var e=s(this);e.is("select")?e.find('[value="'+n[t]+'"]').prop("selected",!0):(e.is("[type=checkbox]")||e.is("[type=radio]"))&&e.val()===n[t]?e.prop("checked",!0):e.val(n[t])}).trigger("change")}}for(var t in n)e(t);u.init()}},p=[],h=[],g=function(){function e(){_classCallCheck(this,e),this._feed=d.generator.feed,this._limit=d.generator.limit,this._progress=0,this._timer=null,this._color=!1,this._total_batch=0,this._current_batch=0,this._product_ids=[],this._progress_per_batch=0,this._refresh=!0,this._regenerate=d.generator.regenerate,n.isRegenerating=!1,this._all_btn=s(".wpf_regenerate"),this._current_btn=s("#".concat(this._feed.replace("wf_config","wf_feed_"))),this._current_btn_label=""}return _createClass(e,[{key:"init",value:function(){var o=this;""!==this._feed&&this._regenerate&&!1===n.isRegenerating&&this.generate();var e=n.location.search;return"webappick-manage-feeds"===new URLSearchParams(e).get("page")&&s("body").addClass("woo-import-popup-body"),s(c).on("click",".woo-feed-campaign-close-button",function(e){e.preventDefault(),s(this).parent(".woo-feed-promotion").hide();var t=s(this).data("condition");1===t&&l.post("woo_feed_hide_promotion",{_ajax_nonce:d.nonce,condition:t}).then(function(e){o._log(e)}).fail(function(e){o._log(e),o._updateProgressStatus(e.message),o._color="red"})}),s(c).on("click",".wpf_regenerate",function(e){e.preventDefault(),o._current_btn=s(this),o._current_btn.hasClass("disabled")||!0===n.isRegenerating||(o._feed=o._current_btn.attr("id").replace("wf_feed_","wf_config"),""!==o._feed&&o.generate())}),this}},{key:"_block_button",value:function(){this._all_btn.length&&this._all_btn.addClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").addClass("wpf_spin reverse_spin"),this._current_btn_label=this._current_btn.attr("title"),this._current_btn.attr("aria-label",d.regenerate).attr("title",d.regenerate))}},{key:"_unblock_button",value:function(){this._all_btn.length&&this._all_btn.removeClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").removeClass("wpf_spin"),this._current_btn.find("span").removeClass("reverse_spin"),this._current_btn.attr("aria-label",this._current_btn_label).attr("title",this._current_btn_label))}},{key:"generate",value:function(){var t=this,o=this;n.isRegenerating=!0,this._block_button(),this._resetProgressBar(),this._progressBarActive(),this._log("Counting Total Products"),this._updateProgressStatus("Fetching products."),this._get_product_ids().then(function(e){t._progress=10,o._log({response:e}),e.success?(o._log("Total ".concat(e.total," Products found.")),o._product_ids=e.product,o._total_batch=t._product_ids.length,o._current_batch=0,o._progress_per_batch=(90-t._progress)/t._total_batch,o._process_batch(),o._updateProgressStatus("Processing Products...")):o._updateProgressStatus(e.data.message)}).fail(function(e){o._log(e),o._updateProgressStatus(e.message),o._color="red",setTimeout(function(){o._stopProgressBar(),o._unblock_button()},1500)})}},{key:"_get_product_ids",value:function(){return this._progress=5,l.post("get_product_information",{_ajax_nonce:d.nonce,feed:this._feed,limit:this._limit})}},{key:"_process_batch",value:function(){var t=this,e="Processing Batch ".concat(this._current_batch+1," of ").concat(this._total_batch);this._updateProgressStatus(e),this._log(e),l.post("make_batch_feed",{_ajax_nonce:d.nonce,feed:this._feed,products:this._product_ids[this._current_batch],loop:this._current_batch}).then(function(e){t._current_batch++,t._log("Batch ".concat(t._current_batch," Completed")),t._log(e),t._current_batch<t._total_batch&&(t._process_batch(),t._progress+=t._progress_per_batch),t._current_batch===t._total_batch&&t._save_feed_file()}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_save_feed_file",value:function(){var t=this;this._log("Saving feed file"),this._updateProgressStatus("Saving feed file"),l.post("save_feed_file",{_ajax_nonce:d.nonce,feed:this._feed}).then(function(e){t._log(e),t._progress=100,t._refresh&&(n.location.href="".concat(d.pages.list.feed,"&link=").concat(e.url,"&cat=").concat(e.cat)),setTimeout(function(){t._stopProgressBar(),setTimeout(function(){t._resetProgressBar(!0),t._unblock_button()},3e3)},2500)}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_log",value:function(e){return d.wpf_debug&&console.log(e),this}},{key:"_progressBarActive",value:function(e){var t=0<arguments.length&&void 0!==e?e:0,o=this;return this._toggleProgressBar(!0),this._timer=setInterval(function(){o._updateProgressBar()},t||1e3),this}},{key:"_stopProgressBar",value:function(){return clearInterval(this._timer),this}},{key:"_resetProgressBar",value:function(e){return this._toggleProgressBar(!1),this._updateProgressStatus(""),clearInterval(this._timer),this._color=!1,this._timer=null,this._progress=0,e&&this._updateProgressBar(),this}},{key:"_toggleProgressBar",value:function(e){var t=s("#feed_progress_table");return e?t.show():t.hide(),this}},{key:"_updateProgressStatus",value:function(e){return s(".feed-progress-status").html(e),this}},{key:"_getErrorMessageByCode",value:function(e){s(".feed-progress-status").css({color:this._color}),s(".feed-progress-percentage").css({color:this._color}),s(".wpf_spin").css({color:this._color});var t=e.status+" : "+e.statusText+". ";500===e.status&&(t+="Please increase your PHP max_execution_time. Please <a target='_blank' href='https://webappick.com/docs/woo-feed/faq-for-woocommerce-product-feed/how-to-solve-processing-10-feed-generation-stuck-error/'>read this doc</a>."),this._updateProgressStatus(t)}},{key:"_updateProgressBar",value:function(){var e=s(".feed-progress-percentage"),t=s(".feed-progress-bar-fill"),o="".concat(Math.round(this._progress),"%");t.css({width:o}),e.text(o)}}]),e}();n.wf={helper:_,feedEditor:u,generator:g},s(n).on("load",function(){null!==s(location).attr("href").match(/webappick.*feed/g)&&s("#wpbody-content").addClass("woofeed-body-content");var e=n.location.search;new URLSearchParams(e).get("action");t(),postboxes.add_postbox_toggles(pagenow),(new g).init(),""!==d.generator.feed&&d.generator.regenerate,u.init(),_.common(),s(".wfmasterTooltip").hover(function(){var e=s(this),t=e.attr("wftitle");e.data("tipText",t).removeAttr("wftitle"),s('<p class="wftooltip"></p>').text(t).appendTo("body").fadeIn("slow")},function(){var e=s(this);e.attr("wftitle",e.data("tipText")),s(".wftooltip").remove()}).mousemove(function(e){s(".wftooltip").css({top:e.pageY+10,left:e.pageX+20})}),s(".generateFeed").validate(),s(c).on("blur",'input[name="wfDAttributeName"]',function(e){e.preventDefault();var t=s(this).val();t=(t=t.toLowerCase()).split(" ").join("_"),s("#wfDAttributeCode").val(t)}).on("click","[data-toggle_slide]",function(e){e.preventDefault(),s(s(this).data("toggle_slide")).slideToggle("fast")}).on("click","#wf_newRow",function(){var e=s("#table-1 tbody"),t=s("#feed_config_template").text().trim().replace(/__idx__/g,e.find("tr").length);e.append(t),_.fancySelect(s(".outputType"))}).on("click",".single-feed-delete",function(e){e.preventDefault(),confirm(d.form.del_confirm)&&(n.location.href=s(this).attr("val"))}).on("click",".wf_clean_cache_wrapper",function(e){e.preventDefault();var t=s(".woo-feed-clean-cache-nonce").val(),o=s(".woo-feed-cache-loader");o.show(),l.post("clear_cache_data",{_ajax_clean_nonce:t}).then(function(e){e.success&&(o.hide(),location.reload())}).fail(function(e){console.log("something wrong")})}).on("click","#woo-feed-copy-status-btn",function(e){e.preventDefault();var t=s("#woo-feed-copy-status-btn"),o=s("#woo-feed-status-area");t.val("Copied"),o.css("visibility","visible"),o.select(),c.execCommand("copy")}).on("change",".wf_attr.wf_attributes",function(e){e.preventDefault(),s(".fancy-picker-picked").trigger("click");var t,o,n=s(this).val(),a=s(this).parents("tr").find(".outputType"),r=s(this).parents("tr").find(".fancy-picker-content .fancy-picker-option"),i=s(this).parents("tr").find(".fancy-picker-data span");o=["price","current_price","sale_price","price_with_tax","current_price_with_tax","sale_price_with_tax","shipping_cost"].includes(n)?(t="for_price","Price"):""!==n&&-1!==n.indexOf("wf_taxo")?(t="for_custom_taxo","parent_if_empty"):(t="for_all","Default"),r.removeClass("selected"),"for_custom_taxo"!==t&&"for_price"!==t||r.each(function(e){o===s(this).text()&&(s(this).addClass("selected"),i.text(o),a.find("option").text(o),a.find("option").val(s(this).data("value")))})}).on("click","#doaction, #doaction2",function(){return confirm(d.form.del_confirm_multi)}).on("change",".dType",function(){var e=s(this),t=e.val(),o=e.closest("tr");"pattern"===t?(o.find(".value_attribute").hide(),o.find(".value_pattern").show()):"attribute"===t?(o.find(".value_attribute").show(),o.find(".value_pattern").hide()):"remove"===t&&(o.find(".value_attribute").hide(),o.find(".value_pattern").hide())}).on("click",".delRow",function(e){e.preventDefault(),s(this).closest("tr").remove(),_.reindex_config_table()}).on("submit","#generateFeed",function(){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(d.form.generate,"</b>"))}).on("submit","#updatefeed",function(e,t){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(t&&t.save?d.form.save:d.form.generate,"</b>"))}).on("ready woo_feed_config_loaded",function(){"0"===s("#ftpenabled").val()?(s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").attr("disabled","disabled")):("google"===s("#provider").val()?s(".google-merchant-message").show("slow"):s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").removeAttr("disabled")),s("#ftpenabled").on("change",function(){"0"===s("#ftpenabled").val()?(s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").attr("disabled","disabled")):(s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").removeAttr("disabled"),"google"===s("#provider").val()?s(".google-merchant-message").show("slow"):s(".google-merchant-message").hide("slow"))})}).on("change",".ftporsftp",function(){var e=s(this).val(),t=s(".ssh2_status");"sftp"===e?(t.show().css("color","dodgerblue").text(d.form.sftp_checking),l.post("get_ssh2_status",{_ajax_nonce:d.nonce,server:e}).then(function(e){"exists"===e?(t.css("color","#2CC185").text(d.form.sftp_available),setTimeout(function(){t.hide()},1500)):t.show().css("color","red").text(d.form.sftp_warning)}).fail(function(e){t.hide(),_.ajax_fail(e)})):t.hide()}).on("click",'[name="save_feed_config"]',function(e){e.preventDefault(),s("#updatefeed").trigger("submit",{save:!0})}).on("change","#provider",function(e){e.preventDefault();var t=s(this).val(),o=s(this).find(":selected").text(),n=s("#filename").val(),a=s("#feedType"),r=s("#providerPage"),i=s("#feed_merchant_info");r.html('<h3><span style="float:none;margin: -3px 0 0;" class="spinner is-active"></span> '+d.form.loading_tmpl+"</h3>"),i.find(".spinner").addClass("is-active"),a.disabled(!0),a.parent().find(".spinner").addClass("is-active"),i.find(".merchant-info-section .data").html(""),p.hasOwnProperty(t)?(u.renderMerchantInfo(i,a,p[t]),s(c).trigger("woo_feed_config_loaded")):l.send("woo_feed_get_merchant_info",{type:"GET",data:{nonce:d.nonce,provider:t,templateName:o}}).then(function(e){p[t]=e,u.renderMerchantInfo(i,a,e)}).then(function(){s(c).trigger("woo_feed_config_loaded")}).fail(_.ajax_fail),h.hasOwnProperty(t)?(u.renderMerchantTemplate(r,h[t]),s(c).trigger("woo_feed_config_loaded")):l.post("get_feed_merchant",{_ajax_nonce:d.nonce,merchant:t}).then(function(e){h[t]=e,u.renderMerchantTemplate(r,e),s("#utm_source").val(o),s("#utm_campaign").val(n),"bing"===t&&(s("#delimiter option").removeAttr("selected"),s('#delimiter option[value="tab"]').attr("selected","selected"),s("#enclosure option").removeAttr("selected"),s('#enclosure option[value=" "]').attr("selected","selected")),"google_product_review"!==t&&s('.wf_attributes option[value="reviewer_name"]').hide()}).then(function(){s(c).trigger("woo_feed_config_loaded")}).fail(_.ajax_fail)}).on("change",".woo_feed_status_input",function(){var e=s(this);l.post("update_feed_status",{_ajax_nonce:d.nonce,feedName:e.val(),status:e[0].checked?1:0})}),s(c).on("change",'[name="is_outOfStock"], [name="product_visibility"]',function(){var e=s(".out-of-stock-visibility");"n"===s('[name="is_outOfStock"]:checked').val()&&"1"===s('[name="product_visibility"]:checked').val()?e.show():e.hide()}).on("change",".attr_type",function(){var e=s(this),t=e.val(),o=e.closest("tr");"pattern"===t?(o.find(".wf_attr").hide(),o.find(".wf_attr").val(""),o.find(".wf_default").show()):(o.find(".wf_attr").show(),o.find(".wf_default").hide(),o.find(".wf_default").val(""))}).on("change",".wf_mattributes, .attr_type",function(){var e=s(this).closest("tr"),t=e.find(".wf_mattributes"),o=e.find(".attr_type"),n=e.find("td:eq(4)"),a=s("#provider").val();if(d.form.google_category.hasOwnProperty(t.val())&&"pattern"===o.val()&&_.in_array(a,d.form.google_category[t.val()])){if(0===n.find("select.selectize").length){n.find("input.wf_default").remove(),n.append('<span class="wf_default wf_attributes"><select name="default[]" class="selectize"></select></span>'),n.append('<span style="font-size:x-small;"><a style="color: red" href="https://webappick.com/docs/woo-feed/feed-configuration/how-to-map-store-category-with-merchant-category/" target="_blank">'.concat(d.learn_more,"</a></span>")),i||n.append('<span class="spinner is-active" style="margin: 0;"></span>');var r=n.find(".wf_attributes select");_.selectize(r,{preload:!0,placeholder:d.form.select_category,load:function(e,t){i?t(i):l.send("get_google_categories",{type:"GET",data:{_ajax_nonce:d.nonce,action:"get_google_categories",provider:a}}).then(function(e){t(i=e),n.find(".spinner").remove()}).fail(_.ajax_fail)}})}}else"current_category"!==t.val()&&0===n.find("input.wf_default").length&&(n.find("span").remove(),n.append('<input autocomplete="off" class="wf_default wf_attributes" type="text" name="default[]" value="">'),"pattern"!==o.val()&&n.find("input.wf_default").hide())}).on("change","#feedType,#provider",function(e){var t=s("#feedType").val(),o=s("#provider").val(),n=s(".itemWrapper"),a=s(".wf_csvtxt");""!==t&&_.in_array(o,d.form.item_wrapper_hidden)&&n.hide(),"feedType"===e.target.id&&("csv"===t||"txt"===t||"tsv"===t?(n.hide(),a.show(),"tsv"===t?s("#delimiter option:last").prop("selected","selected"):"csv"===t&&s("#delimiter option:first").prop("selected","selected")):"xml"===t?(n.show(),a.hide()):"json"===t&&(n.hide(),a.hide()))}).trigger("change"),s(c).on("click",'.woofeed-custom-fields [id*="-switcher"]',function(){s(this).closest("td").find(".switch-loader").show();var e=s(this).attr("id").split("-")[0],t=s(this).data("taxonomy"),o=s(this).prop("checked");new f(e,o,t)}).ready(function(){var e=s(".wapk-feed-buy-now-container");e.position();s(n).scroll(function(){s(n).scrollTop()<=5e3?e.addClass("fixed"):e.removeClass("fixed")})})}),s(c).on("click","#woo-feed-debug-log-download",function(e){e.preventDefault(),s("<a />",{download:new Date+".log",href:URL.createObjectURL(new Blob([s("#woo-feed-debug-log").val()],{type:"text/plain"}))}).appendTo("body")[0].click()}).on("keyup","#filename",function(e){var t=s("#filename").val();s("#utm_campaign").val(t)}).on("change","#category-mapping-form #providers",function(e){var t=s(this).find(":selected").val();-1!==["google","facebook","pinterest","bing","bing_local_inventory","snapchat"].indexOf(t)?(s('input[id*="cat_mapping_"]').css("display","none"),s(".wf_default.wf_attributes").css("display","block").css("width","100%")):(s('input[id*="cat_mapping_"]').css("display","block"),s(".wf_default.wf_attributes").css("display","none").css("width","100%"))}).on("click",'span[id*="cat-map-"]',function(e){e.preventDefault();var t=s("#category-mapping-form #providers").val(),o=s(this).attr("id").replace(/[^\d.]/g,""),n="group-child-"+o;if(-1!==["google","facebook","pinterest","bing","bing_local_inventory","snapchat"].indexOf(t)){var a=s(this).parents("tr").find(".selectized").val();a&&s("."+n).parents("tr").find("select").each(function(e,t){s(t).data("selectize").setValue(a)})}else{var r=s("#cat_mapping_"+o).val();s("."+n).parents("tr").find("input").val(r)}}),s(c).ready(function(){l.send("get_google_categories",{type:"GET",data:{_ajax_nonce:d.nonce,action:"get_google_categories"}}).then(function(e){s(".selectize-google-category").selectize({valueField:"value",labelField:"text",placeholder:"Select a category",searchField:["value","text"],options:e,render:{option:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.value+" - "+e.text),"</div>")},item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.value+" - "+e.text),"</div>")}}})}).fail(_.ajax_fail)})}(jQuery,window,document,wp.ajax,wpf_ajax_obj);
|
2 |
//# sourceMappingURL=woo-feed-admin.min.js.map
|
1 |
+
"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _createClass(e,t,o){return t&&_defineProperties(e.prototype,t),o&&_defineProperties(e,o),e}!function(s,n,c,l,d){s.fn.disabled=function(o){return s(this).each(function(){var e=s(this),t="disabled";void 0!==e.prop(t)?e.prop(t,void 0===o||!0===o):!0===o?e.addClass(t):e.removeClass(t)}),self},s.fn.isDisabled=function(){var e=s(this),t="disabled";return void 0!==e.prop(t)?e.prop(t):e.hasClass(t)};function e(e){s(e.currentTarget).removeClass(function(e,t){return(t.match(/\btooltipped-\S+/g)||[]).join(" ")}).removeClass("tooltipped").removeAttr("aria-label")}function a(e,t){s(e).addClass("tooltipped tooltipped-s").attr("aria-label",t)}function i(e,t){return s.extend(!0,{},e,t)}function t(){o=s(".toClipboard"),!ClipboardJS.isSupported()||/iPhone|iPad/i.test(navigator.userAgent)?o.find("img").hide(0):(o.each(function(){s(this).on("mouseleave",e).on("blur",e)}),new ClipboardJS(".toClipboard").on("error",function(e){var t,o;a(e.trigger,(t=e.action,o="cut"===t?"X":"C",/iPhone|iPad/i.test(navigator.userAgent)?"No support :(":/Mac/i.test(navigator.userAgent)?"Press ⌘-"+o+" to "+t:"Press Ctrl-"+o+" to "+t))}).on("success",function(e){a(e.trigger,"Copied")}))}var o,r,f=function(){function n(e,t,o){_classCallCheck(this,n),this.productCustomFields(e,t,o)}return _createClass(n,[{key:"cacheClear",value:function(){var e={action:"woo_feed_product_attribute_cache_remove",nonce:wpf_ajax_obj.ajax.nonce};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:e})}},{key:"productCustomFields",value:function(t,e,o){var n=this,a=1<arguments.length&&void 0!==e&&e,i=2<arguments.length?o:void 0,r={action:"woo_feed_custom_fields_status_change",nonce:wpf_ajax_obj.ajax.nonce,field:t,status:a,isTaxonomy:i};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:r,success:function(e){e.success?n.cacheClear():console.log(e),s("#"+t+"-switcher").closest("td").find(".switch-loader").hide()}})}}]),n}(),_={in_array:function(e,t){try{return-1!==t.indexOf(e)}catch(e){return!1}},selectize_render_item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.text),"</div>")},ajax_fail:function(e){console.warn(e),alert(e.hasOwnProperty("statusText")&&e.hasOwnProperty("status")?d.ajax.error+"\n"+e.statusText+" ("+e.status+")":e)},sortable:function(e,o,n,a){return(e||s(".sorted_table")).each(function(){var e=s(this),t=e.find("tbody > tr:eq(0) > td").length||n||9;e.wf_sortable(i({containerSelector:"table",itemPath:"> tbody",itemSelector:"tr",handle:"i.wf_sortedtable",placeholder:'<tr class="placeholder"><td colspan="'.concat(t,'"></td></tr>'),onDrop:function(e,t,o,n){e.removeClass(t.group.options.draggedClass).removeAttr("style"),s("body").removeClass(t.group.options.bodyClass),a&&"function"==typeof a&&a(e,t,o,n)}},o))})},selectize:function(e,t){return(e||s("select.selectize")).not(".selectized").not(".selectize-google-category").each(function(){var e=s(this);e.selectize(i({create:e.data("create")||!1,plugins:e.data("plugins")?e.data("plugins").split(",").map(function(e){return e.trim()}):[],render:{item:_.selectize_render_item}},t))})},fancySelect:function(e,t){return(e||s("select.fancySelect")).not(".FancySelectInit").each(function(){s(this).fancySelect(i({maxItemShow:3},t))})},reindex_config_table:function(){s("#table-1").find("tbody tr").each(function(o,e){s(e).find("[name]").each(function(e,t){s(t).attr("name",s(t).attr("name").replace(/(\[\d\])/g,"[".concat(o,"]")))})})},common:function(){_.sortable(s(".sorted_table"),{},9,_.reindex_config_table),_.selectize(),_.fancySelect(s(".outputType"))}},u={form:null,init:function(){this.form=s(".generateFeed"),this.form.length&&(_.common(),s(c).trigger("feed_editor_init"),s(c).trigger(new jQuery.Event("feedEditor.init",{target:this.form})))},renderMerchantInfo:function(o,n,a){function e(e){var t;a.hasOwnProperty(e)&&(o.find(".merchant-info-section."+e+" .data").html(a[e]),"feed_file_type"===e&&((t=a[e].split(",").map(function(e){return e.trim().toLowerCase()}).filter(function(e){return""!==e&&e!==d.na.toLowerCase()})).length?(n.find("option").removeAttr("selected").each(function(){var e=s(this);e.val()&&!_.in_array(e.val(),t)?e.disabled(!0):e.disabled(!1)}),1===t.length&&n.find('option[value="'+t[0]+'"]').attr("selected","selected")):n.find("option").disabled(!1)))}for(var t in a)e(t);o.find(".spinner").removeClass("is-active"),n.disabled(!1),n.trigger("change"),s(c).trigger("woo_feed_config_loaded"),n.parent().find(".spinner").removeClass("is-active")},renderMerchantTemplate:function(o,n){function e(t){if(n.hasOwnProperty(t))if("tabs"===t)o.html(n[t]);else{var e=s('[name="'+t+'"]');e.length&&e.each(function(){var e=s(this);e.is("select")?e.find('[value="'+n[t]+'"]').prop("selected",!0):(e.is("[type=checkbox]")||e.is("[type=radio]"))&&e.val()===n[t]?e.prop("checked",!0):e.val(n[t])}).trigger("change")}}for(var t in n)e(t);u.init()}},p=[],h=[],g=function(){function e(){_classCallCheck(this,e),this._feed=d.generator.feed,this._limit=d.generator.limit,this._progress=0,this._timer=null,this._color=!1,this._total_batch=0,this._current_batch=0,this._product_ids=[],this._progress_per_batch=0,this._refresh=!0,this._regenerate=d.generator.regenerate,n.isRegenerating=!1,this._all_btn=s(".wpf_regenerate"),this._current_btn=s("#".concat(this._feed.replace("wf_config","wf_feed_"))),this._current_btn_label=""}return _createClass(e,[{key:"init",value:function(){var o=this;""!==this._feed&&this._regenerate&&!1===n.isRegenerating&&this.generate();var e=n.location.search;return"webappick-manage-feeds"===new URLSearchParams(e).get("page")&&s("body").addClass("woo-import-popup-body"),s(c).on("click",".woo-feed-campaign-close-button",function(e){e.preventDefault(),s(this).parent(".woo-feed-promotion").hide();var t=s(this).data("condition");1===t&&l.post("woo_feed_hide_promotion",{_ajax_nonce:d.nonce,condition:t}).then(function(e){o._log(e)}).fail(function(e){o._log(e),o._updateProgressStatus(e.message),o._color="red"})}),s(c).on("click",".wpf_regenerate",function(e){e.preventDefault(),o._current_btn=s(this),o._current_btn.hasClass("disabled")||!0===n.isRegenerating||(o._feed=o._current_btn.attr("id").replace("wf_feed_","wf_config"),""!==o._feed&&o.generate())}),this}},{key:"_block_button",value:function(){this._all_btn.length&&this._all_btn.addClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").addClass("wpf_spin reverse_spin"),this._current_btn_label=this._current_btn.attr("title"),this._current_btn.attr("aria-label",d.regenerate).attr("title",d.regenerate))}},{key:"_unblock_button",value:function(){this._all_btn.length&&this._all_btn.removeClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").removeClass("wpf_spin"),this._current_btn.find("span").removeClass("reverse_spin"),this._current_btn.attr("aria-label",this._current_btn_label).attr("title",this._current_btn_label))}},{key:"generate",value:function(){var t=this,o=this;n.isRegenerating=!0,this._block_button(),this._resetProgressBar(),this._progressBarActive(),this._log("Counting Total Products"),this._updateProgressStatus("Fetching products."),this._get_product_ids().then(function(e){t._progress=10,o._log({response:e}),e.success?(o._log("Total ".concat(e.total," Products found.")),o._product_ids=e.product,o._total_batch=t._product_ids.length,o._current_batch=0,o._progress_per_batch=(90-t._progress)/t._total_batch,o._process_batch(),o._updateProgressStatus("Processing Products...")):o._updateProgressStatus(e.data.message)}).fail(function(e){o._log(e),o._updateProgressStatus(e.message),o._color="red",setTimeout(function(){o._stopProgressBar(),o._unblock_button()},1500)})}},{key:"_get_product_ids",value:function(){return this._progress=5,l.post("get_product_information",{_ajax_nonce:d.nonce,feed:this._feed,limit:this._limit})}},{key:"_process_batch",value:function(){var t=this,e="Processing Batch ".concat(this._current_batch+1," of ").concat(this._total_batch);this._updateProgressStatus(e),this._log(e),l.post("make_batch_feed",{_ajax_nonce:d.nonce,feed:this._feed,products:this._product_ids[this._current_batch],loop:this._current_batch}).then(function(e){t._current_batch++,t._log("Batch ".concat(t._current_batch," Completed")),t._log(e),t._current_batch<t._total_batch&&(t._process_batch(),t._progress+=t._progress_per_batch),t._current_batch===t._total_batch&&t._save_feed_file()}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_save_feed_file",value:function(){var t=this;this._log("Saving feed file"),this._updateProgressStatus("Saving feed file"),l.post("save_feed_file",{_ajax_nonce:d.nonce,feed:this._feed}).then(function(e){t._log(e),t._progress=100,t._refresh&&(n.location.href="".concat(d.pages.list.feed,"&link=").concat(e.url,"&cat=").concat(e.cat)),setTimeout(function(){t._stopProgressBar(),setTimeout(function(){t._resetProgressBar(!0),t._unblock_button()},3e3)},2500)}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_log",value:function(e){return d.wpf_debug&&console.log(e),this}},{key:"_progressBarActive",value:function(e){var t=0<arguments.length&&void 0!==e?e:0,o=this;return this._toggleProgressBar(!0),this._timer=setInterval(function(){o._updateProgressBar()},t||1e3),this}},{key:"_stopProgressBar",value:function(){return clearInterval(this._timer),this}},{key:"_resetProgressBar",value:function(e){return this._toggleProgressBar(!1),this._updateProgressStatus(""),clearInterval(this._timer),this._color=!1,this._timer=null,this._progress=0,e&&this._updateProgressBar(),this}},{key:"_toggleProgressBar",value:function(e){var t=s("#feed_progress_table");return e?t.show():t.hide(),this}},{key:"_updateProgressStatus",value:function(e){return s(".feed-progress-status").html(e),this}},{key:"_getErrorMessageByCode",value:function(e){s(".feed-progress-status").css({color:this._color}),s(".feed-progress-percentage").css({color:this._color}),s(".wpf_spin").css({color:this._color});var t=e.status+" : "+e.statusText+". ";500===e.status&&(t+="Please increase your PHP max_execution_time. Please <a target='_blank' href='https://webappick.com/docs/woo-feed/faq-for-woocommerce-product-feed/how-to-solve-processing-10-feed-generation-stuck-error/'>read this doc</a>."),this._updateProgressStatus(t)}},{key:"_updateProgressBar",value:function(){var e=s(".feed-progress-percentage"),t=s(".feed-progress-bar-fill"),o="".concat(Math.round(this._progress),"%");t.css({width:o}),e.text(o)}}]),e}();n.wf={helper:_,feedEditor:u,generator:g},s(n).on("load",function(){null!==s(location).attr("href").match(/webappick.*feed/g)&&s("#wpbody-content").addClass("woofeed-body-content");var e=n.location.search;new URLSearchParams(e).get("action");t(),postboxes.add_postbox_toggles(pagenow),(new g).init(),""!==d.generator.feed&&d.generator.regenerate,u.init(),_.common(),s(".wfmasterTooltip").hover(function(){var e=s(this),t=e.attr("wftitle");e.data("tipText",t).removeAttr("wftitle"),s('<p class="wftooltip"></p>').text(t).appendTo("body").fadeIn("slow")},function(){var e=s(this);e.attr("wftitle",e.data("tipText")),s(".wftooltip").remove()}).mousemove(function(e){s(".wftooltip").css({top:e.pageY+10,left:e.pageX+20})}),s(".generateFeed").validate(),s(c).on("blur",'input[name="wfDAttributeName"]',function(e){e.preventDefault();var t=s(this).val();t=(t=t.toLowerCase()).split(" ").join("_"),s("#wfDAttributeCode").val(t)}).on("click","[data-toggle_slide]",function(e){e.preventDefault(),s(s(this).data("toggle_slide")).slideToggle("fast")}).on("click","#wf_newRow",function(){var e=s("#table-1 tbody"),t=s("#feed_config_template").text().trim().replace(/__idx__/g,e.find("tr").length);e.append(t),_.fancySelect(s(".outputType"))}).on("click",".single-feed-delete",function(e){e.preventDefault(),confirm(d.form.del_confirm)&&(n.location.href=s(this).attr("val"))}).on("click",".wf_clean_cache_wrapper",function(e){e.preventDefault();var t=s(".woo-feed-clean-cache-nonce").val(),o=s(".woo-feed-cache-loader");o.show(),l.post("clear_cache_data",{_ajax_clean_nonce:t}).then(function(e){e.success&&(o.hide(),location.reload())}).fail(function(e){console.log("something wrong")})}).on("click","#woo-feed-copy-status-btn",function(e){e.preventDefault();var t=s("#woo-feed-copy-status-btn"),o=s("#woo-feed-status-area");t.val("Copied"),o.css("visibility","visible"),o.select(),c.execCommand("copy")}).on("change",".wf_attr.wf_attributes",function(e){e.preventDefault(),s(".fancy-picker-picked").trigger("click");var t,o,n=s(this).val(),a=s(this).parents("tr").find(".outputType"),i=s(this).parents("tr").find(".fancy-picker-content .fancy-picker-option"),r=s(this).parents("tr").find(".fancy-picker-data span");o=["price","current_price","sale_price","price_with_tax","current_price_with_tax","sale_price_with_tax","shipping_cost"].includes(n)?(t="for_price","Price"):""!==n&&-1!==n.indexOf("wf_taxo")?(t="for_custom_taxo","parent_if_empty"):(t="for_all","Default"),i.removeClass("selected"),"for_custom_taxo"!==t&&"for_price"!==t||i.each(function(e){o===s(this).text()&&(s(this).addClass("selected"),r.text(o),a.find("option").text(o),a.find("option").val(s(this).data("value")))})}).on("click","#doaction, #doaction2",function(){return confirm(d.form.del_confirm_multi)}).on("change",".dType",function(){var e=s(this),t=e.val(),o=e.closest("tr");"pattern"===t?(o.find(".value_attribute").hide(),o.find(".value_pattern").show()):"attribute"===t?(o.find(".value_attribute").show(),o.find(".value_pattern").hide()):"remove"===t&&(o.find(".value_attribute").hide(),o.find(".value_pattern").hide())}).on("click",".delRow",function(e){e.preventDefault(),s(this).closest("tr").remove(),_.reindex_config_table()}).on("submit","#generateFeed",function(){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(d.form.generate,"</b>"))}).on("submit","#updatefeed",function(e,t){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(t&&t.save?d.form.save:d.form.generate,"</b>"))}).on("ready woo_feed_config_loaded",function(){"0"===s("#ftpenabled").val()?(s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").attr("disabled","disabled")):("google"===s("#provider").val()?s(".google-merchant-message").show("slow"):s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").removeAttr("disabled")),s("#ftpenabled").on("change",function(){"0"===s("#ftpenabled").val()?(s(".google-merchant-message").hide("slow"),s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").attr("disabled","disabled")):(s(".woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select").removeAttr("disabled"),"google"===s("#provider").val()?s(".google-merchant-message").show("slow"):s(".google-merchant-message").hide("slow"))})}).on("change",".ftporsftp",function(){var e=s(this).val(),t=s(".ssh2_status");"sftp"===e?(t.show().css("color","dodgerblue").text(d.form.sftp_checking),l.post("get_ssh2_status",{_ajax_nonce:d.nonce,server:e}).then(function(e){"exists"===e?(t.css("color","#2CC185").text(d.form.sftp_available),setTimeout(function(){t.hide()},1500)):t.show().css("color","red").text(d.form.sftp_warning)}).fail(function(e){t.hide(),_.ajax_fail(e)})):t.hide()}).on("click",'[name="save_feed_config"]',function(e){e.preventDefault(),s("#updatefeed").trigger("submit",{save:!0})}).on("change","#provider",function(e){e.preventDefault();var t=s(this).val(),o=s(this).find(":selected").text(),n=s("#filename").val(),a=s("#feedType"),i=s("#providerPage"),r=s("#feed_merchant_info");i.html('<h3><span style="float:none;margin: -3px 0 0;" class="spinner is-active"></span> '+d.form.loading_tmpl+"</h3>"),r.find(".spinner").addClass("is-active"),a.disabled(!0),a.parent().find(".spinner").addClass("is-active"),r.find(".merchant-info-section .data").html(""),p.hasOwnProperty(t)?(u.renderMerchantInfo(r,a,p[t]),s(c).trigger("woo_feed_config_loaded")):l.send("woo_feed_get_merchant_info",{type:"GET",data:{nonce:d.nonce,provider:t,templateName:o}}).then(function(e){p[t]=e,u.renderMerchantInfo(r,a,e)}).then(function(){s(c).trigger("woo_feed_config_loaded")}).fail(_.ajax_fail),h.hasOwnProperty(t)?(u.renderMerchantTemplate(i,h[t]),s(c).trigger("woo_feed_config_loaded")):l.post("get_feed_merchant",{_ajax_nonce:d.nonce,merchant:t}).then(function(e){h[t]=e,u.renderMerchantTemplate(i,e),s("#utm_source").val(o),s("#utm_campaign").val(n),"bing"===t&&(s("#delimiter option").removeAttr("selected"),s('#delimiter option[value="tab"]').attr("selected","selected"),s("#enclosure option").removeAttr("selected"),s('#enclosure option[value=" "]').attr("selected","selected")),"google_product_review"!==t&&s('.wf_attributes option[value="reviewer_name"]').hide()}).then(function(){s(c).trigger("woo_feed_config_loaded")}).fail(_.ajax_fail)}).on("change",".woo_feed_status_input",function(){var e=s(this);l.post("update_feed_status",{_ajax_nonce:d.nonce,feedName:e.val(),status:e[0].checked?1:0})}),s(c).on("change",'[name="is_outOfStock"], [name="product_visibility"]',function(){var e=s(".out-of-stock-visibility");"n"===s('[name="is_outOfStock"]:checked').val()&&"1"===s('[name="product_visibility"]:checked').val()?e.show():e.hide()}).on("change",".attr_type",function(){var e=s(this),t=e.val(),o=e.closest("tr");"pattern"===t?(o.find(".wf_attr").hide(),o.find(".wf_attr").val(""),o.find(".wf_default").show()):(o.find(".wf_attr").show(),o.find(".wf_default").hide(),o.find(".wf_default").val(""))}).on("change",".wf_mattributes, .attr_type",function(){var e=s(this).closest("tr"),t=e.find(".wf_mattributes"),o=e.find(".attr_type"),n=e.find("td:eq(4)"),a=s("#provider").val();if(d.form.google_category.hasOwnProperty(t.val())&&"pattern"===o.val()&&_.in_array(a,d.form.google_category[t.val()])){if(0===n.find("select.selectize").length){n.find("input.wf_default").remove(),n.append('<span class="wf_default wf_attributes"><select name="default[]" class="selectize"></select></span>'),n.append('<span style="font-size:x-small;"><a style="color: red" href="https://webappick.com/docs/woo-feed/feed-configuration/how-to-map-store-category-with-merchant-category/" target="_blank">'.concat(d.learn_more,"</a></span>")),r||n.append('<span class="spinner is-active" style="margin: 0;"></span>');var i=n.find(".wf_attributes select");_.selectize(i,{preload:!0,placeholder:d.form.select_category,load:function(e,t){r?t(r):l.send("get_google_categories",{type:"GET",data:{_ajax_nonce:d.nonce,action:"get_google_categories",provider:a}}).then(function(e){t(r=e),n.find(".spinner").remove()}).fail(_.ajax_fail)}})}}else"current_category"!==t.val()&&0===n.find("input.wf_default").length&&(n.find("span").remove(),n.append('<input autocomplete="off" class="wf_default wf_attributes" type="text" name="default[]" value="">'),"pattern"!==o.val()&&n.find("input.wf_default").hide())}).on("change","#feedType,#provider",function(e){var t=s("#feedType").val(),o=s("#provider").val(),n=s(".itemWrapper"),a=s(".wf_csvtxt");""!==t&&_.in_array(o,d.form.item_wrapper_hidden)&&n.hide(),"feedType"===e.target.id&&("csv"===t||"txt"===t||"tsv"===t?(n.hide(),a.show(),"tsv"===t?s("#delimiter option:last").prop("selected","selected"):"csv"===t&&s("#delimiter option:first").prop("selected","selected")):"xml"===t?(n.show(),a.hide()):"json"===t&&(n.hide(),a.hide()))}).trigger("change"),s(c).on("click",'.woofeed-custom-fields [id*="-switcher"]',function(){s(this).closest("td").find(".switch-loader").show();var e=s(this).attr("id").split("-")[0],t=s(this).data("taxonomy"),o=s(this).prop("checked");new f(e,o,t)}).ready(function(){var e=s(".wapk-feed-buy-now-container");e.position();s(n).scroll(function(){s(n).scrollTop()<=5e3?e.addClass("fixed"):e.removeClass("fixed")})})}),s(c).on("click","#woo-feed-debug-log-download",function(e){e.preventDefault(),s("<a />",{download:new Date+".log",href:URL.createObjectURL(new Blob([s("#woo-feed-debug-log").val()],{type:"text/plain"}))}).appendTo("body")[0].click()}).on("keyup","#filename",function(e){var t=s("#filename").val();s("#utm_campaign").val(t)}).on("change","#category-mapping-form #providers",function(e){var t=s(this).find(":selected").val();-1!==["google","facebook","pinterest","bing","bing_local_inventory","snapchat"].indexOf(t)?(s('input[id*="cat_mapping_"]').css("display","none"),s(".wf_default.wf_attributes").css("display","block").css("width","100%")):(s('input[id*="cat_mapping_"]').css("display","block"),s(".wf_default.wf_attributes").css("display","none").css("width","100%"))}).on("click",'span[id*="cat-map-"]',function(e){e.preventDefault();var t=s("#category-mapping-form #providers").val(),o=s(this).attr("id").replace(/[^\d.]/g,""),n="group-child-"+o;if(-1!==["google","facebook","pinterest","bing","bing_local_inventory","snapchat"].indexOf(t)){var a=s(this).parents("tr").find(".selectized").val();a&&s("."+n).parents("tr").find("select").each(function(e,t){s(t).data("selectize").setValue(a)})}else{var i=s("#cat_mapping_"+o).val();s("."+n).parents("tr").find("input").val(i)}}),s(c).ready(function(){l.send("get_google_categories",{type:"GET",data:{_ajax_nonce:d.nonce,action:"get_google_categories"}}).then(function(e){s(".selectize-google-category").selectize({valueField:"value",labelField:"text",placeholder:"Select a category",searchField:["value","text"],options:e,render:{option:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.value+" - "+e.text),"</div>")},item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.value+" - "+e.text),"</div>")}}})}).fail(_.ajax_fail)}),s(c).on("feed_editor_init",function(){var t=s(".merchant-info-section.feed_file_type .data").html().split(",").map(function(e){return e.trim().toLowerCase()}),e=s("#feedType");t.length?(e.find("option").each(function(){var e=s(this);e.val()&&!_.in_array(e.val(),t)?e.disabled(!0):e.disabled(!1)}),1===t.length&&e.find('option[value="'+t[0]+'"]').attr("selected","selected")):e.find("option").disabled(!1)})}(jQuery,window,document,wp.ajax,wpf_ajax_obj);
|
2 |
//# sourceMappingURL=woo-feed-admin.min.js.map
|
admin/js/woo-feed-admin.min.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["woo-feed-admin.js"],"names":["_defineProperties","target","props","descriptor","i","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","window","wpAjax","$","document","opts","self","prop","status","addClass","removeClass","hasClass","currentTarget","clearTooltip","userAgent","actionMsg","match","actionKey","index","join","removeAttr","elem","attr","msg","extend","_default","_args","clip","$copyBtn","ClipboardJS","isSupported","test","navigator","feedGenerator","this","on","action","showTooltip","event","trigger","wpf_ajax_obj","success","url","data","_classCallCheck","WooFeedCustomFields","productCustomFields","field","isTaxonomy","value","ajax","nonce","method","response","wpf_ajax_url","clipboard","googleCategories","log","closest","find","hide","in_array","needle","haystack","indexOf","console","selectize_render_item","escape","sortable","onDrop","text","ajax_fail","column_count","warn","wf_sortable","containerSelector","e","hasOwnProperty","error","statusText","el","config","column","_onDrop","each","length","selectize","itemPath","itemSelector","concat","plugins","$item","container","group","options","draggedClass","bodyClass","render","item","helper","not","fancySelect","maxItemShow","create","split","map","s","handle","placeholder","form","replace","x","reindex_config_table","init","renderMerchantInfo","merchantInfo","jQuery","k","opt","feedType","r","types","html","t","trim","toLowerCase","na","disabled","val","_loop2","renderMerchantTemplate","_loop","filter","contentSettings","feedForm","feedEditor","merchantInfoCache","tooltip","css","top","_regenerate","isRegenerating","feed","_progress","_product_ids","_progress_per_batch","_refresh","_feed","_all_btn","generate","_current_btn","condition","_current_batch","then","URLSearchParams","preventDefault","parent","_current_btn_label","_ajax_nonce","_log","_updateProgressStatus","message","_color","regenerate","setTimeout","_this2","_stopProgressBar","_process_batch","fail","limit","_limit","_block_button","_progressBarActive","_save_feed_file","loop","_get_product_ids","_total_batch","_unblock_button","_resetProgressBar","refreshInterval","post","arguments","undefined","clearInterval","_timer","setInterval","_updateProgressBar","update","_toggleProgressBar","table","show","color","width","generator","current_page_url_query","wf","postboxes","location","pagenow","attr_name","hover","title","appendTo","remove","left","pageX","confirm","href","slideToggle","loader","reload","button","status_area","select","execCommand","progress_message","current_attribute_value","fancyOption","selectIf","selectKey","outputSelect","parents","includes","page_action","add_postbox_toggles","row","del_confirm_multi","type","template","append","validate","valid","save","price_attributes","server","sftp_checking","fancyDataPicker","merchant","sftp_warning","name","templateName","loading_tmpl","provider","send","merchantTemplateCache","outOfStockVisibilityRow","feedName","checked","valueColumn","attribute","load","google_category","query","learn_more","preload","cb","wf_csv_txt","itemWrapper","item_wrapper_hidden","id","windowpos","scroll","Date","click","catField","setValue","catId","scrollTop","option"],"mappings":"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","file":"woo-feed-admin.min.js","sourcesContent":["// noinspection JSUnresolvedletiable\n/**!\n * WooFeed Scripts\n * @version 3.3.6\n * @package WooFeed\n * @copyright 2020 WebAppick\n *\n */\n/* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */\n// noinspection JSUnresolvedVariable\n(function($, window, document, wpAjax, opts) {\n \"use strict\";\n /**\n * All of the code for your admin-facing JavaScript source\n * should reside in this file.\n *\n * Note: It has been assumed you will write jQuery code here, so the\n * $ function reference has been prepared for usage within the scope\n * of this function.\n *\n * This enables you to define handlers, for when the DOM is ready:\n */\n\n /**\n * disable element utility\n *\n * @since 3.1.9\n *\n * @param {*} status\n * @returns {jQuery|HTMLElement}\n */\n $.fn.disabled = function(status) {\n $(this).each(function() {\n let self = $(this),\n prop = 'disabled';\n\n if (typeof self.prop(prop) !== 'undefined') {\n self.prop(prop, status === void 0 || status === true);\n } else {\n !0 === status ? self.addClass(prop) : self.removeClass(prop);\n }\n });\n return self; // method chaining\n };\n\n /**\n * Check if a HTMLElement or jQuery is disabled\n */\n $.fn.isDisabled = function() {\n let self = $(this),\n prop = 'disabled';\n return typeof self.prop(prop) !== 'undefined' ? self.prop(prop) : self.hasClass(prop);\n };\n\n /**\n * Clear Tooltip for clip board js\n * @param {Object} event\n */\n const clearTooltip = (event) => {\n $(event.currentTarget).removeClass( (index, className) => (className.match(/\\btooltipped-\\S+/g) || []).join(' ') ).removeClass('tooltipped').removeAttr('aria-label');\n };\n\n const showTooltip = (elem, msg) => {\n $(elem).addClass('tooltipped tooltipped-s').attr('aria-label', msg);\n };\n\n const fallbackMessage = (action) =>{\n let actionMsg,\n actionKey = action === 'cut' ? 'X' : 'C';\n\n if (/iPhone|iPad/i.test(navigator.userAgent)) {\n actionMsg = 'No support :(';\n } else if (/Mac/i.test(navigator.userAgent)) {\n actionMsg = 'Press ⌘-' + actionKey + ' to ' + action;\n } else {\n actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;\n }\n\n return actionMsg;\n };\n\n /**\n * Alias of jQuery.extend()\n * @param {Object} _default\n * @param {Object} _args\n */\n const extend = (_default, _args) => $.extend(true, {}, _default, _args);\n\n\t/*\n\t* Handles product attributes\n\t*\n\t* @since 4.4.18\n\t* */\n\tclass WooFeedCustomFields {\n\n\t\tconstructor( field, status, isTaxonomy ) {\n\t\t\tthis.productCustomFields( field, status, isTaxonomy );\n\t\t}\n\n\t\tcacheClear() {\n\t\t\tlet data = {\n\t\t\t\taction: 'woo_feed_product_attribute_cache_remove',\n\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\n\t\t\t};\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\n\t\t\t\tdata\n\t\t\t});\n\t\t}\n\n\t\tproductCustomFields( field, status = false, isTaxonomy ) {\n\t\t\tlet data = {\n\t\t\t\taction: 'woo_feed_custom_fields_status_change',\n\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\n\t\t\t\tfield,\n\t\t\t\tstatus,\n\t\t\t\tisTaxonomy\n\t\t\t};\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\n\t\t\t\tdata,\n\t\t\t\tsuccess: ( response ) => {\n\t\t\t\t\tif( response.success ) {\n\t\t\t\t\t\tthis.cacheClear();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log( response );\n\t\t\t\t\t}\n $('#'+field+'-switcher').closest('td').find('.switch-loader').hide();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n let $copyBtn,\n clipboard,\n googleCategories,\n helper = {\n in_array: (needle, haystack) => {\n try {\n return haystack.indexOf(needle) !== -1;\n } catch (e) {\n return false;\n }\n },\n selectize_render_item: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.text)}</div>`, // phpcs:ignore WordPressVIPMinimum.JS.StringConcat.Found,\n ajax_fail: e => {\n console.warn(e);\n alert(e.hasOwnProperty('statusText') && e.hasOwnProperty('status') ? opts.ajax.error + '\\n' + e.statusText + ' (' + e.status + ')' : e);\n },\n /**\n * Initialize Sortable\n * @param {jQuery|HTMLElement} el\n * @param {object} config\n * @param {int|boolean} column\n * @param {function} onDrop\n * @return {jQuery|HTMLElement}\n */\n sortable: (el, config, column, onDrop) => {\n return (el || $('.sorted_table')).each(function() {\n let self = $(this),\n column_count = self.find('tbody > tr:eq(0) > td').length || column || 9;\n self.wf_sortable(extend({\n containerSelector: 'table',\n itemPath: '> tbody',\n itemSelector: 'tr',\n handle: 'i.wf_sortedtable',\n placeholder: `<tr class=\"placeholder\"><td colspan=\"${column_count}\"></td></tr>`,\n onDrop: ($item, container, _super, event) => {\n $item.removeClass(container.group.options.draggedClass).removeAttr('style');\n $(\"body\").removeClass(container.group.options.bodyClass);\n if ( onDrop && 'function' === typeof( onDrop ) ) {\n onDrop( $item, container, _super, event );\n }\n },\n }, config));\n });\n },\n selectize: (el, config) => {\n return (el || $('select.selectize')).not('.selectized').not('.selectize-google-category').each(function() {\n let self = $(this);\n self.selectize(extend({\n create: self.data('create') || false,\n plugins: self.data('plugins') ? self.data('plugins').split(',').map(function(s) {\n return s.trim();\n }) : [],\n //['remove_button'],\n render: {\n item: helper.selectize_render_item\n }\n }, config));\n });\n },\n fancySelect: (el, config) => {\n return (el || $('select.fancySelect')).not('.FancySelectInit').each(function() {\n let self = $(this);\n self.fancySelect(extend({\n maxItemShow: 3\n }, config));\n });\n },\n reindex_config_table: () => {\n $('#table-1').find('tbody tr').each( ( x, el ) => {\n $(el).find('[name]').each( ( x1, el ) => {\n $(el).attr('name', $(el).attr('name').replace(/(\\[\\d\\])/g, `[${x}]`));\n } );\n } );\n },\n common: () => {\n helper.sortable( $('.sorted_table'), {}, 9, helper.reindex_config_table );\n helper.selectize();\n helper.fancySelect($('.outputType'));\n }\n },\n // helper functions\n feedEditor = {\n /**\n * The Editor Form Elem.\n * @type {jQuery|HTMLElement}\n */\n form: null,\n\n /**\n * Initialize The Feed Editor {Tabs...}\n * @returns {void}\n */\n init: function () {\n let self = this;\n self.form = $('.generateFeed');\n if (!self.form.length) return;\n helper.common();\n // noinspection JSUnresolvedVariable\n $(document).trigger(new jQuery.Event('feedEditor.init', {\n target: this.form\n }));\n },\n\n /**\n * Render Merchant info ajax response and handle allowed feed type for selected merchant\n * @param {jQuery|HTMLElement} merchantInfo jQuery dom object\n * @param {jQuery|HTMLElement} feedType jQuery dom object\n * @param {Object} r ajax response object\n */\n renderMerchantInfo: function (merchantInfo, feedType, r) {\n for (let k in r) {\n if (r.hasOwnProperty(k)) {\n merchantInfo.find('.merchant-info-section.' + k + ' .data').html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\n\n if ('feed_file_type' === k) {\n (function() {\n let types = r[k].split(\",\").map(function(t) {\n return t.trim().toLowerCase();\n }).filter(function(t) {\n // noinspection JSUnresolvedVariable\n return t !== '' && t !== opts.na.toLowerCase();\n });\n\n if (types.length) {\n feedType.find('option').removeAttr('selected').each(function() {\n let opt = $(this);\n opt.val() && !helper.in_array(opt.val(), types) ? opt.disabled(!0) : opt.disabled(!1);\n });\n if (types.length === 1) feedType.find('option[value=\"' + types[0] + '\"]').attr('selected', 'selected');\n } else feedType.find('option').disabled(!1);\n })();\n }\n }\n }\n\n merchantInfo.find('.spinner').removeClass('is-active');\n feedType.disabled(!1);\n feedType.trigger('change');\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n feedType.parent().find('.spinner').removeClass('is-active');\n },\n\n /**\n * Render Feed Template Tabs and settings while creating new feed.\n * @param {jQuery|HTMLElement} feedForm feed from query dom object\n * @param {object} r merchant template ajax response object\n */\n renderMerchantTemplate: function (feedForm, r) {\n let _loop = function _loop(k) {\n if (r.hasOwnProperty(k)) {\n if ('tabs' === k) {\n // noinspection JSUnresolvedFunction\n feedForm.html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\n } else {\n let contentSettings = $('[name=\"' + k + '\"]');\n\n if (contentSettings.length) {\n contentSettings.each(function() {\n let elem = $(this);\n\n if (elem.is('select')) {\n elem.find('[value=\"' + r[k] + '\"]').prop('selected', true);\n } else if ((elem.is('[type=checkbox]') || elem.is('[type=radio]')) && elem.val() === r[k]) {\n elem.prop('checked', true);\n } else {\n elem.val(r[k]); // type=text\n }\n }).trigger('change');\n }\n }\n }\n };\n\n for (let k in r) {\n _loop(k);\n }\n\n feedEditor.init();\n }\n },\n // Feed Editor Table\n merchantInfoCache = [],\n merchantTemplateCache = [],\n tooltip = () => {\n // Tooltip only Text\n $('.wfmasterTooltip')\n .hover(function () {\n // Hover over code\n let self = $(this), title = self.attr('wftitle');\n self.data('tipText', title).removeAttr('wftitle');\n $('<p class=\"wftooltip\"></p>').text(title).appendTo('body').fadeIn('slow');\n }, function () {\n // Hover out code\n let self = $(this);\n self.attr('wftitle', self.data('tipText'));\n $('.wftooltip').remove();\n })\n .mousemove(function (e) {\n $('.wftooltip').css({\n top: e.pageY + 10,\n left: e.pageX + 20\n });\n });\n },\n clip = () => {\n $copyBtn = $('.toClipboard');\n if (!ClipboardJS.isSupported() || /iPhone|iPad/i.test(navigator.userAgent)) {\n $copyBtn.find('img').hide(0);\n } else {\n $copyBtn.each(function() {\n $(this).on('mouseleave', clearTooltip).on('blur', clearTooltip);\n });\n clipboard = new ClipboardJS('.toClipboard');\n clipboard.on('error', function(event) {\n showTooltip(event.trigger, fallbackMessage(event.action));\n }).on('success', function(event) {\n showTooltip(event.trigger, 'Copied');\n });\n }\n };\n\n /**\n * Feed Generator Module\n */\n class feedGenerator {\n\n /**\n * Constructor\n * @constructor\n */\n constructor() {\n this._feed = opts.generator.feed; // wf_config+xxxx\n this._limit = opts.generator.limit;\n this._progress = 0;\n this._timer = null;\n this._color = false;\n // batch info\n this._total_batch = 0;\n this._current_batch = 0;\n this._product_ids = [];\n this._progress_per_batch = 0;\n this._refresh = true;\n // noinspection JSUnresolvedVariable\n this._regenerate = opts.generator.regenerate;\n window.isRegenerating = false;\n this._all_btn = $('.wpf_regenerate');\n this._current_btn = $(`#${this._feed.replace( 'wf_config', 'wf_feed_' )}`);\n this._current_btn_label = '';\n }\n\n /**\n * Init Hooks (Event)\n * @return {feedGenerator}\n */\n init() {\n let self = this;\n if ( '' !== this._feed && this._regenerate && false === window.isRegenerating ) {\n this.generate();\n }\n\n //thickbox body add feed plugin class to make it unique and custom style\n let current_page_query = window.location.search;\n let params = new URLSearchParams(current_page_query);\n let page_name = params.get(\"page\");\n if( \"webappick-manage-feeds\" === page_name ) {\n $('body').addClass('woo-import-popup-body');\n }\n\n $(document).on('click', '.woo-feed-campaign-close-button', function(event) {\n event.preventDefault();\n\n $(this).parent('.woo-feed-promotion').hide();\n let condition = $(this).data('condition');\n if(1 === condition) {\n wpAjax.post( 'woo_feed_hide_promotion', {\n _ajax_nonce: opts.nonce,\n condition: condition,\n } ).then( response => {\n self._log( response );\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n } );\n }\n });\n\n $(document).on('click', '.wpf_regenerate', function(event) {\n event.preventDefault();\n self._current_btn = $( this );\n if( self._current_btn.hasClass('disabled') || window.isRegenerating === true ) return;\n self._feed = self._current_btn.attr('id').replace( 'wf_feed_', 'wf_config' );\n if( '' !== self._feed ) {\n self.generate();\n }\n });\n return this;\n }\n\n _block_button() {\n if ( this._all_btn.length ) {\n this._all_btn.addClass('disabled');\n }\n if ( this._current_btn.length ) {\n this._current_btn.find('span').addClass('wpf_spin reverse_spin');\n this._current_btn_label = this._current_btn.attr('title');\n // noinspection JSUnresolvedVariable\n this._current_btn.attr( 'aria-label', opts.regenerate ).attr( 'title', opts.regenerate );\n }\n }\n\n _unblock_button() {\n if ( this._all_btn.length ) {\n this._all_btn.removeClass('disabled');\n }\n if ( this._current_btn.length ) {\n this._current_btn.find('span').removeClass('wpf_spin');\n this._current_btn.find('span').removeClass('reverse_spin');\n this._current_btn.attr( 'aria-label', this._current_btn_label ).attr( 'title', this._current_btn_label );\n }\n }\n\n /**\n * Generate Feed\n * @return void\n */\n generate() {\n let self = this;\n window.isRegenerating = true;\n this._block_button();\n this._resetProgressBar();\n this._progressBarActive();\n this._log( 'Counting Total Products' );\n this._updateProgressStatus( 'Fetching products.' );\n this._get_product_ids().then( response => {\n this._progress = 10;\n self._log( {response} );\n if(response.success) {\n self._log( `Total ${response.total} Products found.` );\n self._product_ids = response.product;\n self._total_batch = this._product_ids.length;\n self._current_batch = 0;\n self._progress_per_batch = ( 90 - this._progress ) / this._total_batch;\n self._process_batch();\n self._updateProgressStatus( 'Processing Products...' );\n } else {\n self._updateProgressStatus( response.data.message );\n }\n }).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Get Product Ids\n * @returns {$.promise}\n * @private\n */\n _get_product_ids() {\n this._progress = 5;\n return wpAjax.post( 'get_product_information', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n limit: this._limit,\n } );\n }\n\n /**\n * Run the Batch\n * @private\n */\n _process_batch() {\n let self = this;\n let status = `Processing Batch ${this._current_batch+1} of ${this._total_batch}`;\n this._updateProgressStatus( status );\n this._log( status );\n wpAjax.post( 'make_batch_feed', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n products: this._product_ids[this._current_batch],\n loop: this._current_batch,\n } ).then( response => {\n self._current_batch++;\n self._log( `Batch ${self._current_batch} Completed` );\n self._log( response );\n if ( self._current_batch < self._total_batch ) {\n self._process_batch();\n self._progress += self._progress_per_batch;\n }\n if ( self._current_batch === self._total_batch ) {\n self._save_feed_file();\n }\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Save Feed Data from temp to feed file\n * @private\n */\n _save_feed_file() {\n let self = this;\n this._log( 'Saving feed file' );\n this._updateProgressStatus( 'Saving feed file' );\n wpAjax.post( 'save_feed_file', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n } ).then( response => {\n self._log( response );\n self._progress = 100;\n if ( self._refresh ) {\n window.location.href = `${opts.pages.list.feed}&link=${response.url}&cat=${response.cat}`;\n }\n setTimeout( function(){\n self._stopProgressBar();\n setTimeout( function(){\n self._resetProgressBar( true );\n self._unblock_button();\n }, 3000 );\n }, 2500 );\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Console log wrapper with debug settings.\n * @param data\n * @returns {feedGenerator}\n * @private\n */\n _log( data ) {\n // noinspection JSUnresolvedVariable\n if ( opts.wpf_debug ) {\n console.log( data );\n }\n return this;\n }\n\n /**\n * Run the progressbar refresh interval\n * @param {int} refreshInterval\n * @returns {feedGenerator}\n * @private\n */\n _progressBarActive( refreshInterval = 0 ) {\n let self = this;\n this._toggleProgressBar( true );\n this._timer = setInterval( function(){\n self._updateProgressBar();\n }, refreshInterval || 1000 );\n return this;\n }\n\n /**\n * Stop Progressbar\n * @returns {feedGenerator}\n * @private\n */\n _stopProgressBar() {\n clearInterval( this._timer );\n return this;\n }\n\n /**\n * Reset Progressbar\n * @returns {feedGenerator}\n * @private\n */\n _resetProgressBar( update ) {\n this._toggleProgressBar( false );\n this._updateProgressStatus( '' );\n clearInterval( this._timer );\n this._color = false;\n this._timer = null;\n this._progress = 0;\n if ( update ) {\n this._updateProgressBar();\n }\n return this;\n }\n\n /**\n * Show hide the progress bar el\n * @param status\n * @returns {feedGenerator}\n * @private\n */\n _toggleProgressBar( status ) {\n let table = $('#feed_progress_table');\n if ( status ) {\n table.show();\n } else {\n table.hide();\n }\n return this;\n }\n\n /**\n * Update Progress bar text status\n * @param {string} status\n * @returns {feedGenerator}\n * @private\n */\n _updateProgressStatus( status ) {\n $( '.feed-progress-status' ).html( status );\n return this;\n }\n\n _getErrorMessageByCode( error ){\n let progress_message = $( '.feed-progress-status' );\n progress_message.css( {'color':this._color});\n $( '.feed-progress-percentage' ).css( {'color':this._color});\n $( '.wpf_spin' ).css( {'color':this._color});\n\n let message=error.status +' : '+ error.statusText+'. ';\n if(500===error.status){\n message+= \"Please increase your PHP max_execution_time. Please <a target='_blank' href='https://webappick.com/docs/woo-feed/faq-for-woocommerce-product-feed/how-to-solve-processing-10-feed-generation-stuck-error/'>read this doc</a>.\";\n }\n\n this._updateProgressStatus(message);\n\n }\n\n /**\n * Update Progress Data\n * hooked with setInterval\n * @private\n */\n _updateProgressBar() {\n let percentage = $( '.feed-progress-percentage' ),\n bar = $( '.feed-progress-bar-fill' ),\n _progress = `${Math.round( this._progress )}%`;\n bar.css( {\n width: _progress,\n } );\n percentage.text( _progress );\n }\n }\n // expose to the global scope\n window.wf = {\n helper: helper,\n feedEditor: feedEditor,\n generator: feedGenerator,\n };\n\n $(window).on('load', function() {\n // Template loading ui conflict\n if ($(location).attr(\"href\").match(/webappick.*feed/g) !== null) {\n $('#wpbody-content').addClass('woofeed-body-content');\n }\n\n // on edit page show item wrapper dropdown\n let current_page_url_query = window.location.search;\n let urlParams = new URLSearchParams(current_page_url_query);\n let page_action = urlParams.get('action');\n\n // ClipBoardJS\n clip();\n // postbox toggle\n postboxes.add_postbox_toggles(pagenow);\n // initialize generator\n let generator = new feedGenerator();\n generator.init();\n // noinspection JSUnresolvedVariable\n if( '' !== opts.generator.feed && opts.generator.regenerate ) {\n\n }\n // initialize editor\n feedEditor.init();\n helper.common(); // Generate Feed Add Table Row\n tooltip();\n // validate feed editor\n $(\".generateFeed\").validate();\n\n // document events\n $(document)\n .on('blur', 'input[name=\"wfDAttributeName\"]', function(e) {\n e.preventDefault();\n let attr_name = $(this).val();\n attr_name = attr_name.toLowerCase();\n attr_name = attr_name.split(' ').join('_');\n\n $('#wfDAttributeCode').val(attr_name);\n\n })\n .on('click', '[data-toggle_slide]', function(e) {\n e.preventDefault();\n $($(this).data('toggle_slide')).slideToggle('fast');\n })\n // XML Feed Wrapper\n .on('click', '#wf_newRow', function () {\n let tbody = $('#table-1 tbody'),\n template = $('#feed_config_template').text().trim().replace(/__idx__/g, tbody.find('tr').length);\n tbody.append(template);\n helper.fancySelect($('.outputType'));\n })\n // feed delete alert.\n .on('click', '.single-feed-delete', function (event) {\n event.preventDefault();\n // noinspection JSUnresolvedVariable\n if (confirm(opts.form.del_confirm)) {\n window.location.href = $(this).attr('val');\n }\n })\n // clear cache data.\n .on('click', '.wf_clean_cache_wrapper', function(event) {\n event.preventDefault();\n var nonce = $('.woo-feed-clean-cache-nonce').val();\n var loader = $('.woo-feed-cache-loader');\n\n //show loader\n loader.show();\n\n // passed cache nonce\n wpAjax.post('clear_cache_data', {\n _ajax_clean_nonce: nonce\n }).then(function (response) {\n if( response.success ) {\n loader.hide(); //hide loader\n location.reload();\n }\n }).fail(function (e) {\n console.log('something wrong');\n });\n\n })// Copy Status\n .on('click', '#woo-feed-copy-status-btn', function(event) {\n event.preventDefault();\n let button = $('#woo-feed-copy-status-btn');\n let status_area = $('#woo-feed-status-area');\n button.val('Copied');\n status_area.css('visibility','visible');\n status_area.select();\n\n document.execCommand('copy');\n })\n // feed value dropdown change.\n .on('change', '.wf_attr.wf_attributes', function(event) {\n event.preventDefault();\n\n $('.fancy-picker-picked').trigger(\"click\"); // trigger fancy select box clicked\n\n // price attributes\n var price_attributes = ['price', 'current_price', 'sale_price', 'price_with_tax', 'current_price_with_tax', 'sale_price_with_tax', 'shipping_cost'];\n // current value\n var current_attribute_value = $(this).val();\n var outputSelect = $(this).parents('tr').find('.outputType');\n var fancyOption = $(this).parents('tr').find('.fancy-picker-content .fancy-picker-option');\n var fancyDataPicker = $(this).parents('tr').find('.fancy-picker-data span');\n var selectIf, selectKey;\n\n // when any attribute is selected, pick the key\n if( price_attributes.includes(current_attribute_value) ) {\n // when select any price attribute\n selectIf = 'for_price';\n selectKey = \"Price\";\n } else if ( \"\" !== current_attribute_value && -1 !== current_attribute_value.indexOf('wf_taxo') ) {\n\n // when select any custom taxonomy\n selectIf = 'for_custom_taxo';\n selectKey = \"parent_if_empty\";\n } else {\n\n selectIf = 'for_all';\n selectKey = 'Default';\n }\n\n // remove selected class from old selected option\n fancyOption.removeClass('selected');\n\n // when value dropdown is selected as price or any custom taxonomy\n if( selectIf === 'for_custom_taxo' || selectIf === 'for_price' ) {\n\n // update \"Option Type\" when select key matches\n fancyOption.each(function(item) {\n if( selectKey === $(this).text() ) {\n $(this).addClass('selected');\n fancyDataPicker.text(selectKey);\n outputSelect.find(\"option\").text(selectKey);\n outputSelect.find(\"option\").val( $(this).data('value') );\n }\n });\n }\n\n })\n // bulk delete alert.\n .on('click', '#doaction, #doaction2', function () {\n // noinspection JSUnresolvedVariable\n return confirm(opts.form.del_confirm_multi);\n })\n // Generate Feed Table Row Delete\n .on('change', '.dType', function () {\n let self = $(this),\n type = self.val(),\n row = self.closest('tr');\n\n if (type === 'pattern') {\n row.find('.value_attribute').hide();\n row.find('.value_pattern').show();\n } else if (type === 'attribute') {\n row.find('.value_attribute').show();\n row.find('.value_pattern').hide();\n } else if (type === 'remove') {\n row.find('.value_attribute').hide();\n row.find('.value_pattern').hide();\n }\n })\n // Generate Feed Form Submit\n .on('click', '.delRow', function (e) {\n e.preventDefault();\n $(this).closest('tr').remove();\n helper.reindex_config_table();\n })\n .on('submit', '#generateFeed', function () {\n // Feed Generating form validation\n $(this).validate();\n\n if ($(this).valid()) {\n $(\".makeFeedResponse\")\n .show()\n .html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n }\n })\n // Generate Update Feed Form Submit\n .on('submit', '#updatefeed', function (e, data) {\n // Feed Generating form validation\n $(this).validate();\n\n if ($(this).valid()) {\n $(\".makeFeedResponse\")\n .show()\n .html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${data && data.save ? opts.form.save : opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n }\n })\n .on( 'ready woo_feed_config_loaded', function(){\n\n if( $('#ftpenabled').val() === '0' ){\n $('.google-merchant-message').hide('slow');\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').attr('disabled','disabled');\n } else {\n if( $('#provider').val() === 'google' ) {\n $('.google-merchant-message').show('slow');\n } else {\n $('.google-merchant-message').hide('slow');\n }\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').removeAttr('disabled');\n }\n\n $('#ftpenabled').on('change', function(){\n if( $('#ftpenabled').val() === '0' ){\n $('.google-merchant-message').hide('slow');\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').attr('disabled','disabled');\n } else {\n\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').removeAttr('disabled');\n\n // Google merchant specific message\n if( $('#provider').val() === 'google' ){\n $('.google-merchant-message').show('slow');\n } else {\n $('.google-merchant-message').hide('slow');\n }\n\n }\n });\n })\n .on('change', '.ftporsftp', function () {\n let server = $(this).val(),\n status = $('.ssh2_status');\n\n if (server === 'sftp') {\n // noinspection JSUnresolvedVariable\n status.show().css('color', 'dodgerblue').text(opts.form.sftp_checking);\n wpAjax.post('get_ssh2_status', {\n _ajax_nonce: opts.nonce,\n server: server\n }).then(function (response) {\n if (response === 'exists') {\n // noinspection JSUnresolvedVariable\n status.css('color', '#2CC185').text(opts.form.sftp_available);\n setTimeout(function () {\n status.hide();\n }, 1500);\n } else {\n // noinspection JSUnresolvedVariable\n status.show().css('color', 'red').text(opts.form.sftp_warning);\n }\n }).fail(function (e) {\n status.hide();\n helper.ajax_fail(e);\n });\n } else {\n status.hide();\n }\n })\n .on('click', '[name=\"save_feed_config\"]', function (e) {\n e.preventDefault();\n $('#updatefeed').trigger('submit', {\n save: true\n });\n })\n .on('change', '#provider', function (event) {\n event.preventDefault();\n\n let merchant = $(this).val(),\n templateName = $(this).find(':selected').text(),\n name = $('#filename').val(),\n feedType = $(\"#feedType\"),\n feedForm = $(\"#providerPage\"),\n merchantInfo = $('#feed_merchant_info'); // set loading..\n\n // noinspection JSUnresolvedVariable\n feedForm.html('<h3><span style=\"float:none;margin: -3px 0 0;\" class=\"spinner is-active\"></span> ' + opts.form.loading_tmpl + '</h3>'); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n\n merchantInfo.find('.spinner').addClass('is-active');\n feedType.disabled(!0); // disable dropdown\n\n feedType.parent().find('.spinner').addClass('is-active');\n merchantInfo.find('.merchant-info-section .data').html(''); // remove previous data\n // Get Merchant info for selected Provider/Merchant\n\n if (merchantInfoCache.hasOwnProperty(merchant)) {\n feedEditor.renderMerchantInfo(merchantInfo, feedType, merchantInfoCache[merchant]);\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n } else {\n wpAjax.send('woo_feed_get_merchant_info', {\n type: 'GET',\n data: {\n nonce: opts.nonce,\n provider: merchant,\n templateName: templateName\n }\n }).then(function (r) {\n merchantInfoCache[merchant] = r;\n feedEditor.renderMerchantInfo(merchantInfo, feedType, r);\n }).then(function(){\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n }).fail(helper.ajax_fail);\n } // Get FeedForm For Selected Provider/Merchant\n\n\n if (merchantTemplateCache.hasOwnProperty(merchant)) {\n feedEditor.renderMerchantTemplate(feedForm, merchantTemplateCache[merchant]);\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n } else {\n wpAjax.post('get_feed_merchant', {\n _ajax_nonce: opts.nonce,\n merchant: merchant\n }).then(function (r) {\n merchantTemplateCache[merchant] = r;\n feedEditor.renderMerchantTemplate(feedForm, r);\n $('#utm_source').val(templateName);\n $('#utm_campaign').val(name);\n //when merchant is bing, change delimiter and enclosure\n if( 'bing' === merchant ) {\n //delimiter value\n $(\"#delimiter option\").removeAttr('selected');\n $(\"#delimiter option[value=\\\"tab\\\"]\").attr('selected', 'selected');\n\n //enclosure value\n $(\"#enclosure option\").removeAttr('selected');\n $(\"#enclosure option[value=\\\" \\\"]\").attr('selected', 'selected');\n }\n\n //reviewer options hide\n if( 'google_product_review' !== merchant) {\n $('.wf_attributes option[value=\"reviewer_name\"]').hide();\n }\n }).then(function(){\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n }).fail(helper.ajax_fail);\n }\n })\n // Feed Active and Inactive status change via ajax\n .on('change', '.woo_feed_status_input', function () {\n let self = $(this);\n wpAjax.post('update_feed_status', {\n _ajax_nonce: opts.nonce,\n feedName: self.val(),\n status: self[0].checked ? 1 : 0\n });\n });\n // event with trigger\n $(document)\n .on('change', '[name=\"is_outOfStock\"], [name=\"product_visibility\"]', function () {\n let outOfStockVisibilityRow = $('.out-of-stock-visibility');\n if ($('[name=\"is_outOfStock\"]:checked').val() === 'n' && $('[name=\"product_visibility\"]:checked').val() === '1') {\n outOfStockVisibilityRow.show();\n } else {\n outOfStockVisibilityRow.hide();\n }\n })\n .on('change', '.attr_type', function () {\n // Attribute type selection\n let self = $(this),\n type = self.val(),\n row = self.closest('tr');\n\n if (type === 'pattern') {\n row.find('.wf_attr').hide();\n row.find('.wf_attr').val('');\n row.find('.wf_default').show();\n } else {\n row.find('.wf_attr').show();\n row.find('.wf_default').hide();\n row.find('.wf_default').val('');\n }\n })\n .on('change', '.wf_mattributes, .attr_type', function () {\n let row = $(this).closest('tr'),\n attribute = row.find('.wf_mattributes'),\n type = row.find('.attr_type'),\n valueColumn = row.find('td:eq(4)'),\n provider = $('#provider').val();\n\n // noinspection JSUnresolvedVariable\n if (opts.form.google_category.hasOwnProperty(attribute.val()) && type.val() === 'pattern' && helper.in_array(provider, opts.form.google_category[attribute.val()])) {\n if (valueColumn.find('select.selectize').length === 0) {\n valueColumn.find('input.wf_default').remove();\n valueColumn.append('<span class=\"wf_default wf_attributes\"><select name=\"default[]\" class=\"selectize\"></select></span>');\n // noinspection JSUnresolvedVariable\n valueColumn.append(`<span style=\"font-size:x-small;\"><a style=\"color: red\" href=\"https://webappick.com/docs/woo-feed/feed-configuration/how-to-map-store-category-with-merchant-category/\" target=\"_blank\">${opts.learn_more}</a></span>`);\n\n if (!googleCategories) {\n valueColumn.append('<span class=\"spinner is-active\" style=\"margin: 0;\"></span>');\n }\n\n let select = valueColumn.find('.wf_attributes select');\n // noinspection JSUnresolvedVariable\n helper.selectize(select, {\n preload: true,\n placeholder: opts.form.select_category,\n load: function load(query, cb) {\n if (!googleCategories) {\n wpAjax.send('get_google_categories', {\n type: 'GET',\n data: {\n _ajax_nonce: opts.nonce,\n action: \"get_google_categories\",\n provider: provider\n }\n }).then(function (r) {\n googleCategories = r;\n cb(googleCategories);\n valueColumn.find('.spinner').remove();\n }).fail(helper.ajax_fail);\n } else {\n cb(googleCategories);\n }\n }\n });\n }\n } else {\n if (attribute.val() !== 'current_category' && valueColumn.find('input.wf_default').length === 0) {\n valueColumn.find('span').remove();\n valueColumn.append('<input autocomplete=\"off\" class=\"wf_default wf_attributes\" type=\"text\" name=\"default[]\" value=\"\">');\n\n if (type.val() !== 'pattern') {\n valueColumn.find('input.wf_default').hide();\n }\n }\n }\n })\n .on('change', '#feedType,#provider', function (e) {\n let type = $('#feedType').val(),\n provider = $('#provider').val(),\n itemWrapper = $('.itemWrapper'),\n wf_csv_txt = $('.wf_csvtxt');\n\n // noinspection JSUnresolvedVariable\n if (type !== '' && helper.in_array(provider, opts.form.item_wrapper_hidden)) {\n itemWrapper.hide();\n }\n\n //when feed type is changed\n if( 'feedType' === e.target.id ) {\n if (type === 'csv' || type === 'txt' || type === 'tsv') {\n itemWrapper.hide();\n wf_csv_txt.show();\n\n if( 'tsv' === type ) {\n $('#delimiter option:last').prop(\"selected\", \"selected\");\n } else if( 'csv' === type ) {\n $('#delimiter option:first').prop(\"selected\", \"selected\");\n }\n } else if( 'xml' === type ) {\n itemWrapper.show();\n wf_csv_txt.hide();\n } else if( 'json' === type ) {\n itemWrapper.hide();\n wf_csv_txt.hide();\n }\n }\n\n })\n .trigger('change');\n\n\n $(document)\n\t\t\t.on('click', '.woofeed-custom-fields [id*=\"-switcher\"]', function () {\n\t\t\t $(this).closest('td').find('.switch-loader').show();\n\t\t\t\tlet field = $(this).attr( 'id' ).split( '-' )[0],\n\t\t\t\t\tisTaxonomy = $(this).data( 'taxonomy' ),\n\t\t\t\t\tstatus = $(this).prop( 'checked' );\n\t\t\t\tnew WooFeedCustomFields( field, status, isTaxonomy );\n\n\t\t\t})\n\n\t\t\t// Remove sticky cart on feature page\n\t\t\t.ready(function() {\n\t\t\t\tvar s = $(\".wapk-feed-buy-now-container\");\n\t\t\t\tvar pos = s.position();\n\t\t\t\t$(window).scroll(function() {\n\t\t\t\t\tvar windowpos = $(window).scrollTop();\n\t\t\t\t\tif ( windowpos <= 5000 ) {\n\t\t\t\t\t\ts.addClass(\"fixed\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts.removeClass(\"fixed\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n });\n\n $(document)\n\t\t.on('click', '#woo-feed-debug-log-download', function (e) {\n\t\t\te.preventDefault();\n\t\t\t$(\"<a />\", {\n\t\t\t\tdownload: new Date() + \".log\",\n\t\t\t\thref: URL.createObjectURL(\n\t\t\t\t\tnew Blob([$(\"#woo-feed-debug-log\").val()], {\n\t\t\t\t\t\ttype: \"text/plain\"\n\t\t\t\t\t})),\n\t\t\t}).appendTo(\"body\")[0].click();\n\t\t})\n\t\t.on('keyup', '#filename', function(e) {\n\t\t\tvar name = $('#filename').val();\n\t\t\t$('#utm_campaign').val(name);\n\t\t})\n\n // var providerVal = $('#category-mapping-form #providers').val();\n\t\t// console.log(providerVal)\n\t\t.on('change', '#category-mapping-form #providers', function(e) {\n\t\t\tvar provider = $(this).find(':selected').val(),\n\t\t\t\tgoogleMap = ['google', 'facebook', 'pinterest', 'bing', 'bing_local_inventory', 'snapchat'];\n\t\t\tif( googleMap.indexOf(provider) !== -1 ) {\n\t\t\t\t$('input[id*=\"cat_mapping_\"]').css('display', 'none');\n\t\t\t\t$('.wf_default.wf_attributes').css('display', 'block').css('width', '100%');\n\t\t\t\t// $('#category-mapping-form .dashicons').css('display', 'block');\n\t\t\t} else {\n\t\t\t\t$('input[id*=\"cat_mapping_\"]').css('display', 'block');\n\t\t\t\t$('.wf_default.wf_attributes').css('display', 'none').css('width', '100%');\n\t\t\t\t// $('#category-mapping-form .dashicons').css('display', 'none');\n\t\t\t}\n\t\t})\n\n // Copy parent category ids to child categories.\n\t\t.on('click', 'span[id*=\"cat-map-\"]', function(e) {\n\t\t\te.preventDefault();\n\t\t\tvar providerName = $('#category-mapping-form #providers').val(),\n\t\t\t\tgoogleMap = ['google', 'facebook', 'pinterest', 'bing', 'bing_local_inventory', 'snapchat'],\n\t\t\t\tcatId = $(this).attr('id').replace(/[^\\d.]/g, ''),\n\t\t\t\tgroupId = 'group-child-' + catId;\n\n\t\t\tif( googleMap.indexOf(providerName) !== -1) {\n\t\t\t\tvar catField = $(this).parents('tr').find('.selectized').val();\n\n\t\t\t\tif (catField) {\n\t\t\t\t\t$('.' + groupId).parents('tr').find('select').each(function (i, v) {\n\t\t\t\t\t\t$(v).data('selectize').setValue(catField);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tvar value = $('#cat_mapping_'+catId).val();\n\t\t\t\t$('.'+groupId).parents('tr').find('input').val(value);\n\t\t\t}\n\n\t\t});\n\n $(document).ready(function (){\n\n wpAjax.send('get_google_categories', {\n type: 'GET',\n data: {\n _ajax_nonce: opts.nonce,\n action: \"get_google_categories\",\n // provider: provider\n }\n }).then(function (response) {\n $('.selectize-google-category').selectize({\n valueField: 'value',\n labelField: 'text',\n placeholder: 'Select a category',\n searchField: ['value', 'text'],\n options: response,\n render: {\n option: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.value + ' - ' + data.text)}</div>`,\n item: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.value + ' - ' + data.text)}</div>`\n }\n });\n }).fail(helper.ajax_fail);\n\n\n\n });\n\n\n})(jQuery, window, document, wp.ajax, wpf_ajax_obj);\n"]}
|
1 |
+
{"version":3,"sources":["woo-feed-admin.js"],"names":["_defineProperties","target","props","descriptor","i","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","window","wpAjax","$","document","opts","self","prop","status","addClass","removeClass","hasClass","currentTarget","clearTooltip","userAgent","actionMsg","match","actionKey","index","join","removeAttr","elem","attr","msg","extend","_default","_args","clip","$copyBtn","ClipboardJS","isSupported","test","navigator","feedGenerator","this","on","action","showTooltip","event","trigger","wpf_ajax_obj","success","url","data","_classCallCheck","WooFeedCustomFields","productCustomFields","field","isTaxonomy","value","ajax","nonce","method","response","wpf_ajax_url","clipboard","googleCategories","log","closest","find","hide","in_array","needle","haystack","indexOf","console","selectize_render_item","escape","sortable","onDrop","text","ajax_fail","column_count","warn","wf_sortable","containerSelector","e","hasOwnProperty","error","statusText","el","config","column","_onDrop","each","length","selectize","itemPath","itemSelector","concat","plugins","$item","container","group","options","draggedClass","bodyClass","render","item","helper","not","fancySelect","maxItemShow","create","split","map","s","handle","placeholder","form","replace","x","reindex_config_table","init","renderMerchantInfo","jQuery","k","opt","merchantInfo","feedType","r","types","html","t","trim","toLowerCase","na","disabled","val","_loop2","renderMerchantTemplate","_loop","filter","contentSettings","feedForm","feedEditor","merchantInfoCache","tooltip","css","top","_regenerate","isRegenerating","feed","_progress","_product_ids","_progress_per_batch","_refresh","_feed","_all_btn","generate","_current_btn","condition","_current_batch","then","URLSearchParams","preventDefault","parent","_current_btn_label","_ajax_nonce","_log","_updateProgressStatus","message","_color","regenerate","setTimeout","_this2","_stopProgressBar","_process_batch","fail","limit","_limit","_block_button","_progressBarActive","_save_feed_file","loop","_get_product_ids","_total_batch","_unblock_button","_resetProgressBar","refreshInterval","post","arguments","undefined","clearInterval","_timer","setInterval","_updateProgressBar","update","_toggleProgressBar","table","show","color","width","generator","current_page_url_query","wf","postboxes","location","pagenow","attr_name","hover","title","appendTo","remove","left","pageX","confirm","href","slideToggle","loader","reload","button","status_area","select","execCommand","progress_message","current_attribute_value","fancyOption","selectIf","selectKey","outputSelect","parents","includes","page_action","add_postbox_toggles","row","del_confirm_multi","type","template","append","validate","valid","save","price_attributes","server","sftp_checking","fancyDataPicker","merchant","sftp_warning","name","templateName","loading_tmpl","provider","send","merchantTemplateCache","outOfStockVisibilityRow","feedName","checked","valueColumn","attribute","load","google_category","query","learn_more","preload","cb","wf_csv_txt","itemWrapper","item_wrapper_hidden","id","windowpos","scroll","Date","click","catField","setValue","catId","scrollTop","option","download","searchField"],"mappings":"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","file":"woo-feed-admin.min.js","sourcesContent":["// noinspection JSUnresolvedletiable\n/**!\n * WooFeed Scripts\n * @version 3.3.6\n * @package WooFeed\n * @copyright 2020 WebAppick\n *\n */\n/* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */\n// noinspection JSUnresolvedVariable\n(function($, window, document, wpAjax, opts) {\n \"use strict\";\n /**\n * All of the code for your admin-facing JavaScript source\n * should reside in this file.\n *\n * Note: It has been assumed you will write jQuery code here, so the\n * $ function reference has been prepared for usage within the scope\n * of this function.\n *\n * This enables you to define handlers, for when the DOM is ready:\n */\n\n /**\n * disable element utility\n *\n * @since 3.1.9\n *\n * @param {*} status\n * @returns {jQuery|HTMLElement}\n */\n $.fn.disabled = function(status) {\n $(this).each(function() {\n let self = $(this),\n prop = 'disabled';\n\n if (typeof self.prop(prop) !== 'undefined') {\n self.prop(prop, status === void 0 || status === true);\n } else {\n !0 === status ? self.addClass(prop) : self.removeClass(prop);\n }\n });\n return self; // method chaining\n };\n\n /**\n * Check if a HTMLElement or jQuery is disabled\n */\n $.fn.isDisabled = function() {\n let self = $(this),\n prop = 'disabled';\n return typeof self.prop(prop) !== 'undefined' ? self.prop(prop) : self.hasClass(prop);\n };\n\n /**\n * Clear Tooltip for clip board js\n * @param {Object} event\n */\n const clearTooltip = (event) => {\n $(event.currentTarget).removeClass( (index, className) => (className.match(/\\btooltipped-\\S+/g) || []).join(' ') ).removeClass('tooltipped').removeAttr('aria-label');\n };\n\n const showTooltip = (elem, msg) => {\n $(elem).addClass('tooltipped tooltipped-s').attr('aria-label', msg);\n };\n\n const fallbackMessage = (action) =>{\n let actionMsg,\n actionKey = action === 'cut' ? 'X' : 'C';\n\n if (/iPhone|iPad/i.test(navigator.userAgent)) {\n actionMsg = 'No support :(';\n } else if (/Mac/i.test(navigator.userAgent)) {\n actionMsg = 'Press ⌘-' + actionKey + ' to ' + action;\n } else {\n actionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;\n }\n\n return actionMsg;\n };\n\n /**\n * Alias of jQuery.extend()\n * @param {Object} _default\n * @param {Object} _args\n */\n const extend = (_default, _args) => $.extend(true, {}, _default, _args);\n\n\t/*\n\t* Handles product attributes\n\t*\n\t* @since 4.4.18\n\t* */\n\tclass WooFeedCustomFields {\n\n\t\tconstructor( field, status, isTaxonomy ) {\n\t\t\tthis.productCustomFields( field, status, isTaxonomy );\n\t\t}\n\n\t\tcacheClear() {\n\t\t\tlet data = {\n\t\t\t\taction: 'woo_feed_product_attribute_cache_remove',\n\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\n\t\t\t};\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\n\t\t\t\tdata\n\t\t\t});\n\t\t}\n\n\t\tproductCustomFields( field, status = false, isTaxonomy ) {\n\t\t\tlet data = {\n\t\t\t\taction: 'woo_feed_custom_fields_status_change',\n\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\n\t\t\t\tfield,\n\t\t\t\tstatus,\n\t\t\t\tisTaxonomy\n\t\t\t};\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\n\t\t\t\tdata,\n\t\t\t\tsuccess: ( response ) => {\n\t\t\t\t\tif( response.success ) {\n\t\t\t\t\t\tthis.cacheClear();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconsole.log( response );\n\t\t\t\t\t}\n $('#'+field+'-switcher').closest('td').find('.switch-loader').hide();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n let $copyBtn,\n clipboard,\n googleCategories,\n helper = {\n in_array: (needle, haystack) => {\n try {\n return haystack.indexOf(needle) !== -1;\n } catch (e) {\n return false;\n }\n },\n selectize_render_item: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.text)}</div>`, // phpcs:ignore WordPressVIPMinimum.JS.StringConcat.Found,\n ajax_fail: e => {\n console.warn(e);\n alert(e.hasOwnProperty('statusText') && e.hasOwnProperty('status') ? opts.ajax.error + '\\n' + e.statusText + ' (' + e.status + ')' : e);\n },\n /**\n * Initialize Sortable\n * @param {jQuery|HTMLElement} el\n * @param {object} config\n * @param {int|boolean} column\n * @param {function} onDrop\n * @return {jQuery|HTMLElement}\n */\n sortable: (el, config, column, onDrop) => {\n return (el || $('.sorted_table')).each(function() {\n let self = $(this),\n column_count = self.find('tbody > tr:eq(0) > td').length || column || 9;\n self.wf_sortable(extend({\n containerSelector: 'table',\n itemPath: '> tbody',\n itemSelector: 'tr',\n handle: 'i.wf_sortedtable',\n placeholder: `<tr class=\"placeholder\"><td colspan=\"${column_count}\"></td></tr>`,\n onDrop: ($item, container, _super, event) => {\n $item.removeClass(container.group.options.draggedClass).removeAttr('style');\n $(\"body\").removeClass(container.group.options.bodyClass);\n if ( onDrop && 'function' === typeof( onDrop ) ) {\n onDrop( $item, container, _super, event );\n }\n },\n }, config));\n });\n },\n selectize: (el, config) => {\n return (el || $('select.selectize')).not('.selectized').not('.selectize-google-category').each(function() {\n let self = $(this);\n self.selectize(extend({\n create: self.data('create') || false,\n plugins: self.data('plugins') ? self.data('plugins').split(',').map(function(s) {\n return s.trim();\n }) : [],\n //['remove_button'],\n render: {\n item: helper.selectize_render_item\n }\n }, config));\n });\n },\n fancySelect: (el, config) => {\n return (el || $('select.fancySelect')).not('.FancySelectInit').each(function() {\n let self = $(this);\n self.fancySelect(extend({\n maxItemShow: 3\n }, config));\n });\n },\n reindex_config_table: () => {\n $('#table-1').find('tbody tr').each( ( x, el ) => {\n $(el).find('[name]').each( ( x1, el ) => {\n $(el).attr('name', $(el).attr('name').replace(/(\\[\\d\\])/g, `[${x}]`));\n } );\n } );\n },\n common: () => {\n helper.sortable( $('.sorted_table'), {}, 9, helper.reindex_config_table );\n helper.selectize();\n helper.fancySelect($('.outputType'));\n }\n },\n // helper functions\n feedEditor = {\n /**\n * The Editor Form Elem.\n * @type {jQuery|HTMLElement}\n */\n form: null,\n\n /**\n * Initialize The Feed Editor {Tabs...}\n * @returns {void}\n */\n init: function () {\n let self = this;\n self.form = $('.generateFeed');\n if (!self.form.length) return;\n helper.common();\n // noinspection JSUnresolvedVariable\n $(document).trigger('feed_editor_init');\n $(document).trigger(new jQuery.Event('feedEditor.init', {\n target: this.form\n }));\n },\n\n /**\n * Render Merchant info ajax response and handle allowed feed type for selected merchant\n * @param {jQuery|HTMLElement} merchantInfo jQuery dom object\n * @param {jQuery|HTMLElement} feedType jQuery dom object\n * @param {Object} r ajax response object\n */\n renderMerchantInfo: function (merchantInfo, feedType, r) {\n for (let k in r) {\n if (r.hasOwnProperty(k)) {\n merchantInfo.find('.merchant-info-section.' + k + ' .data').html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\n\n if ('feed_file_type' === k) {\n (function() {\n let types = r[k].split(\",\").map(function(t) {\n return t.trim().toLowerCase();\n }).filter(function(t) {\n // noinspection JSUnresolvedVariable\n return t !== '' && t !== opts.na.toLowerCase();\n });\n\n if (types.length) {\n feedType.find('option').removeAttr('selected').each(function() {\n let opt = $(this);\n opt.val() && !helper.in_array(opt.val(), types) ? opt.disabled(!0) : opt.disabled(!1);\n });\n if (types.length === 1) feedType.find('option[value=\"' + types[0] + '\"]').attr('selected', 'selected');\n } else feedType.find('option').disabled(!1);\n })();\n }\n }\n }\n\n merchantInfo.find('.spinner').removeClass('is-active');\n feedType.disabled(!1);\n feedType.trigger('change');\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n feedType.parent().find('.spinner').removeClass('is-active');\n },\n\n /**\n * Render Feed Template Tabs and settings while creating new feed.\n * @param {jQuery|HTMLElement} feedForm feed from query dom object\n * @param {object} r merchant template ajax response object\n */\n renderMerchantTemplate: function (feedForm, r) {\n let _loop = function _loop(k) {\n if (r.hasOwnProperty(k)) {\n if ('tabs' === k) {\n // noinspection JSUnresolvedFunction\n feedForm.html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\n } else {\n let contentSettings = $('[name=\"' + k + '\"]');\n\n if (contentSettings.length) {\n contentSettings.each(function() {\n let elem = $(this);\n\n if (elem.is('select')) {\n elem.find('[value=\"' + r[k] + '\"]').prop('selected', true);\n } else if ((elem.is('[type=checkbox]') || elem.is('[type=radio]')) && elem.val() === r[k]) {\n elem.prop('checked', true);\n } else {\n elem.val(r[k]); // type=text\n }\n }).trigger('change');\n }\n }\n }\n };\n\n for (let k in r) {\n _loop(k);\n }\n\n feedEditor.init();\n }\n },\n // Feed Editor Table\n merchantInfoCache = [],\n merchantTemplateCache = [],\n tooltip = () => {\n // Tooltip only Text\n $('.wfmasterTooltip')\n .hover(function () {\n // Hover over code\n let self = $(this), title = self.attr('wftitle');\n self.data('tipText', title).removeAttr('wftitle');\n $('<p class=\"wftooltip\"></p>').text(title).appendTo('body').fadeIn('slow');\n }, function () {\n // Hover out code\n let self = $(this);\n self.attr('wftitle', self.data('tipText'));\n $('.wftooltip').remove();\n })\n .mousemove(function (e) {\n $('.wftooltip').css({\n top: e.pageY + 10,\n left: e.pageX + 20\n });\n });\n },\n clip = () => {\n $copyBtn = $('.toClipboard');\n if (!ClipboardJS.isSupported() || /iPhone|iPad/i.test(navigator.userAgent)) {\n $copyBtn.find('img').hide(0);\n } else {\n $copyBtn.each(function() {\n $(this).on('mouseleave', clearTooltip).on('blur', clearTooltip);\n });\n clipboard = new ClipboardJS('.toClipboard');\n clipboard.on('error', function(event) {\n showTooltip(event.trigger, fallbackMessage(event.action));\n }).on('success', function(event) {\n showTooltip(event.trigger, 'Copied');\n });\n }\n };\n\n /**\n * Feed Generator Module\n */\n class feedGenerator {\n\n /**\n * Constructor\n * @constructor\n */\n constructor() {\n this._feed = opts.generator.feed; // wf_config+xxxx\n this._limit = opts.generator.limit;\n this._progress = 0;\n this._timer = null;\n this._color = false;\n // batch info\n this._total_batch = 0;\n this._current_batch = 0;\n this._product_ids = [];\n this._progress_per_batch = 0;\n this._refresh = true;\n // noinspection JSUnresolvedVariable\n this._regenerate = opts.generator.regenerate;\n window.isRegenerating = false;\n this._all_btn = $('.wpf_regenerate');\n this._current_btn = $(`#${this._feed.replace( 'wf_config', 'wf_feed_' )}`);\n this._current_btn_label = '';\n }\n\n /**\n * Init Hooks (Event)\n * @return {feedGenerator}\n */\n init() {\n let self = this;\n if ( '' !== this._feed && this._regenerate && false === window.isRegenerating ) {\n this.generate();\n }\n\n //thickbox body add feed plugin class to make it unique and custom style\n let current_page_query = window.location.search;\n let params = new URLSearchParams(current_page_query);\n let page_name = params.get(\"page\");\n if( \"webappick-manage-feeds\" === page_name ) {\n $('body').addClass('woo-import-popup-body');\n }\n\n $(document).on('click', '.woo-feed-campaign-close-button', function(event) {\n event.preventDefault();\n\n $(this).parent('.woo-feed-promotion').hide();\n let condition = $(this).data('condition');\n if(1 === condition) {\n wpAjax.post( 'woo_feed_hide_promotion', {\n _ajax_nonce: opts.nonce,\n condition: condition,\n } ).then( response => {\n self._log( response );\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n } );\n }\n });\n\n $(document).on('click', '.wpf_regenerate', function(event) {\n event.preventDefault();\n self._current_btn = $( this );\n if( self._current_btn.hasClass('disabled') || window.isRegenerating === true ) return;\n self._feed = self._current_btn.attr('id').replace( 'wf_feed_', 'wf_config' );\n if( '' !== self._feed ) {\n self.generate();\n }\n });\n return this;\n }\n\n _block_button() {\n if ( this._all_btn.length ) {\n this._all_btn.addClass('disabled');\n }\n if ( this._current_btn.length ) {\n this._current_btn.find('span').addClass('wpf_spin reverse_spin');\n this._current_btn_label = this._current_btn.attr('title');\n // noinspection JSUnresolvedVariable\n this._current_btn.attr( 'aria-label', opts.regenerate ).attr( 'title', opts.regenerate );\n }\n }\n\n _unblock_button() {\n if ( this._all_btn.length ) {\n this._all_btn.removeClass('disabled');\n }\n if ( this._current_btn.length ) {\n this._current_btn.find('span').removeClass('wpf_spin');\n this._current_btn.find('span').removeClass('reverse_spin');\n this._current_btn.attr( 'aria-label', this._current_btn_label ).attr( 'title', this._current_btn_label );\n }\n }\n\n /**\n * Generate Feed\n * @return void\n */\n generate() {\n let self = this;\n window.isRegenerating = true;\n this._block_button();\n this._resetProgressBar();\n this._progressBarActive();\n this._log( 'Counting Total Products' );\n this._updateProgressStatus( 'Fetching products.' );\n this._get_product_ids().then( response => {\n this._progress = 10;\n self._log( {response} );\n if(response.success) {\n self._log( `Total ${response.total} Products found.` );\n self._product_ids = response.product;\n self._total_batch = this._product_ids.length;\n self._current_batch = 0;\n self._progress_per_batch = ( 90 - this._progress ) / this._total_batch;\n self._process_batch();\n self._updateProgressStatus( 'Processing Products...' );\n } else {\n self._updateProgressStatus( response.data.message );\n }\n }).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Get Product Ids\n * @returns {$.promise}\n * @private\n */\n _get_product_ids() {\n this._progress = 5;\n return wpAjax.post( 'get_product_information', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n limit: this._limit,\n } );\n }\n\n /**\n * Run the Batch\n * @private\n */\n _process_batch() {\n let self = this;\n let status = `Processing Batch ${this._current_batch+1} of ${this._total_batch}`;\n this._updateProgressStatus( status );\n this._log( status );\n wpAjax.post( 'make_batch_feed', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n products: this._product_ids[this._current_batch],\n loop: this._current_batch,\n } ).then( response => {\n self._current_batch++;\n self._log( `Batch ${self._current_batch} Completed` );\n self._log( response );\n if ( self._current_batch < self._total_batch ) {\n self._process_batch();\n self._progress += self._progress_per_batch;\n }\n if ( self._current_batch === self._total_batch ) {\n self._save_feed_file();\n }\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Save Feed Data from temp to feed file\n * @private\n */\n _save_feed_file() {\n let self = this;\n this._log( 'Saving feed file' );\n this._updateProgressStatus( 'Saving feed file' );\n wpAjax.post( 'save_feed_file', {\n _ajax_nonce: opts.nonce,\n feed: this._feed,\n } ).then( response => {\n self._log( response );\n self._progress = 100;\n if ( self._refresh ) {\n window.location.href = `${opts.pages.list.feed}&link=${response.url}&cat=${response.cat}`;\n }\n setTimeout( function(){\n self._stopProgressBar();\n setTimeout( function(){\n self._resetProgressBar( true );\n self._unblock_button();\n }, 3000 );\n }, 2500 );\n } ).fail( error => {\n self._log( error );\n self._updateProgressStatus( error.message );\n self._color = 'red';\n setTimeout( function(){\n self._stopProgressBar();\n self._unblock_button();\n }, 1500 );\n } );\n }\n\n /**\n * Console log wrapper with debug settings.\n * @param data\n * @returns {feedGenerator}\n * @private\n */\n _log( data ) {\n // noinspection JSUnresolvedVariable\n if ( opts.wpf_debug ) {\n console.log( data );\n }\n return this;\n }\n\n /**\n * Run the progressbar refresh interval\n * @param {int} refreshInterval\n * @returns {feedGenerator}\n * @private\n */\n _progressBarActive( refreshInterval = 0 ) {\n let self = this;\n this._toggleProgressBar( true );\n this._timer = setInterval( function(){\n self._updateProgressBar();\n }, refreshInterval || 1000 );\n return this;\n }\n\n /**\n * Stop Progressbar\n * @returns {feedGenerator}\n * @private\n */\n _stopProgressBar() {\n clearInterval( this._timer );\n return this;\n }\n\n /**\n * Reset Progressbar\n * @returns {feedGenerator}\n * @private\n */\n _resetProgressBar( update ) {\n this._toggleProgressBar( false );\n this._updateProgressStatus( '' );\n clearInterval( this._timer );\n this._color = false;\n this._timer = null;\n this._progress = 0;\n if ( update ) {\n this._updateProgressBar();\n }\n return this;\n }\n\n /**\n * Show hide the progress bar el\n * @param status\n * @returns {feedGenerator}\n * @private\n */\n _toggleProgressBar( status ) {\n let table = $('#feed_progress_table');\n if ( status ) {\n table.show();\n } else {\n table.hide();\n }\n return this;\n }\n\n /**\n * Update Progress bar text status\n * @param {string} status\n * @returns {feedGenerator}\n * @private\n */\n _updateProgressStatus( status ) {\n $( '.feed-progress-status' ).html( status );\n return this;\n }\n\n _getErrorMessageByCode( error ){\n let progress_message = $( '.feed-progress-status' );\n progress_message.css( {'color':this._color});\n $( '.feed-progress-percentage' ).css( {'color':this._color});\n $( '.wpf_spin' ).css( {'color':this._color});\n\n let message=error.status +' : '+ error.statusText+'. ';\n if(500===error.status){\n message+= \"Please increase your PHP max_execution_time. Please <a target='_blank' href='https://webappick.com/docs/woo-feed/faq-for-woocommerce-product-feed/how-to-solve-processing-10-feed-generation-stuck-error/'>read this doc</a>.\";\n }\n\n this._updateProgressStatus(message);\n\n }\n\n /**\n * Update Progress Data\n * hooked with setInterval\n * @private\n */\n _updateProgressBar() {\n let percentage = $( '.feed-progress-percentage' ),\n bar = $( '.feed-progress-bar-fill' ),\n _progress = `${Math.round( this._progress )}%`;\n bar.css( {\n width: _progress,\n } );\n percentage.text( _progress );\n }\n }\n // expose to the global scope\n window.wf = {\n helper: helper,\n feedEditor: feedEditor,\n generator: feedGenerator,\n };\n\n $(window).on('load', function() {\n // Template loading ui conflict\n if ($(location).attr(\"href\").match(/webappick.*feed/g) !== null) {\n $('#wpbody-content').addClass('woofeed-body-content');\n }\n\n // on edit page show item wrapper dropdown\n let current_page_url_query = window.location.search;\n let urlParams = new URLSearchParams(current_page_url_query);\n let page_action = urlParams.get('action');\n\n // ClipBoardJS\n clip();\n // postbox toggle\n postboxes.add_postbox_toggles(pagenow);\n // initialize generator\n let generator = new feedGenerator();\n generator.init();\n // noinspection JSUnresolvedVariable\n if( '' !== opts.generator.feed && opts.generator.regenerate ) {\n\n }\n // initialize editor\n feedEditor.init();\n helper.common(); // Generate Feed Add Table Row\n tooltip();\n // validate feed editor\n $(\".generateFeed\").validate();\n\n // document events\n $(document)\n .on('blur', 'input[name=\"wfDAttributeName\"]', function(e) {\n e.preventDefault();\n let attr_name = $(this).val();\n attr_name = attr_name.toLowerCase();\n attr_name = attr_name.split(' ').join('_');\n\n $('#wfDAttributeCode').val(attr_name);\n\n })\n .on('click', '[data-toggle_slide]', function(e) {\n e.preventDefault();\n $($(this).data('toggle_slide')).slideToggle('fast');\n })\n // XML Feed Wrapper\n .on('click', '#wf_newRow', function () {\n let tbody = $('#table-1 tbody'),\n template = $('#feed_config_template').text().trim().replace(/__idx__/g, tbody.find('tr').length);\n tbody.append(template);\n helper.fancySelect($('.outputType'));\n })\n // feed delete alert.\n .on('click', '.single-feed-delete', function (event) {\n event.preventDefault();\n // noinspection JSUnresolvedVariable\n if (confirm(opts.form.del_confirm)) {\n window.location.href = $(this).attr('val');\n }\n })\n // clear cache data.\n .on('click', '.wf_clean_cache_wrapper', function(event) {\n event.preventDefault();\n var nonce = $('.woo-feed-clean-cache-nonce').val();\n var loader = $('.woo-feed-cache-loader');\n\n //show loader\n loader.show();\n\n // passed cache nonce\n wpAjax.post('clear_cache_data', {\n _ajax_clean_nonce: nonce\n }).then(function (response) {\n if( response.success ) {\n loader.hide(); //hide loader\n location.reload();\n }\n }).fail(function (e) {\n console.log('something wrong');\n });\n\n })// Copy Status\n .on('click', '#woo-feed-copy-status-btn', function(event) {\n event.preventDefault();\n let button = $('#woo-feed-copy-status-btn');\n let status_area = $('#woo-feed-status-area');\n button.val('Copied');\n status_area.css('visibility','visible');\n status_area.select();\n\n document.execCommand('copy');\n })\n // feed value dropdown change.\n .on('change', '.wf_attr.wf_attributes', function(event) {\n event.preventDefault();\n\n $('.fancy-picker-picked').trigger(\"click\"); // trigger fancy select box clicked\n\n // price attributes\n var price_attributes = ['price', 'current_price', 'sale_price', 'price_with_tax', 'current_price_with_tax', 'sale_price_with_tax', 'shipping_cost'];\n // current value\n var current_attribute_value = $(this).val();\n var outputSelect = $(this).parents('tr').find('.outputType');\n var fancyOption = $(this).parents('tr').find('.fancy-picker-content .fancy-picker-option');\n var fancyDataPicker = $(this).parents('tr').find('.fancy-picker-data span');\n var selectIf, selectKey;\n\n // when any attribute is selected, pick the key\n if( price_attributes.includes(current_attribute_value) ) {\n // when select any price attribute\n selectIf = 'for_price';\n selectKey = \"Price\";\n } else if ( \"\" !== current_attribute_value && -1 !== current_attribute_value.indexOf('wf_taxo') ) {\n\n // when select any custom taxonomy\n selectIf = 'for_custom_taxo';\n selectKey = \"parent_if_empty\";\n } else {\n\n selectIf = 'for_all';\n selectKey = 'Default';\n }\n\n // remove selected class from old selected option\n fancyOption.removeClass('selected');\n\n // when value dropdown is selected as price or any custom taxonomy\n if( selectIf === 'for_custom_taxo' || selectIf === 'for_price' ) {\n\n // update \"Option Type\" when select key matches\n fancyOption.each(function(item) {\n if( selectKey === $(this).text() ) {\n $(this).addClass('selected');\n fancyDataPicker.text(selectKey);\n outputSelect.find(\"option\").text(selectKey);\n outputSelect.find(\"option\").val( $(this).data('value') );\n }\n });\n }\n\n })\n // bulk delete alert.\n .on('click', '#doaction, #doaction2', function () {\n // noinspection JSUnresolvedVariable\n return confirm(opts.form.del_confirm_multi);\n })\n // Generate Feed Table Row Delete\n .on('change', '.dType', function () {\n let self = $(this),\n type = self.val(),\n row = self.closest('tr');\n\n if (type === 'pattern') {\n row.find('.value_attribute').hide();\n row.find('.value_pattern').show();\n } else if (type === 'attribute') {\n row.find('.value_attribute').show();\n row.find('.value_pattern').hide();\n } else if (type === 'remove') {\n row.find('.value_attribute').hide();\n row.find('.value_pattern').hide();\n }\n })\n // Generate Feed Form Submit\n .on('click', '.delRow', function (e) {\n e.preventDefault();\n $(this).closest('tr').remove();\n helper.reindex_config_table();\n })\n .on('submit', '#generateFeed', function () {\n // Feed Generating form validation\n $(this).validate();\n\n if ($(this).valid()) {\n $(\".makeFeedResponse\")\n .show()\n .html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n }\n })\n // Generate Update Feed Form Submit\n .on('submit', '#updatefeed', function (e, data) {\n // Feed Generating form validation\n $(this).validate();\n\n if ($(this).valid()) {\n $(\".makeFeedResponse\")\n .show()\n .html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${data && data.save ? opts.form.save : opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n }\n })\n .on( 'ready woo_feed_config_loaded', function(){\n\n if( $('#ftpenabled').val() === '0' ){\n $('.google-merchant-message').hide('slow');\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').attr('disabled','disabled');\n } else {\n if( $('#provider').val() === 'google' ) {\n $('.google-merchant-message').show('slow');\n } else {\n $('.google-merchant-message').hide('slow');\n }\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').removeAttr('disabled');\n }\n\n $('#ftpenabled').on('change', function(){\n if( $('#ftpenabled').val() === '0' ){\n $('.google-merchant-message').hide('slow');\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').attr('disabled','disabled');\n } else {\n\n $('.woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) input, .woo-feed-ftp .ftpconfig tr:not(.ftpcontroller) select').removeAttr('disabled');\n\n // Google merchant specific message\n if( $('#provider').val() === 'google' ){\n $('.google-merchant-message').show('slow');\n } else {\n $('.google-merchant-message').hide('slow');\n }\n\n }\n });\n })\n .on('change', '.ftporsftp', function () {\n let server = $(this).val(),\n status = $('.ssh2_status');\n\n if (server === 'sftp') {\n // noinspection JSUnresolvedVariable\n status.show().css('color', 'dodgerblue').text(opts.form.sftp_checking);\n wpAjax.post('get_ssh2_status', {\n _ajax_nonce: opts.nonce,\n server: server\n }).then(function (response) {\n if (response === 'exists') {\n // noinspection JSUnresolvedVariable\n status.css('color', '#2CC185').text(opts.form.sftp_available);\n setTimeout(function () {\n status.hide();\n }, 1500);\n } else {\n // noinspection JSUnresolvedVariable\n status.show().css('color', 'red').text(opts.form.sftp_warning);\n }\n }).fail(function (e) {\n status.hide();\n helper.ajax_fail(e);\n });\n } else {\n status.hide();\n }\n })\n .on('click', '[name=\"save_feed_config\"]', function (e) {\n e.preventDefault();\n $('#updatefeed').trigger('submit', {\n save: true\n });\n })\n .on('change', '#provider', function (event) {\n event.preventDefault();\n\n let merchant = $(this).val(),\n templateName = $(this).find(':selected').text(),\n name = $('#filename').val(),\n feedType = $(\"#feedType\"),\n feedForm = $(\"#providerPage\"),\n merchantInfo = $('#feed_merchant_info'); // set loading..\n\n // noinspection JSUnresolvedVariable\n feedForm.html('<h3><span style=\"float:none;margin: -3px 0 0;\" class=\"spinner is-active\"></span> ' + opts.form.loading_tmpl + '</h3>'); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n\n merchantInfo.find('.spinner').addClass('is-active');\n feedType.disabled(!0); // disable dropdown\n\n feedType.parent().find('.spinner').addClass('is-active');\n merchantInfo.find('.merchant-info-section .data').html(''); // remove previous data\n // Get Merchant info for selected Provider/Merchant\n\n if (merchantInfoCache.hasOwnProperty(merchant)) {\n feedEditor.renderMerchantInfo(merchantInfo, feedType, merchantInfoCache[merchant]);\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n } else {\n wpAjax.send('woo_feed_get_merchant_info', {\n type: 'GET',\n data: {\n nonce: opts.nonce,\n provider: merchant,\n templateName: templateName\n }\n }).then(function (r) {\n merchantInfoCache[merchant] = r;\n feedEditor.renderMerchantInfo(merchantInfo, feedType, r);\n }).then(function(){\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n }).fail(helper.ajax_fail);\n } // Get FeedForm For Selected Provider/Merchant\n\n\n if (merchantTemplateCache.hasOwnProperty(merchant)) {\n feedEditor.renderMerchantTemplate(feedForm, merchantTemplateCache[merchant]);\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n } else {\n wpAjax.post('get_feed_merchant', {\n _ajax_nonce: opts.nonce,\n merchant: merchant\n }).then(function (r) {\n merchantTemplateCache[merchant] = r;\n feedEditor.renderMerchantTemplate(feedForm, r);\n $('#utm_source').val(templateName);\n $('#utm_campaign').val(name);\n //when merchant is bing, change delimiter and enclosure\n if( 'bing' === merchant ) {\n //delimiter value\n $(\"#delimiter option\").removeAttr('selected');\n $(\"#delimiter option[value=\\\"tab\\\"]\").attr('selected', 'selected');\n\n //enclosure value\n $(\"#enclosure option\").removeAttr('selected');\n $(\"#enclosure option[value=\\\" \\\"]\").attr('selected', 'selected');\n }\n\n //reviewer options hide\n if( 'google_product_review' !== merchant) {\n $('.wf_attributes option[value=\"reviewer_name\"]').hide();\n }\n }).then(function(){\n\n /**\n * Triggers after merchant configuration is fetched & loaded\n * */\n $(document).trigger('woo_feed_config_loaded');\n\n }).fail(helper.ajax_fail);\n }\n })\n // Feed Active and Inactive status change via ajax\n .on('change', '.woo_feed_status_input', function () {\n let self = $(this);\n wpAjax.post('update_feed_status', {\n _ajax_nonce: opts.nonce,\n feedName: self.val(),\n status: self[0].checked ? 1 : 0\n });\n });\n // event with trigger\n $(document)\n .on('change', '[name=\"is_outOfStock\"], [name=\"product_visibility\"]', function () {\n let outOfStockVisibilityRow = $('.out-of-stock-visibility');\n if ($('[name=\"is_outOfStock\"]:checked').val() === 'n' && $('[name=\"product_visibility\"]:checked').val() === '1') {\n outOfStockVisibilityRow.show();\n } else {\n outOfStockVisibilityRow.hide();\n }\n })\n .on('change', '.attr_type', function () {\n // Attribute type selection\n let self = $(this),\n type = self.val(),\n row = self.closest('tr');\n\n if (type === 'pattern') {\n row.find('.wf_attr').hide();\n row.find('.wf_attr').val('');\n row.find('.wf_default').show();\n } else {\n row.find('.wf_attr').show();\n row.find('.wf_default').hide();\n row.find('.wf_default').val('');\n }\n })\n .on('change', '.wf_mattributes, .attr_type', function () {\n let row = $(this).closest('tr'),\n attribute = row.find('.wf_mattributes'),\n type = row.find('.attr_type'),\n valueColumn = row.find('td:eq(4)'),\n provider = $('#provider').val();\n\n // noinspection JSUnresolvedVariable\n if (opts.form.google_category.hasOwnProperty(attribute.val()) && type.val() === 'pattern' && helper.in_array(provider, opts.form.google_category[attribute.val()])) {\n if (valueColumn.find('select.selectize').length === 0) {\n valueColumn.find('input.wf_default').remove();\n valueColumn.append('<span class=\"wf_default wf_attributes\"><select name=\"default[]\" class=\"selectize\"></select></span>');\n // noinspection JSUnresolvedVariable\n valueColumn.append(`<span style=\"font-size:x-small;\"><a style=\"color: red\" href=\"https://webappick.com/docs/woo-feed/feed-configuration/how-to-map-store-category-with-merchant-category/\" target=\"_blank\">${opts.learn_more}</a></span>`);\n\n if (!googleCategories) {\n valueColumn.append('<span class=\"spinner is-active\" style=\"margin: 0;\"></span>');\n }\n\n let select = valueColumn.find('.wf_attributes select');\n // noinspection JSUnresolvedVariable\n helper.selectize(select, {\n preload: true,\n placeholder: opts.form.select_category,\n load: function load(query, cb) {\n if (!googleCategories) {\n wpAjax.send('get_google_categories', {\n type: 'GET',\n data: {\n _ajax_nonce: opts.nonce,\n action: \"get_google_categories\",\n provider: provider\n }\n }).then(function (r) {\n googleCategories = r;\n cb(googleCategories);\n valueColumn.find('.spinner').remove();\n }).fail(helper.ajax_fail);\n } else {\n cb(googleCategories);\n }\n }\n });\n }\n } else {\n if (attribute.val() !== 'current_category' && valueColumn.find('input.wf_default').length === 0) {\n valueColumn.find('span').remove();\n valueColumn.append('<input autocomplete=\"off\" class=\"wf_default wf_attributes\" type=\"text\" name=\"default[]\" value=\"\">');\n\n if (type.val() !== 'pattern') {\n valueColumn.find('input.wf_default').hide();\n }\n }\n }\n })\n .on('change', '#feedType,#provider', function (e) {\n let type = $('#feedType').val(),\n provider = $('#provider').val(),\n itemWrapper = $('.itemWrapper'),\n wf_csv_txt = $('.wf_csvtxt');\n\n // noinspection JSUnresolvedVariable\n if (type !== '' && helper.in_array(provider, opts.form.item_wrapper_hidden)) {\n itemWrapper.hide();\n }\n\n //when feed type is changed\n if( 'feedType' === e.target.id ) {\n if (type === 'csv' || type === 'txt' || type === 'tsv') {\n itemWrapper.hide();\n wf_csv_txt.show();\n\n if( 'tsv' === type ) {\n $('#delimiter option:last').prop(\"selected\", \"selected\");\n } else if( 'csv' === type ) {\n $('#delimiter option:first').prop(\"selected\", \"selected\");\n }\n } else if( 'xml' === type ) {\n itemWrapper.show();\n wf_csv_txt.hide();\n } else if( 'json' === type ) {\n itemWrapper.hide();\n wf_csv_txt.hide();\n }\n }\n\n })\n .trigger('change');\n\n\n $(document)\n\t\t\t.on('click', '.woofeed-custom-fields [id*=\"-switcher\"]', function () {\n\t\t\t $(this).closest('td').find('.switch-loader').show();\n\t\t\t\tlet field = $(this).attr( 'id' ).split( '-' )[0],\n\t\t\t\t\tisTaxonomy = $(this).data( 'taxonomy' ),\n\t\t\t\t\tstatus = $(this).prop( 'checked' );\n\t\t\t\tnew WooFeedCustomFields( field, status, isTaxonomy );\n\n\t\t\t})\n\n\t\t\t// Remove sticky cart on feature page\n\t\t\t.ready(function() {\n\t\t\t\tvar s = $(\".wapk-feed-buy-now-container\");\n\t\t\t\tvar pos = s.position();\n\t\t\t\t$(window).scroll(function() {\n\t\t\t\t\tvar windowpos = $(window).scrollTop();\n\t\t\t\t\tif ( windowpos <= 5000 ) {\n\t\t\t\t\t\ts.addClass(\"fixed\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts.removeClass(\"fixed\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n });\n\n $(document)\n\t\t.on('click', '#woo-feed-debug-log-download', function (e) {\n\t\t\te.preventDefault();\n\t\t\t$(\"<a />\", {\n\t\t\t\tdownload: new Date() + \".log\",\n\t\t\t\thref: URL.createObjectURL(\n\t\t\t\t\tnew Blob([$(\"#woo-feed-debug-log\").val()], {\n\t\t\t\t\t\ttype: \"text/plain\"\n\t\t\t\t\t})),\n\t\t\t}).appendTo(\"body\")[0].click();\n\t\t})\n\t\t.on('keyup', '#filename', function(e) {\n\t\t\tvar name = $('#filename').val();\n\t\t\t$('#utm_campaign').val(name);\n\t\t})\n\n // var providerVal = $('#category-mapping-form #providers').val();\n\t\t// console.log(providerVal)\n\t\t.on('change', '#category-mapping-form #providers', function(e) {\n\t\t\tvar provider = $(this).find(':selected').val(),\n\t\t\t\tgoogleMap = ['google', 'facebook', 'pinterest', 'bing', 'bing_local_inventory', 'snapchat'];\n\t\t\tif( googleMap.indexOf(provider) !== -1 ) {\n\t\t\t\t$('input[id*=\"cat_mapping_\"]').css('display', 'none');\n\t\t\t\t$('.wf_default.wf_attributes').css('display', 'block').css('width', '100%');\n\t\t\t\t// $('#category-mapping-form .dashicons').css('display', 'block');\n\t\t\t} else {\n\t\t\t\t$('input[id*=\"cat_mapping_\"]').css('display', 'block');\n\t\t\t\t$('.wf_default.wf_attributes').css('display', 'none').css('width', '100%');\n\t\t\t\t// $('#category-mapping-form .dashicons').css('display', 'none');\n\t\t\t}\n\t\t})\n\n // Copy parent category ids to child categories.\n\t\t.on('click', 'span[id*=\"cat-map-\"]', function(e) {\n\t\t\te.preventDefault();\n\t\t\tvar providerName = $('#category-mapping-form #providers').val(),\n\t\t\t\tgoogleMap = ['google', 'facebook', 'pinterest', 'bing', 'bing_local_inventory', 'snapchat'],\n\t\t\t\tcatId = $(this).attr('id').replace(/[^\\d.]/g, ''),\n\t\t\t\tgroupId = 'group-child-' + catId;\n\n\t\t\tif( googleMap.indexOf(providerName) !== -1) {\n\t\t\t\tvar catField = $(this).parents('tr').find('.selectized').val();\n\n\t\t\t\tif (catField) {\n\t\t\t\t\t$('.' + groupId).parents('tr').find('select').each(function (i, v) {\n\t\t\t\t\t\t$(v).data('selectize').setValue(catField);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tvar value = $('#cat_mapping_'+catId).val();\n\t\t\t\t$('.'+groupId).parents('tr').find('input').val(value);\n\t\t\t}\n\n\t\t});\n\n $(document).ready(function (){\n\n wpAjax.send('get_google_categories', {\n type: 'GET',\n data: {\n _ajax_nonce: opts.nonce,\n action: \"get_google_categories\",\n // provider: provider\n }\n }).then(function (response) {\n $('.selectize-google-category').selectize({\n valueField: 'value',\n labelField: 'text',\n placeholder: 'Select a category',\n searchField: ['value', 'text'],\n options: response,\n render: {\n option: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.value + ' - ' + data.text)}</div>`,\n item: (data, escape) => `<div class=\"item wapk-selectize-item\">${escape(data.value + ' - ' + data.text)}</div>`\n }\n });\n }).fail(helper.ajax_fail);\n\n\n\n });\n\n /*\n * Issue fix for feed edit page unsupported `Feed Type` not disabling\n *\n * @since 4.4.22\n * */\n $(document).on( \"feed_editor_init\", function(){\n\n let types = $('.merchant-info-section.feed_file_type .data').html().split(\",\").map(function(t) {\n return t.trim().toLowerCase();\n });\n\n let feedType = $(\"#feedType\");\n\n if (types.length) {\n feedType.find('option').each(function() {\n let opt = $(this);\n opt.val() && !helper.in_array(opt.val(), types) ? opt.disabled(!0) : opt.disabled(!1);\n });\n if (types.length === 1) feedType.find('option[value=\"' + types[0] + '\"]').attr('selected', 'selected');\n } else feedType.find('option').disabled(!1);\n\n } );\n\n})(jQuery, window, document, wp.ajax, wpf_ajax_obj);\n"]}
|
includes/classes/class-woo-feed-dropdown.php
CHANGED
@@ -131,12 +131,8 @@ class Woo_Feed_Dropdown {
|
|
131 |
list( $catId, $cat ) = explode( '-', $line );
|
132 |
$catId = (int) trim( $catId );
|
133 |
$cat = trim( $cat );
|
134 |
-
|
135 |
-
|
136 |
-
$catId,
|
137 |
-
selected( $selected, is_numeric( $selected ) ? $catId : $cat, false ),
|
138 |
-
$cat
|
139 |
-
);
|
140 |
}
|
141 |
}
|
142 |
if ( ! empty( $str ) ) {
|
@@ -202,7 +198,7 @@ class Woo_Feed_Dropdown {
|
|
202 |
$customAttributes = $wpdb->get_results( $sql ); // phpcs:ignore
|
203 |
|
204 |
if ( ! empty( $customAttributes ) ) {
|
205 |
-
foreach ( $customAttributes as $
|
206 |
$product_attr = maybe_unserialize( $value->type );
|
207 |
if ( ! empty( $product_attr ) && is_array( $product_attr ) ) {
|
208 |
foreach ( $product_attr as $key => $arr_value ) {
|
@@ -312,7 +308,6 @@ class Woo_Feed_Dropdown {
|
|
312 |
$attributes = array(
|
313 |
'--1' => esc_html__( 'Primary Attributes', 'woo-feed' ),
|
314 |
'id' => esc_html__( 'Product Id', 'woo-feed' ),
|
315 |
-
'parent_id' => esc_html__( 'Parent Product Id (WPML)', 'woo-feed' ),
|
316 |
'title' => esc_html__( 'Product Title', 'woo-feed' ),
|
317 |
'parent_title' => esc_html__( 'Parent Title', 'woo-feed' ),
|
318 |
'description' => esc_html__( 'Product Description', 'woo-feed' ),
|
131 |
list( $catId, $cat ) = explode( '-', $line );
|
132 |
$catId = (int) trim( $catId );
|
133 |
$cat = trim( $cat );
|
134 |
+
$is_selected = selected( $selected, is_numeric( $selected ) ? $catId : $cat, false );
|
135 |
+
$str .= "<option value='{$catId}' {$is_selected} >{$cat}</option>";
|
|
|
|
|
|
|
|
|
136 |
}
|
137 |
}
|
138 |
if ( ! empty( $str ) ) {
|
198 |
$customAttributes = $wpdb->get_results( $sql ); // phpcs:ignore
|
199 |
|
200 |
if ( ! empty( $customAttributes ) ) {
|
201 |
+
foreach ( $customAttributes as $value ) {
|
202 |
$product_attr = maybe_unserialize( $value->type );
|
203 |
if ( ! empty( $product_attr ) && is_array( $product_attr ) ) {
|
204 |
foreach ( $product_attr as $key => $arr_value ) {
|
308 |
$attributes = array(
|
309 |
'--1' => esc_html__( 'Primary Attributes', 'woo-feed' ),
|
310 |
'id' => esc_html__( 'Product Id', 'woo-feed' ),
|
|
|
311 |
'title' => esc_html__( 'Product Title', 'woo-feed' ),
|
312 |
'parent_title' => esc_html__( 'Parent Title', 'woo-feed' ),
|
313 |
'description' => esc_html__( 'Product Description', 'woo-feed' ),
|
includes/classes/class-woo-feed-products-v3.php
CHANGED
@@ -2200,8 +2200,27 @@ class Woo_Feed_Products_v3
|
|
2200 |
*/
|
2201 |
protected function link($product)
|
2202 |
{
|
2203 |
-
|
2204 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2205 |
$utm = [
|
2206 |
'utm_source' => str_replace(' ', '+', $utm['utm_source'] ),
|
2207 |
'utm_medium' => str_replace(' ', '+', $utm['utm_medium'] ),
|
@@ -2210,12 +2229,11 @@ class Woo_Feed_Products_v3
|
|
2210 |
'utm_content' => str_replace(' ', '+', $utm['utm_content'] ),
|
2211 |
];
|
2212 |
|
2213 |
-
|
2214 |
-
}
|
2215 |
|
2216 |
-
|
2217 |
|
2218 |
-
return
|
2219 |
}
|
2220 |
|
2221 |
/**
|
2200 |
*/
|
2201 |
protected function link($product)
|
2202 |
{
|
2203 |
+
|
2204 |
+
$link = $product->get_permalink();
|
2205 |
+
|
2206 |
+
$link = $this->add_utm_tracker( $link );
|
2207 |
+
|
2208 |
+
return apply_filters('woo_feed_filter_product_link', $link, $product, $this->config);
|
2209 |
+
}
|
2210 |
+
|
2211 |
+
/**
|
2212 |
+
* Adding UTM Tracker Query Arguments to URL
|
2213 |
+
* @param string $url
|
2214 |
+
*
|
2215 |
+
* @return string $url
|
2216 |
+
* @since 4.4.26
|
2217 |
+
*/
|
2218 |
+
protected function add_utm_tracker( $url ){
|
2219 |
+
|
2220 |
+
$utm = $this->config[ 'campaign_parameters' ];
|
2221 |
+
|
2222 |
+
if( !empty( $utm['utm_source'] ) && !empty( $utm['utm_medium'] ) && !empty( $utm['utm_campaign'] ) ){
|
2223 |
+
|
2224 |
$utm = [
|
2225 |
'utm_source' => str_replace(' ', '+', $utm['utm_source'] ),
|
2226 |
'utm_medium' => str_replace(' ', '+', $utm['utm_medium'] ),
|
2229 |
'utm_content' => str_replace(' ', '+', $utm['utm_content'] ),
|
2230 |
];
|
2231 |
|
2232 |
+
$url = add_query_arg( array_filter( $utm ), $url );
|
|
|
2233 |
|
2234 |
+
}
|
2235 |
|
2236 |
+
return $url;
|
2237 |
}
|
2238 |
|
2239 |
/**
|
languages/woo-feed.pot
CHANGED
@@ -148,7 +148,7 @@ msgstr ""
|
|
148 |
msgid "Category Mapping"
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: admin/class-woo-feed-admin.php:234, admin/class-woo-feed-admin.php:234, includes/classes/class-woo-feed-dropdown.php:
|
152 |
msgid "WP Options"
|
153 |
msgstr ""
|
154 |
|
@@ -569,7 +569,7 @@ msgstr ""
|
|
569 |
msgid "Cost of good sold"
|
570 |
msgstr ""
|
571 |
|
572 |
-
#: includes/helper.php:2885, includes/classes/class-woo-feed-dropdown.php:
|
573 |
msgid "Availability Date"
|
574 |
msgstr ""
|
575 |
|
@@ -577,11 +577,11 @@ msgstr ""
|
|
577 |
msgid "Unit"
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: includes/helper.php:2887, includes/classes/class-woo-feed-dropdown.php:
|
581 |
msgid "Unit Price Measure"
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: includes/helper.php:2888, includes/classes/class-woo-feed-dropdown.php:
|
585 |
msgid "Unit Price Base Measure"
|
586 |
msgstr ""
|
587 |
|
@@ -1344,423 +1344,419 @@ msgstr ""
|
|
1344 |
msgid "Settings Updated."
|
1345 |
msgstr ""
|
1346 |
|
1347 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1348 |
msgid "Primary Attributes"
|
1349 |
msgstr ""
|
1350 |
|
1351 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1352 |
msgid "Product Id"
|
1353 |
msgstr ""
|
1354 |
|
1355 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1356 |
-
msgid "Parent Product Id (WPML)"
|
1357 |
-
msgstr ""
|
1358 |
-
|
1359 |
-
#: includes/classes/class-woo-feed-dropdown.php:316, includes/classes/class-woo-feed-products.php:1712
|
1360 |
msgid "Product Title"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1364 |
msgid "Parent Title"
|
1365 |
msgstr ""
|
1366 |
|
1367 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1368 |
msgid "Product Description"
|
1369 |
msgstr ""
|
1370 |
|
1371 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1372 |
msgid "Product Description (with HTML)"
|
1373 |
msgstr ""
|
1374 |
|
1375 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1376 |
msgid "Product Short Description"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1380 |
msgid "Parent Category"
|
1381 |
msgstr ""
|
1382 |
|
1383 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1384 |
msgid "Parent Category ID"
|
1385 |
msgstr ""
|
1386 |
|
1387 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1388 |
msgid "Child Category"
|
1389 |
msgstr ""
|
1390 |
|
1391 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1392 |
msgid "Child Category ID"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1396 |
msgid "Product Category [Category Path]"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1400 |
msgid "Product Full Category [Category Full Path]"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1404 |
msgid "Product URL"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1408 |
msgid "Parent URL"
|
1409 |
msgstr ""
|
1410 |
|
1411 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1412 |
msgid "Canonical URL"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1416 |
msgid "External Product URL"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1420 |
msgid "Add to Cart URL"
|
1421 |
msgstr ""
|
1422 |
|
1423 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1424 |
msgid "Parent Id [Group Id]"
|
1425 |
msgstr ""
|
1426 |
|
1427 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1428 |
msgid "SKU"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1432 |
msgid "SKU_ID"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1436 |
msgid "Parent SKU"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1440 |
msgid "Availability"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1444 |
msgid "Quantity"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1448 |
msgid "Regular Price"
|
1449 |
msgstr ""
|
1450 |
|
1451 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1452 |
msgid "Price"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1456 |
msgid "Sale Price"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1460 |
msgid "Regular Price With Tax"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1464 |
msgid "Price With Tax"
|
1465 |
msgstr ""
|
1466 |
|
1467 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1468 |
msgid "Sale Price With Tax"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1472 |
msgid "Sale Start Date"
|
1473 |
msgstr ""
|
1474 |
|
1475 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1476 |
msgid "Sale End Date"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1480 |
msgid "Reviewer Name"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1484 |
msgid "Weight"
|
1485 |
msgstr ""
|
1486 |
|
1487 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1488 |
msgid "Weight Unit"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1492 |
msgid "Width"
|
1493 |
msgstr ""
|
1494 |
|
1495 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1496 |
msgid "Height"
|
1497 |
msgstr ""
|
1498 |
|
1499 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1500 |
msgid "Length"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1504 |
msgid "Shipping (Google Format)"
|
1505 |
msgstr ""
|
1506 |
|
1507 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1508 |
msgid "Shipping Cost"
|
1509 |
msgstr ""
|
1510 |
|
1511 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1512 |
msgid "Shipping Class"
|
1513 |
msgstr ""
|
1514 |
|
1515 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1516 |
msgid "Product Type"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1520 |
msgid "Variation Type"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1524 |
msgid "Visibility"
|
1525 |
msgstr ""
|
1526 |
|
1527 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1528 |
msgid "Total Rating"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1532 |
msgid "Average Rating"
|
1533 |
msgstr ""
|
1534 |
|
1535 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1536 |
msgid "Tags"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1540 |
msgid "Sale Price Effective Date"
|
1541 |
msgstr ""
|
1542 |
|
1543 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1544 |
msgid "Is Bundle"
|
1545 |
msgstr ""
|
1546 |
|
1547 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1548 |
msgid "Author Name"
|
1549 |
msgstr ""
|
1550 |
|
1551 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1552 |
msgid "Author Email"
|
1553 |
msgstr ""
|
1554 |
|
1555 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1556 |
msgid "Date Created"
|
1557 |
msgstr ""
|
1558 |
|
1559 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1560 |
msgid "Date Updated"
|
1561 |
msgstr ""
|
1562 |
|
1563 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1564 |
msgid "Tax"
|
1565 |
msgstr ""
|
1566 |
|
1567 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1568 |
msgid "Tax Class"
|
1569 |
msgstr ""
|
1570 |
|
1571 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1572 |
msgid "Tax Status"
|
1573 |
msgstr ""
|
1574 |
|
1575 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1576 |
msgid "Custom Fields by CTX Feed"
|
1577 |
msgstr ""
|
1578 |
|
1579 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1580 |
msgid "Subscription & Installment"
|
1581 |
msgstr ""
|
1582 |
|
1583 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1584 |
msgid "Subscription Period"
|
1585 |
msgstr ""
|
1586 |
|
1587 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1588 |
msgid "Subscription Period Length"
|
1589 |
msgstr ""
|
1590 |
|
1591 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1592 |
msgid "Subscription Amount"
|
1593 |
msgstr ""
|
1594 |
|
1595 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1596 |
msgid "Installment Months"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1600 |
msgid "Installment Amount"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1604 |
msgid "Unit Price"
|
1605 |
msgstr ""
|
1606 |
|
1607 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1608 |
msgid "WooCommerce Germanized"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1612 |
msgid "ALL IN ONE SEO"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1616 |
msgid "Title [All in One SEO]"
|
1617 |
msgstr ""
|
1618 |
|
1619 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1620 |
msgid "Description [All in One SEO]"
|
1621 |
msgstr ""
|
1622 |
|
1623 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1624 |
msgid "Canonical URL [All in One SEO]"
|
1625 |
msgstr ""
|
1626 |
|
1627 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1628 |
msgid "Yoast SEO"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1632 |
msgid "Title [Yoast SEO]"
|
1633 |
msgstr ""
|
1634 |
|
1635 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1636 |
msgid "Description [Yoast SEO]"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1640 |
msgid "Canonical URL [Yoast SEO]"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1644 |
msgid "GTIN8 [Yoast SEO]"
|
1645 |
msgstr ""
|
1646 |
|
1647 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1648 |
msgid "GTIN12 / UPC [Yoast SEO]"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1652 |
msgid "GTIN13 / EAN [Yoast SEO]"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1656 |
msgid "GTIN14 / ITF-14 [Yoast SEO]"
|
1657 |
msgstr ""
|
1658 |
|
1659 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1660 |
msgid "ISBN [Yoast SEO]"
|
1661 |
msgstr ""
|
1662 |
|
1663 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1664 |
msgid "MPN [Yoast SEO]"
|
1665 |
msgstr ""
|
1666 |
|
1667 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1668 |
msgid "Rank Math SEO"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1672 |
msgid "Title [RankMath SEO]"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1676 |
msgid "Description [RankMath SEO]"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1680 |
msgid "Canonical URL [RankMath SEO]"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1684 |
msgid "GTIN [RankMath Pro SEO]"
|
1685 |
msgstr ""
|
1686 |
|
1687 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1688 |
msgid "Image Attributes"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1692 |
msgid "Main Image"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1696 |
msgid "Featured Image"
|
1697 |
msgstr ""
|
1698 |
|
1699 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1700 |
msgid "Images [Comma Separated]"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1704 |
msgid "Additional Image 1"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1708 |
msgid "Additional Image 2"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1712 |
msgid "Additional Image 3"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1716 |
msgid "Additional Image 4"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1720 |
msgid "Additional Image 5"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1724 |
msgid "Additional Image 6"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1728 |
msgid "Additional Image 7"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1732 |
msgid "Additional Image 8"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1736 |
msgid "Additional Image 9"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1740 |
msgid "Additional Image 10"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1744 |
msgid "Product Attributes"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1748 |
msgid "Product Custom Attributes"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1752 |
msgid "Product Taxonomies"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1756 |
msgid "Category Mappings"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1760 |
msgid "Custom Fields & Post Metas (Premium)"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1764 |
msgid "Select Attributes"
|
1765 |
msgstr ""
|
1766 |
|
148 |
msgid "Category Mapping"
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: admin/class-woo-feed-admin.php:234, admin/class-woo-feed-admin.php:234, includes/classes/class-woo-feed-dropdown.php:527
|
152 |
msgid "WP Options"
|
153 |
msgstr ""
|
154 |
|
569 |
msgid "Cost of good sold"
|
570 |
msgstr ""
|
571 |
|
572 |
+
#: includes/helper.php:2885, includes/classes/class-woo-feed-dropdown.php:332, libs/WebAppick/Attributes/AvailabilityDate.php:47, libs/WebAppick/Attributes/AvailabilityDate.php:77
|
573 |
msgid "Availability Date"
|
574 |
msgstr ""
|
575 |
|
577 |
msgid "Unit"
|
578 |
msgstr ""
|
579 |
|
580 |
+
#: includes/helper.php:2887, includes/classes/class-woo-feed-dropdown.php:401
|
581 |
msgid "Unit Price Measure"
|
582 |
msgstr ""
|
583 |
|
584 |
+
#: includes/helper.php:2888, includes/classes/class-woo-feed-dropdown.php:402
|
585 |
msgid "Unit Price Base Measure"
|
586 |
msgstr ""
|
587 |
|
1344 |
msgid "Settings Updated."
|
1345 |
msgstr ""
|
1346 |
|
1347 |
+
#: includes/classes/class-woo-feed-dropdown.php:309, includes/classes/class-woo-feed-products.php:1784
|
1348 |
msgid "Primary Attributes"
|
1349 |
msgstr ""
|
1350 |
|
1351 |
+
#: includes/classes/class-woo-feed-dropdown.php:310, includes/classes/class-woo-feed-products.php:1711
|
1352 |
msgid "Product Id"
|
1353 |
msgstr ""
|
1354 |
|
1355 |
+
#: includes/classes/class-woo-feed-dropdown.php:311, includes/classes/class-woo-feed-products.php:1712
|
|
|
|
|
|
|
|
|
1356 |
msgid "Product Title"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
+
#: includes/classes/class-woo-feed-dropdown.php:312
|
1360 |
msgid "Parent Title"
|
1361 |
msgstr ""
|
1362 |
|
1363 |
+
#: includes/classes/class-woo-feed-dropdown.php:313, includes/classes/class-woo-feed-products.php:1713
|
1364 |
msgid "Product Description"
|
1365 |
msgstr ""
|
1366 |
|
1367 |
+
#: includes/classes/class-woo-feed-dropdown.php:314
|
1368 |
msgid "Product Description (with HTML)"
|
1369 |
msgstr ""
|
1370 |
|
1371 |
+
#: includes/classes/class-woo-feed-dropdown.php:315, includes/classes/class-woo-feed-products.php:1714
|
1372 |
msgid "Product Short Description"
|
1373 |
msgstr ""
|
1374 |
|
1375 |
+
#: includes/classes/class-woo-feed-dropdown.php:316
|
1376 |
msgid "Parent Category"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
+
#: includes/classes/class-woo-feed-dropdown.php:317
|
1380 |
msgid "Parent Category ID"
|
1381 |
msgstr ""
|
1382 |
|
1383 |
+
#: includes/classes/class-woo-feed-dropdown.php:318
|
1384 |
msgid "Child Category"
|
1385 |
msgstr ""
|
1386 |
|
1387 |
+
#: includes/classes/class-woo-feed-dropdown.php:319
|
1388 |
msgid "Child Category ID"
|
1389 |
msgstr ""
|
1390 |
|
1391 |
+
#: includes/classes/class-woo-feed-dropdown.php:320
|
1392 |
msgid "Product Category [Category Path]"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
+
#: includes/classes/class-woo-feed-dropdown.php:321
|
1396 |
msgid "Product Full Category [Category Full Path]"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
+
#: includes/classes/class-woo-feed-dropdown.php:322, includes/classes/class-woo-feed-products.php:1716
|
1400 |
msgid "Product URL"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
+
#: includes/classes/class-woo-feed-dropdown.php:323
|
1404 |
msgid "Parent URL"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
+
#: includes/classes/class-woo-feed-dropdown.php:324
|
1408 |
msgid "Canonical URL"
|
1409 |
msgstr ""
|
1410 |
|
1411 |
+
#: includes/classes/class-woo-feed-dropdown.php:325, includes/classes/class-woo-feed-products.php:1717
|
1412 |
msgid "External Product URL"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
+
#: includes/classes/class-woo-feed-dropdown.php:326
|
1416 |
msgid "Add to Cart URL"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
+
#: includes/classes/class-woo-feed-dropdown.php:327, includes/classes/class-woo-feed-products.php:1719
|
1420 |
msgid "Parent Id [Group Id]"
|
1421 |
msgstr ""
|
1422 |
|
1423 |
+
#: includes/classes/class-woo-feed-dropdown.php:328, includes/classes/class-woo-feed-products.php:1720
|
1424 |
msgid "SKU"
|
1425 |
msgstr ""
|
1426 |
|
1427 |
+
#: includes/classes/class-woo-feed-dropdown.php:329
|
1428 |
msgid "SKU_ID"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
+
#: includes/classes/class-woo-feed-dropdown.php:330, includes/classes/class-woo-feed-products.php:1721
|
1432 |
msgid "Parent SKU"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
+
#: includes/classes/class-woo-feed-dropdown.php:331, includes/classes/class-woo-feed-products.php:1722
|
1436 |
msgid "Availability"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
+
#: includes/classes/class-woo-feed-dropdown.php:333, includes/classes/class-woo-feed-products.php:1723
|
1440 |
msgid "Quantity"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
+
#: includes/classes/class-woo-feed-dropdown.php:334, includes/classes/class-woo-feed-products.php:1724
|
1444 |
msgid "Regular Price"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
+
#: includes/classes/class-woo-feed-dropdown.php:335, includes/classes/class-woo-feed-products.php:1725
|
1448 |
msgid "Price"
|
1449 |
msgstr ""
|
1450 |
|
1451 |
+
#: includes/classes/class-woo-feed-dropdown.php:336, includes/classes/class-woo-feed-products.php:1726
|
1452 |
msgid "Sale Price"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
+
#: includes/classes/class-woo-feed-dropdown.php:337, includes/classes/class-woo-feed-products.php:1727
|
1456 |
msgid "Regular Price With Tax"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
+
#: includes/classes/class-woo-feed-dropdown.php:338, includes/classes/class-woo-feed-products.php:1728
|
1460 |
msgid "Price With Tax"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
+
#: includes/classes/class-woo-feed-dropdown.php:339, includes/classes/class-woo-feed-products.php:1729
|
1464 |
msgid "Sale Price With Tax"
|
1465 |
msgstr ""
|
1466 |
|
1467 |
+
#: includes/classes/class-woo-feed-dropdown.php:340, includes/classes/class-woo-feed-products.php:1730
|
1468 |
msgid "Sale Start Date"
|
1469 |
msgstr ""
|
1470 |
|
1471 |
+
#: includes/classes/class-woo-feed-dropdown.php:341, includes/classes/class-woo-feed-products.php:1731
|
1472 |
msgid "Sale End Date"
|
1473 |
msgstr ""
|
1474 |
|
1475 |
+
#: includes/classes/class-woo-feed-dropdown.php:342
|
1476 |
msgid "Reviewer Name"
|
1477 |
msgstr ""
|
1478 |
|
1479 |
+
#: includes/classes/class-woo-feed-dropdown.php:343, includes/classes/class-woo-feed-products.php:1732
|
1480 |
msgid "Weight"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
+
#: includes/classes/class-woo-feed-dropdown.php:344
|
1484 |
msgid "Weight Unit"
|
1485 |
msgstr ""
|
1486 |
|
1487 |
+
#: includes/classes/class-woo-feed-dropdown.php:345, includes/classes/class-woo-feed-products.php:1733
|
1488 |
msgid "Width"
|
1489 |
msgstr ""
|
1490 |
|
1491 |
+
#: includes/classes/class-woo-feed-dropdown.php:346, includes/classes/class-woo-feed-products.php:1734
|
1492 |
msgid "Height"
|
1493 |
msgstr ""
|
1494 |
|
1495 |
+
#: includes/classes/class-woo-feed-dropdown.php:347, includes/classes/class-woo-feed-products.php:1735
|
1496 |
msgid "Length"
|
1497 |
msgstr ""
|
1498 |
|
1499 |
+
#: includes/classes/class-woo-feed-dropdown.php:348
|
1500 |
msgid "Shipping (Google Format)"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
+
#: includes/classes/class-woo-feed-dropdown.php:349
|
1504 |
msgid "Shipping Cost"
|
1505 |
msgstr ""
|
1506 |
|
1507 |
+
#: includes/classes/class-woo-feed-dropdown.php:350, includes/classes/class-woo-feed-products.php:1736
|
1508 |
msgid "Shipping Class"
|
1509 |
msgstr ""
|
1510 |
|
1511 |
+
#: includes/classes/class-woo-feed-dropdown.php:351, includes/classes/class-woo-feed-products.php:1737
|
1512 |
msgid "Product Type"
|
1513 |
msgstr ""
|
1514 |
|
1515 |
+
#: includes/classes/class-woo-feed-dropdown.php:352, includes/classes/class-woo-feed-products.php:1738
|
1516 |
msgid "Variation Type"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
+
#: includes/classes/class-woo-feed-dropdown.php:353, includes/classes/class-woo-feed-products.php:1739
|
1520 |
msgid "Visibility"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
+
#: includes/classes/class-woo-feed-dropdown.php:354, includes/classes/class-woo-feed-products.php:1740
|
1524 |
msgid "Total Rating"
|
1525 |
msgstr ""
|
1526 |
|
1527 |
+
#: includes/classes/class-woo-feed-dropdown.php:355, includes/classes/class-woo-feed-products.php:1741
|
1528 |
msgid "Average Rating"
|
1529 |
msgstr ""
|
1530 |
|
1531 |
+
#: includes/classes/class-woo-feed-dropdown.php:356, includes/classes/class-woo-feed-products.php:1742
|
1532 |
msgid "Tags"
|
1533 |
msgstr ""
|
1534 |
|
1535 |
+
#: includes/classes/class-woo-feed-dropdown.php:357, includes/classes/class-woo-feed-products.php:1743
|
1536 |
msgid "Sale Price Effective Date"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
+
#: includes/classes/class-woo-feed-dropdown.php:358, includes/classes/class-woo-feed-products.php:1744
|
1540 |
msgid "Is Bundle"
|
1541 |
msgstr ""
|
1542 |
|
1543 |
+
#: includes/classes/class-woo-feed-dropdown.php:359, includes/classes/class-woo-feed-products.php:1745
|
1544 |
msgid "Author Name"
|
1545 |
msgstr ""
|
1546 |
|
1547 |
+
#: includes/classes/class-woo-feed-dropdown.php:360, includes/classes/class-woo-feed-products.php:1746
|
1548 |
msgid "Author Email"
|
1549 |
msgstr ""
|
1550 |
|
1551 |
+
#: includes/classes/class-woo-feed-dropdown.php:361, includes/classes/class-woo-feed-products.php:1747
|
1552 |
msgid "Date Created"
|
1553 |
msgstr ""
|
1554 |
|
1555 |
+
#: includes/classes/class-woo-feed-dropdown.php:362, includes/classes/class-woo-feed-products.php:1748
|
1556 |
msgid "Date Updated"
|
1557 |
msgstr ""
|
1558 |
|
1559 |
+
#: includes/classes/class-woo-feed-dropdown.php:363
|
1560 |
msgid "Tax"
|
1561 |
msgstr ""
|
1562 |
|
1563 |
+
#: includes/classes/class-woo-feed-dropdown.php:364
|
1564 |
msgid "Tax Class"
|
1565 |
msgstr ""
|
1566 |
|
1567 |
+
#: includes/classes/class-woo-feed-dropdown.php:365
|
1568 |
msgid "Tax Status"
|
1569 |
msgstr ""
|
1570 |
|
1571 |
+
#: includes/classes/class-woo-feed-dropdown.php:374
|
1572 |
msgid "Custom Fields by CTX Feed"
|
1573 |
msgstr ""
|
1574 |
|
1575 |
+
#: includes/classes/class-woo-feed-dropdown.php:384
|
1576 |
msgid "Subscription & Installment"
|
1577 |
msgstr ""
|
1578 |
|
1579 |
+
#: includes/classes/class-woo-feed-dropdown.php:388
|
1580 |
msgid "Subscription Period"
|
1581 |
msgstr ""
|
1582 |
|
1583 |
+
#: includes/classes/class-woo-feed-dropdown.php:389
|
1584 |
msgid "Subscription Period Length"
|
1585 |
msgstr ""
|
1586 |
|
1587 |
+
#: includes/classes/class-woo-feed-dropdown.php:390
|
1588 |
msgid "Subscription Amount"
|
1589 |
msgstr ""
|
1590 |
|
1591 |
+
#: includes/classes/class-woo-feed-dropdown.php:391
|
1592 |
msgid "Installment Months"
|
1593 |
msgstr ""
|
1594 |
|
1595 |
+
#: includes/classes/class-woo-feed-dropdown.php:392
|
1596 |
msgid "Installment Amount"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
+
#: includes/classes/class-woo-feed-dropdown.php:419
|
1600 |
msgid "Unit Price"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
+
#: includes/classes/class-woo-feed-dropdown.php:406
|
1604 |
msgid "WooCommerce Germanized"
|
1605 |
msgstr ""
|
1606 |
|
1607 |
+
#: includes/classes/class-woo-feed-dropdown.php:427
|
1608 |
msgid "ALL IN ONE SEO"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
+
#: includes/classes/class-woo-feed-dropdown.php:431, includes/classes/class-woo-feed-products.php:1769
|
1612 |
msgid "Title [All in One SEO]"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
+
#: includes/classes/class-woo-feed-dropdown.php:432, includes/classes/class-woo-feed-products.php:1770
|
1616 |
msgid "Description [All in One SEO]"
|
1617 |
msgstr ""
|
1618 |
|
1619 |
+
#: includes/classes/class-woo-feed-dropdown.php:433
|
1620 |
msgid "Canonical URL [All in One SEO]"
|
1621 |
msgstr ""
|
1622 |
|
1623 |
+
#: includes/classes/class-woo-feed-dropdown.php:441
|
1624 |
msgid "Yoast SEO"
|
1625 |
msgstr ""
|
1626 |
|
1627 |
+
#: includes/classes/class-woo-feed-dropdown.php:444, includes/classes/class-woo-feed-products.php:1776
|
1628 |
msgid "Title [Yoast SEO]"
|
1629 |
msgstr ""
|
1630 |
|
1631 |
+
#: includes/classes/class-woo-feed-dropdown.php:445, includes/classes/class-woo-feed-products.php:1777
|
1632 |
msgid "Description [Yoast SEO]"
|
1633 |
msgstr ""
|
1634 |
|
1635 |
+
#: includes/classes/class-woo-feed-dropdown.php:446
|
1636 |
msgid "Canonical URL [Yoast SEO]"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
+
#: includes/classes/class-woo-feed-dropdown.php:452
|
1640 |
msgid "GTIN8 [Yoast SEO]"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
+
#: includes/classes/class-woo-feed-dropdown.php:453
|
1644 |
msgid "GTIN12 / UPC [Yoast SEO]"
|
1645 |
msgstr ""
|
1646 |
|
1647 |
+
#: includes/classes/class-woo-feed-dropdown.php:454
|
1648 |
msgid "GTIN13 / EAN [Yoast SEO]"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
+
#: includes/classes/class-woo-feed-dropdown.php:455
|
1652 |
msgid "GTIN14 / ITF-14 [Yoast SEO]"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
+
#: includes/classes/class-woo-feed-dropdown.php:456
|
1656 |
msgid "ISBN [Yoast SEO]"
|
1657 |
msgstr ""
|
1658 |
|
1659 |
+
#: includes/classes/class-woo-feed-dropdown.php:457
|
1660 |
msgid "MPN [Yoast SEO]"
|
1661 |
msgstr ""
|
1662 |
|
1663 |
+
#: includes/classes/class-woo-feed-dropdown.php:470
|
1664 |
msgid "Rank Math SEO"
|
1665 |
msgstr ""
|
1666 |
|
1667 |
+
#: includes/classes/class-woo-feed-dropdown.php:474
|
1668 |
msgid "Title [RankMath SEO]"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
+
#: includes/classes/class-woo-feed-dropdown.php:475
|
1672 |
msgid "Description [RankMath SEO]"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
+
#: includes/classes/class-woo-feed-dropdown.php:476
|
1676 |
msgid "Canonical URL [RankMath SEO]"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
+
#: includes/classes/class-woo-feed-dropdown.php:477
|
1680 |
msgid "GTIN [RankMath Pro SEO]"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
+
#: includes/classes/class-woo-feed-dropdown.php:484, includes/classes/class-woo-feed-products.php:1793
|
1684 |
msgid "Image Attributes"
|
1685 |
msgstr ""
|
1686 |
|
1687 |
+
#: includes/classes/class-woo-feed-dropdown.php:486, includes/classes/class-woo-feed-products.php:1751
|
1688 |
msgid "Main Image"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
+
#: includes/classes/class-woo-feed-dropdown.php:487, includes/classes/class-woo-feed-products.php:1752
|
1692 |
msgid "Featured Image"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
+
#: includes/classes/class-woo-feed-dropdown.php:488, includes/classes/class-woo-feed-products.php:1753
|
1696 |
msgid "Images [Comma Separated]"
|
1697 |
msgstr ""
|
1698 |
|
1699 |
+
#: includes/classes/class-woo-feed-dropdown.php:489, includes/classes/class-woo-feed-products.php:1754
|
1700 |
msgid "Additional Image 1"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
+
#: includes/classes/class-woo-feed-dropdown.php:490, includes/classes/class-woo-feed-products.php:1755
|
1704 |
msgid "Additional Image 2"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
+
#: includes/classes/class-woo-feed-dropdown.php:491, includes/classes/class-woo-feed-products.php:1756
|
1708 |
msgid "Additional Image 3"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
+
#: includes/classes/class-woo-feed-dropdown.php:492, includes/classes/class-woo-feed-products.php:1757
|
1712 |
msgid "Additional Image 4"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
+
#: includes/classes/class-woo-feed-dropdown.php:493, includes/classes/class-woo-feed-products.php:1758
|
1716 |
msgid "Additional Image 5"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
+
#: includes/classes/class-woo-feed-dropdown.php:494, includes/classes/class-woo-feed-products.php:1759
|
1720 |
msgid "Additional Image 6"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
+
#: includes/classes/class-woo-feed-dropdown.php:495, includes/classes/class-woo-feed-products.php:1760
|
1724 |
msgid "Additional Image 7"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
+
#: includes/classes/class-woo-feed-dropdown.php:496, includes/classes/class-woo-feed-products.php:1761
|
1728 |
msgid "Additional Image 8"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
+
#: includes/classes/class-woo-feed-dropdown.php:497, includes/classes/class-woo-feed-products.php:1762
|
1732 |
msgid "Additional Image 9"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
+
#: includes/classes/class-woo-feed-dropdown.php:498, includes/classes/class-woo-feed-products.php:1763
|
1736 |
msgid "Additional Image 10"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
+
#: includes/classes/class-woo-feed-dropdown.php:505
|
1740 |
msgid "Product Attributes"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
+
#: includes/classes/class-woo-feed-dropdown.php:513, includes/classes/class-woo-feed-products.php:1813
|
1744 |
msgid "Product Custom Attributes"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
+
#: includes/classes/class-woo-feed-dropdown.php:520
|
1748 |
msgid "Product Taxonomies"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
+
#: includes/classes/class-woo-feed-dropdown.php:535
|
1752 |
msgid "Category Mappings"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
+
#: includes/classes/class-woo-feed-dropdown.php:541
|
1756 |
msgid "Custom Fields & Post Metas (Premium)"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
+
#: includes/classes/class-woo-feed-dropdown.php:582, includes/classes/class-woo-feed-products.php:1803
|
1760 |
msgid "Select Attributes"
|
1761 |
msgstr ""
|
1762 |
|
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.4.
|
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: 5.
|
29 |
*/
|
30 |
|
31 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -42,7 +42,7 @@ if ( ! defined( 'WOO_FEED_FREE_VERSION' ) ) {
|
|
42 |
* @var string
|
43 |
* @since 3.1.6
|
44 |
*/
|
45 |
-
define( 'WOO_FEED_FREE_VERSION', '4.4.
|
46 |
}
|
47 |
|
48 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|
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.4.26
|
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.7.1
|
29 |
*/
|
30 |
|
31 |
if ( ! defined( 'ABSPATH' ) ) {
|
42 |
* @var string
|
43 |
* @since 3.1.6
|
44 |
*/
|
45 |
+
define( 'WOO_FEED_FREE_VERSION', '4.4.26' );
|
46 |
}
|
47 |
|
48 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|