YITH WooCommerce Catalog Mode - Version 2.0.10

Version Description

  • Released: 03 February 2021 =

  • New: support for WooCommerce 5.0

  • Update: YITH plugin framework

Download this release

Release Info

Developer yithemes
Plugin Icon 128x128 YITH WooCommerce Catalog Mode
Version 2.0.10
Comparing to
See all releases

Code changes from version 2.0.9 to 2.0.10

init.php CHANGED
@@ -5,10 +5,10 @@
5
  * Description: <code><strong>YITH WooCommerce Catalog Mode</strong></code> allows hiding product prices, cart and checkout from your store and turning it into a performing product catalogue. You will be able to adjust your catalogue settings as you prefer based on your requirements. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>
6
  * Author: YITH
7
  * Text Domain: yith-woocommerce-catalog-mode
8
- * Version: 2.0.8
9
  * Author URI: https://yithemes.com/
10
  * WC requires at least: 4.2.0
11
- * WC tested up to: 4.9.x
12
  *
13
  * @package YITH WooCommerce Catalog Mode
14
  */
@@ -61,7 +61,7 @@ function ywctm_install_free_admin_notice() {
61
  <?php
62
  }
63
 
64
- ! defined( 'YWCTM_VERSION' ) && define( 'YWCTM_VERSION', '2.0.8' );
65
  ! defined( 'YWCTM_FREE_INIT' ) && define( 'YWCTM_FREE_INIT', plugin_basename( __FILE__ ) );
66
  ! defined( 'YWCTM_SLUG' ) && define( 'YWCTM_SLUG', 'yith-woocommerce-catalog-mode' );
67
  ! defined( 'YWCTM_FILE' ) && define( 'YWCTM_FILE', __FILE__ );
5
  * Description: <code><strong>YITH WooCommerce Catalog Mode</strong></code> allows hiding product prices, cart and checkout from your store and turning it into a performing product catalogue. You will be able to adjust your catalogue settings as you prefer based on your requirements. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>
6
  * Author: YITH
7
  * Text Domain: yith-woocommerce-catalog-mode
8
+ * Version: 2.0.10
9
  * Author URI: https://yithemes.com/
10
  * WC requires at least: 4.2.0
11
+ * WC tested up to: 5.0.x
12
  *
13
  * @package YITH WooCommerce Catalog Mode
14
  */
61
  <?php
62
  }
63
 
64
+ ! defined( 'YWCTM_VERSION' ) && define( 'YWCTM_VERSION', '2.0.10' );
65
  ! defined( 'YWCTM_FREE_INIT' ) && define( 'YWCTM_FREE_INIT', plugin_basename( __FILE__ ) );
66
  ! defined( 'YWCTM_SLUG' ) && define( 'YWCTM_SLUG', 'yith-woocommerce-catalog-mode' );
67
  ! defined( 'YWCTM_FILE' ) && define( 'YWCTM_FILE', __FILE__ );
languages/yith-woocommerce-catalog-mode.pot CHANGED
@@ -2,10 +2,10 @@
2
  # This file is distributed under the same license as the YITH WooCommerce Catalog Mode package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: YITH WooCommerce Catalog Mode 2.0.8\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/yith-woocommerce-catalog-mode\n"
8
- "POT-Creation-Date: 2021-01-13 12:40:56+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
2
  # This file is distributed under the same license as the YITH WooCommerce Catalog Mode package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: YITH WooCommerce Catalog Mode 2.0.10\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/yith-woocommerce-catalog-mode\n"
8
+ "POT-Creation-Date: 2021-02-03 13:36:48+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
plugin-fw/assets/js/yith-fields.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){e(document).on("yith_fields_init",function(){var t=e(".yith-plugin-fw-datepicker"),i=e(".yith-plugin-fw-colorpicker"),n={imgPreviewHandler:".yith-plugin-fw-upload-img-preview",uploadButtonHandler:".yith-plugin-fw-upload-button",imgUrlHandler:".yith-plugin-fw-upload-img-url",resetButtonHandler:".yith-plugin-fw-upload-button-reset",imgUrl:e(".yith-plugin-fw-upload-img-url")},a=e(".add_media"),l={rootSelector:".yith-plugin-fw-image-gallery",buttonSelector:".yith-plugin-fw-image-gallery .image-gallery-button",sliderWrapper:e(".yith-plugin-fw-image-gallery ul.slides-wrapper")},o=e(".yith-plugin-fw-sidebar-layout"),s=e(".yith-plugin-fw .yith-plugin-fw-slider-container .ui-slider-horizontal"),r=e(".yit-icons-manager-wrapper");e(".yith-plugin-ui td.forminp-checkbox");t.each(function(){var t=e(this).data();t.showAnim=!1,t.beforeShow=function(e,t){t.dpDiv.addClass("yith-plugin-fw-datepicker-div")},t.onClose=function(e,t){t.dpDiv.removeClass("yith-plugin-fw-datepicker-div")},e(this).datepicker(t)}),i.wpColorPicker({palettes:!1,width:200,mode:"hsl",clear:function(){var t=e(this);t.val(t.data("default-color")),t.change()}}),i.each(function(){var t=e(this).data("variations-label"),i=e(this).closest(".yith-plugin-fw-colorpicker-field-wrapper"),n=e(this).closest(".yith-single-colorpicker"),a=i.find(".wp-picker-input-wrap"),l=n.find(".wp-picker-input-wrap");if(a.length&&i.find("a.wp-color-result").attr("title",t),n.length&&n.find("a.wp-color-result").attr("title",t),!a.find(".wp-picker-default-custom").length){var o=e("<span/>").attr({class:"wp-picker-default-custom"});a.find(".wp-picker-default").wrap(o)}l.find(".wp-picker-default-custom").length||(o=e("<span/>").attr({class:"wp-picker-default-custom"}),l.find(".wp-picker-default").wrap(o))}),"undefined"!=typeof wp&&void 0!==wp.media&&(n.imgUrl.change(function(){var t=e(this).val(),i=new RegExp("(http|ftp|https)://[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)"),a=e(this).parent().find(n.imgPreviewHandler).first();a.length<1&&(a=e(this).parent().parent().find(n.imgPreviewHandler).first()),i.test(t)?a.html('<img src="'+t+'" style="max-width:100px; max-height:100px;" />'):a.html("")}).trigger("change"),e(document).on("click",n.uploadButtonHandler,function(t){t.preventDefault();var i,a=e(this).attr("id").replace(/-button$/,"").replace(/(\[|\])/g,"\\$1");if(i)i.open();else{var l=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})];(i=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:l})).on("select",function(){var t=i.state().get("selection").first().toJSON();e("#"+a).val(t.url),e("#"+a+"-yith-attachment-id")&&e("#"+a+"-yith-attachment-id").val(t.id),n.imgUrl.trigger("change")}),i.open()}}),e(document).on("click",n.resetButtonHandler,function(t){var i=e(this),a=i.attr("id").replace(/(\[|\])/g,"\\$1"),l=i.attr("id").replace(/-button-reset$/,"").replace(/(\[|\])/g,"\\$1"),o=e("#"+a).data("default");e("#"+l).val(o),n.imgUrl.trigger("change")}));a.on("click",function(){}),"undefined"!=typeof wp&&void 0!==wp.media&&(e(document).on("click",l.buttonSelector,function(t){var i=e(this),n=i.closest(l.rootSelector),a=n.find(".image_gallery_ids"),o=a.val(),s=n.find("ul.slides-wrapper"),r=wp.media.frames.image_gallery=wp.media({title:i.data("choose"),button:{text:i.data("update")},states:[new wp.media.controller.Library({title:i.data("choose"),filterable:"all",multiple:!0})]});r.on("select",function(){r.state().get("selection").map(function(e){(e=e.toJSON()).id&&(o=o?o+","+e.id:e.id,s.append('<li class="image" data-attachment_id="'+e.id+'"><img src="'+e.sizes.thumbnail.url+'"/><ul class="actions"><li><a href="#" class="delete" title="'+i.data("delete")+'">x</a></li></ul></li>'))}),a.val(o),a.trigger("change")}),r.open()}),l.sliderWrapper.each(function(){var t=e(this);t.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(i,n){var a="";t.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");a=a+t+","}),t.closest(l.rootSelector).find(".image_gallery_ids").val(a)}})}),l.sliderWrapper.on("click","a.delete",function(t){t.preventDefault();var i=e(this).closest(l.rootSelector),n=i.find("ul.slides-wrapper"),a=i.find(".image_gallery_ids"),o="";e(this).closest("li.image").remove(),n.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");o=o+t+","}),a.val(o)})),o.each(function(){e(this).find("img").on("click",function(){var t=e(this).closest(".yith-plugin-fw-sidebar-layout"),i=t.find(".yith-plugin-fw-sidebar-layout-sidebar-left-container"),n=t.find(".yith-plugin-fw-sidebar-layout-sidebar-right-container"),a=e(this).data("type");if(e(this).parent().children(":radio").attr("checked",!1),e(this).prev(":radio").attr("checked",!0),void 0!==a)switch(a){case"left":i.show(),n.hide();break;case"right":n.show(),i.hide();break;case"double":i.show(),n.show();break;default:i.hide(),n.hide()}})}),s.each(function(){var t=e(this).data("val"),i=e(this).data("min"),n=e(this).data("max"),a=e(this).data("step"),l=e(this).data("labels");e(this).slider({value:t,min:i,max:n,range:"min",step:a,create:function(){e(this).find(".ui-slider-handle").text(e(this).slider("value"))},slide:function(t,i){e(this).find("input").val(i.value),e(this).find(".ui-slider-handle").text(i.value),e(this).siblings(".feedback").find("strong").text(i.value+l)}})}),e(function(){e(document).on("yith-plugin-fw-codemirror-init",function(){"undefined"!=typeof wp&&void 0!==wp.codeEditor&&e(".codemirror:not(.codemirror--initialized)").each(function(){var t=e(this).data("settings"),i=wp.codeEditor.initialize(e(this),t);e(this).addClass("codemirror--initialized"),e(this).data("codemirrorInstance",i)})}).trigger("yith-plugin-fw-codemirror-init")}),e(document).on("click",".yith-plugin-fw-select-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!0).trigger("change")}),e(document).on("click",".yith-plugin-fw-deselect-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!1).trigger("change")}),r.each(function(){var t=e(this),i=t.find(".yit-icons-manager-icon-preview").first(),n=t.find(".yit-icons-manager-icon-text");t.on("click",".yit-icons-manager-list li",function(a){var l=e(a.target).closest("li"),o=l.data("font"),s=l.data("icon"),r=l.data("key"),d=l.data("name");i.attr("data-font",o),i.attr("data-icon",s),i.attr("data-key",r),i.attr("data-name",d),n.val(o+":"+d),t.find(".yit-icons-manager-list li").removeClass("active"),l.addClass("active")}),t.on("click",".yit-icons-manager-action-set-default",function(){t.find(".yit-icons-manager-list li.default").trigger("click")})}),e(document).on("click",".yith-plugin-fw-select-images__item",function(){var t=e(this),i=t.data("key"),n=t.closest(".yith-plugin-fw-select-images__wrapper"),a=n.find(".yith-plugin-fw-select-images__item"),l=n.find("select").first();l.length&&(l.val(i).trigger("yith_select_images_value_changed"),a.removeClass("yith-plugin-fw-select-images__item--selected"),t.addClass("yith-plugin-fw-select-images__item--selected"))}),e(document.body).trigger("wc-enhanced-select-init"),e(document).find(".ui-sortable .yith-toggle-elements").sortable({cursor:"move",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop:function(t,i){var n=jQuery(".ui-sortable-handle"),a=0,l=new Array;for(a=0;a<n.length;a++)l[a]=e(n[a]).data("item_key");l.length>0&&e(this).closest(".toggle-element").saveToggleElement(null,l)}}),e(document.body).trigger("yith-framework-enhanced-select-init")}).trigger("yith_fields_init"),e(document).on("click",".yith-plugin-fw-onoff-container span",function(){var t=e(this).prev("input");t.prop("checked")?t.prop("checked",!1).attr("value","no").removeClass("onoffchecked"):t.prop("checked",!0).attr("value","yes").addClass("onoffchecked"),t.change()}),e.fn.saveToggleElement=function(t,i){var n=e(this),a="yith_plugin_fw_save_toggle_element",l=n.serializeToggleElement(),o=n.find(".yith-toggle_wrapper"),s=o.attr("id"),r=e.urlParam("tab");l.append("security",o.data("nonce")),void 0!==i&&i.length>0&&l.append("yith_toggle_elements_order_keys",i),n.closest(".metaboxes-tab.yith-plugin-ui").length?(a="yith_plugin_fw_save_toggle_element_metabox",post_id=e(this).closest("form#post").find("#post_ID").val(),yit_metaboxes_nonce=e(this).closest("form#post").find("#yit_metaboxes_nonce").val(),metabox_tab=e(this).closest(".tabs-panel").attr("id"),url=yith_framework_fw_fields.ajax_url+"?action="+a+"&post_ID="+post_id+"&yit_metaboxes_nonce="+yit_metaboxes_nonce+"&toggle_id="+s+"&metabox_tab="+metabox_tab):url=yith_framework_fw_fields.admin_url+"?action="+a+"&tab="+r+"&toggle_id="+s,e.ajax({type:"POST",url:url,data:l,contentType:!1,processData:!1,success:function(i){t&&t.removeClass("show"),e(document).trigger("yith_save_toggle_element_done",[i,n])}})},e.fn.serializeToggleElement=function(){var t=e(this),i=new FormData,n=e(t).find(":input").serializeArray();return e.each(n,function(e,t){el_name=t.name,i.append(t.name,t.value)}),i},e.fn.formatToggleTitle=function(){var t=e(this),i=t.find(":input"),n=t.find("span.title").data("title_format"),a=t.find(".subtitle").data("subtitle_format"),l=new RegExp("[^%%]+(?=[%%])","g");if(void 0!==n)var o=n.match(l);if(void 0!==a)var s=a.match(l);e.each(i,function(t,i){void 0!==e(i).attr("id")&&($field_id=e(i).attr("id"),$field_array=$field_id.split("_"),$field_array.pop(),$field_id=$field_array.join("_"),$field_val=e(i).val(),null!=o&&void 0!==o&&-1!==o.indexOf($field_id)&&(n=n.replace("%%"+$field_id+"%%",$field_val)),null!=s&&void 0!==s&&-1!==s.indexOf($field_id)&&(a=a.replace("%%"+$field_id+"%%",$field_val)))}),""!==n&&t.find("span.title").html(n),""!==a&&t.find(".subtitle").html(a),e(document).trigger("yith-toggle-element-item-title",[t])},e.urlParam=function(e){var t=new RegExp("[?&]"+e+"=([^&#]*)").exec(window.location.search);return null!==t&&(t[1]||0)},e(document).on("click",".yith-toggle-title",function(t){var i=e(t.target),n=i.closest(".yith-toggle-row"),a=n.find(".yith-toggle-content");if(i.hasClass("yith-plugin-fw-onoff")||i.hasClass("yith-icon-drag"))return!1;n.is(".yith-toggle-row-opened")?a.slideUp(400):a.slideDown(400),n.toggleClass("yith-toggle-row-opened")}),e(document).on("click",".yith-add-box-button",function(t){t.preventDefault();var i=e(this),n=i.data("box_id"),a=i.data("closed_label"),l=i.data("opened_label"),o=i.closest(".yith-toggle_wrapper").attr("id"),s=wp.template("yith-toggle-element-add-box-content-"+o);""!==n&&(e("#"+n).html(s({index:"box_id"})).slideToggle(),""!==a&&(i.html()===a?i.html(l).removeClass("closed"):i.html(a).addClass("closed")),e(document).trigger("yith_fields_init"),e(document).trigger("yith-add-box-button-toggle",[i]))}),e(document).on("click",".yith-add-box-buttons .yith-save-button",function(t){t.preventDefault();var i=e(this).parents(".yith-add-box"),n=e(this).closest(".yith-toggle_wrapper").attr("id"),a=i.find(".spinner"),l=e(this).parents(".toggle-element"),o=i.find(":input"),s=0,r=e('<input type="hidden">');l.find(".yith-toggle-row").each(function(){var t=parseInt(e(this).data("item_key"));s<=t&&(s=t+1)}),r.val(s),e(document).trigger("yith-toggle-change-counter",[r,i]),s=r.val();var d=wp.template("yith-toggle-element-item-"+n),c=e(d({index:s}));a.addClass("show"),e.each(o,function(t,i){if(void 0!==e(i).attr("id")){var n=e(i).attr("id"),a=e(i).val();n="radio"===e(i).attr("type")?(n=(n=e(i).closest(".yith-plugin-fw-radio").attr("id")).replace("new_","")+"_"+s)+"-"+a:n.replace("new_","")+"_"+s,e(i).is(":checked")&&e(c).find("#"+n).prop("checked",!0),(e(i).hasClass("yith-post-search")||e(i).hasClass("yith-term-search"))&&e(c).find("#"+n).html(e("#"+e(i).attr("id")).html()),e(c).find("#"+n).val(a)}}),e(c).formatToggleTitle();var u=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-add",[i,c,u]);setTimeout(function(){if("yes"===u.val()){e(l).find(".yith-toggle-elements").append(c),e(i).find(".yith-plugin-fw-datepicker").datepicker("destroy"),e(i).html(""),e(i).prev(".yith-add-box-button").trigger("click"),l.saveToggleElement();setTimeout(function(){e(l).find(".highlight").removeClass("highlight")},2e3),e(document).trigger("yith_fields_init")}},1e3)}),e(document).on("click",".yith-toggle-row .yith-save-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element"),n=e(this).closest(".yith-toggle-row"),a=n.find(".spinner");n.formatToggleTitle();var l=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-update",[i,n,l]),"yes"===l.val()&&(a.addClass("show"),i.saveToggleElement(a))}),e(document).on("click",".yith-toggle-row .yith-delete-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element");e(this).closest(".yith-toggle-row").remove(),i.saveToggleElement()}),e(document).on("click",".yith-toggle-onoff",function(t){t.preventDefault(),e(this).closest(".toggle-element").saveToggleElement()}),e(document).on("click",".yith-plugin-fw-radio input[type=radio]",function(){var t=e(this).closest(".yith-plugin-fw-radio"),i=e(this).val();t.val(i).data("value",i).trigger("change")}),e(document.body).on("yith-plugin-fw-init-radio",function(){e(".yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)").each(function(){e(this).val(e(this).data("value")),e(this).addClass("yith-plugin-fw-radio--initialized")})}).trigger("yith-plugin-fw-init-radio"),e(document).on("click",".yith-password-eye",function(){var t=e(this),i=e(this).closest(".yith-password-wrapper").find("input");"password"===i.attr("type")?(i.attr("type","text"),t.addClass("yith-password-eye-closed")):(i.attr("type","password"),t.removeClass("yith-password-eye-closed"))}),e(document).on("select2:open",function(t){e(t.target).closest(".yith-plugin-ui").length&&e(".select2-results").closest(".select2-container").addClass("yith-plugin-fw-select2-container")});var t={selectors:{wrapper:".yith-plugin-fw-dimensions",units:{wrapper:".yith-plugin-fw-dimensions__units",single:".yith-plugin-fw-dimensions__unit",value:".yith-plugin-fw-dimensions__unit__value",selectedClass:"yith-plugin-fw-dimensions__unit--selected"},linked:{button:".yith-plugin-fw-dimensions__linked",value:".yith-plugin-fw-dimensions__linked__value",wrapperActiveClass:"yith-plugin-fw-dimensions--linked-active"},dimensions:{number:".yith-plugin-fw-dimensions__dimension__number"}},init:function(){var i=t;e(document).on("click",i.selectors.units.single,i.unitChange),e(document).on("click",i.selectors.linked.button,i.linkedChange),e(document).on("change keyup",i.selectors.dimensions.number,i.numberChange)},unitChange:function(i){var n=e(this).closest(t.selectors.units.single),a=n.closest(t.selectors.units.wrapper),l=a.find(t.selectors.units.single),o=a.find(t.selectors.units.value).first(),s=n.data("value");l.removeClass(t.selectors.units.selectedClass),n.addClass(t.selectors.units.selectedClass),o.val(s)},linkedChange:function(){var i=e(this).closest(t.selectors.linked.button),n=i.closest(t.selectors.wrapper),a=i.find(t.selectors.linked.value);"yes"===a.val()?(n.removeClass(t.selectors.linked.wrapperActiveClass),a.val("no")):(n.addClass(t.selectors.linked.wrapperActiveClass),a.val("yes"),n.find(t.selectors.dimensions.number).first().trigger("change"))},numberChange:function(i){var n=e(this).closest(t.selectors.dimensions.number),a=n.closest(t.selectors.wrapper);a.hasClass(t.selectors.linked.wrapperActiveClass)&&a.find(t.selectors.dimensions.number).val(n.val())}};t.init()}(jQuery);
1
+ !function(e){e(document).on("yith_fields_init",function(){var t=e(".yith-plugin-fw-datepicker"),i=e(".yith-plugin-fw-colorpicker"),n={imgPreviewHandler:".yith-plugin-fw-upload-img-preview",uploadButtonHandler:".yith-plugin-fw-upload-button",imgUrlHandler:".yith-plugin-fw-upload-img-url",resetButtonHandler:".yith-plugin-fw-upload-button-reset",imgUrl:e(".yith-plugin-fw-upload-img-url")},a=e(".add_media"),l={rootSelector:".yith-plugin-fw-image-gallery",buttonSelector:".yith-plugin-fw-image-gallery .image-gallery-button",sliderWrapper:e(".yith-plugin-fw-image-gallery ul.slides-wrapper")},o=e(".yith-plugin-fw-sidebar-layout"),s=e(".yith-plugin-fw .yith-plugin-fw-slider-container .ui-slider-horizontal"),r=e(".yit-icons-manager-wrapper");e(".yith-plugin-ui td.forminp-checkbox");t.each(function(){var t=e(this).data();t.showAnim=!1,t.beforeShow=function(e,t){t.dpDiv.addClass("yith-plugin-fw-datepicker-div")},t.onClose=function(e,t){t.dpDiv.removeClass("yith-plugin-fw-datepicker-div")},e(this).datepicker(t)}),i.wpColorPicker({palettes:!1,width:200,mode:"hsl",clear:function(){var t=e(this);t.val(t.data("default-color")),t.change()}}),i.each(function(){var t=e(this).data("variations-label"),i=e(this).closest(".yith-plugin-fw-colorpicker-field-wrapper"),n=e(this).closest(".yith-single-colorpicker"),a=i.find(".wp-picker-input-wrap"),l=n.find(".wp-picker-input-wrap");if(a.length&&i.find("a.wp-color-result").attr("title",t),n.length&&n.find("a.wp-color-result").attr("title",t),!a.find(".wp-picker-default-custom").length){var o=e("<span/>").attr({"class":"wp-picker-default-custom"});a.find(".wp-picker-default").wrap(o)}l.find(".wp-picker-default-custom").length||(o=e("<span/>").attr({"class":"wp-picker-default-custom"}),l.find(".wp-picker-default").wrap(o))}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(n.imgUrl.change(function(){var t=e(this).val(),i=new RegExp("(http|ftp|https)://[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)"),a=e(this).parent().find(n.imgPreviewHandler).first();a.length<1&&(a=e(this).parent().parent().find(n.imgPreviewHandler).first()),i.test(t)?a.html('<img src="'+t+'" style="max-width:100px; max-height:100px;" />'):a.html("")}).trigger("change"),e(document).on("click",n.uploadButtonHandler,function(t){t.preventDefault();var i,a=e(this).attr("id").replace(/-button$/,"").replace(/(\[|\])/g,"\\$1");if(i)i.open();else{var l=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})];(i=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:l})).on("select",function(){var t=i.state().get("selection").first().toJSON();e("#"+a).val(t.url),e("#"+a+"-yith-attachment-id")&&e("#"+a+"-yith-attachment-id").val(t.id),n.imgUrl.trigger("change")}),i.open()}}),e(document).on("click",n.resetButtonHandler,function(t){var i=e(this),a=i.attr("id").replace(/(\[|\])/g,"\\$1"),l=i.attr("id").replace(/-button-reset$/,"").replace(/(\[|\])/g,"\\$1"),o=e("#"+a).data("default");e("#"+l).val(o),n.imgUrl.trigger("change")}));a.on("click",function(){}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(e(document).on("click",l.buttonSelector,function(t){var i=e(this),n=i.closest(l.rootSelector),a=n.find(".image_gallery_ids"),o=a.val(),s=n.find("ul.slides-wrapper"),r=wp.media.frames.image_gallery=wp.media({title:i.data("choose"),button:{text:i.data("update")},states:[new wp.media.controller.Library({title:i.data("choose"),filterable:"all",multiple:!0})]});r.on("select",function(){r.state().get("selection").map(function(e){(e=e.toJSON()).id&&(o=o?o+","+e.id:e.id,s.append('<li class="image" data-attachment_id="'+e.id+'"><img src="'+e.sizes.thumbnail.url+'"/><ul class="actions"><li><a href="#" class="delete" title="'+i.data("delete")+'">x</a></li></ul></li>'))}),a.val(o),a.trigger("change")}),r.open()}),l.sliderWrapper.each(function(){var t=e(this);t.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(i,n){var a="";t.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");a=a+t+","}),t.closest(l.rootSelector).find(".image_gallery_ids").val(a)}})}),l.sliderWrapper.on("click","a.delete",function(t){t.preventDefault();var i=e(this).closest(l.rootSelector),n=i.find("ul.slides-wrapper"),a=i.find(".image_gallery_ids"),o="";e(this).closest("li.image").remove(),n.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");o=o+t+","}),a.val(o)})),o.each(function(){e(this).find("img").on("click",function(){var t=e(this).closest(".yith-plugin-fw-sidebar-layout"),i=t.find(".yith-plugin-fw-sidebar-layout-sidebar-left-container"),n=t.find(".yith-plugin-fw-sidebar-layout-sidebar-right-container"),a=e(this).data("type");if(e(this).parent().children(":radio").attr("checked",!1),e(this).prev(":radio").attr("checked",!0),void 0!==a)switch(a){case"left":i.show(),n.hide();break;case"right":n.show(),i.hide();break;case"double":i.show(),n.show();break;default:i.hide(),n.hide()}})}),s.each(function(){var t=e(this).data("val"),i=e(this).data("min"),n=e(this).data("max"),a=e(this).data("step"),l=e(this).data("labels");e(this).slider({value:t,min:i,max:n,range:"min",step:a,create:function(){e(this).find(".ui-slider-handle").text(e(this).slider("value"))},slide:function(t,i){e(this).find("input").val(i.value),e(this).find(".ui-slider-handle").text(i.value),e(this).siblings(".feedback").find("strong").text(i.value+l)}})}),e(function(){e(document).on("yith-plugin-fw-codemirror-init",function(){"undefined"!=typeof wp&&"undefined"!=typeof wp.codeEditor&&e(".codemirror:not(.codemirror--initialized)").each(function(){var t=e(this).data("settings"),i=wp.codeEditor.initialize(e(this),t);e(this).addClass("codemirror--initialized"),e(this).data("codemirrorInstance",i)})}).trigger("yith-plugin-fw-codemirror-init")}),e(document).on("click",".yith-plugin-fw-select-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!0).trigger("change")}),e(document).on("click",".yith-plugin-fw-deselect-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!1).trigger("change")}),r.each(function(){var t=e(this),i=t.find(".yit-icons-manager-icon-preview").first(),n=t.find(".yit-icons-manager-icon-text");t.on("click",".yit-icons-manager-list li",function(a){var l=e(a.target).closest("li"),o=l.data("font"),s=l.data("icon"),r=l.data("key"),d=l.data("name");i.attr("data-font",o),i.attr("data-icon",s),i.attr("data-key",r),i.attr("data-name",d),n.val(o+":"+d),t.find(".yit-icons-manager-list li").removeClass("active"),l.addClass("active")}),t.on("click",".yit-icons-manager-action-set-default",function(){t.find(".yit-icons-manager-list li.default").trigger("click")})}),e(document).on("click",".yith-plugin-fw-select-images__item",function(){var t=e(this),i=t.data("key"),n=t.closest(".yith-plugin-fw-select-images__wrapper"),a=n.find(".yith-plugin-fw-select-images__item"),l=n.find("select").first();l.length&&(l.val(i).trigger("yith_select_images_value_changed"),a.removeClass("yith-plugin-fw-select-images__item--selected"),t.addClass("yith-plugin-fw-select-images__item--selected"))}),e(document.body).trigger("wc-enhanced-select-init"),e(document).find(".ui-sortable .yith-toggle-elements").sortable({cursor:"move",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop:function(t,i){var n=jQuery(".ui-sortable-handle"),a=0,l=new Array;for(a=0;a<n.length;a++)l[a]=e(n[a]).data("item_key");l.length>0&&e(this).closest(".toggle-element").saveToggleElement(null,l)}}),e(document.body).trigger("yith-framework-enhanced-select-init")}).trigger("yith_fields_init"),e(document).on("click",".yith-plugin-fw-onoff-container span",function(){var t=e(this).prev("input");t.prop("checked")?t.prop("checked",!1).attr("value","no").removeClass("onoffchecked"):t.prop("checked",!0).attr("value","yes").addClass("onoffchecked"),t.change()}),e.fn.saveToggleElement=function(t,i){var n=e(this),a="yith_plugin_fw_save_toggle_element",l=n.serializeToggleElement(),o=n.find(".yith-toggle_wrapper"),s=o.attr("id"),r=e.urlParam("tab");l.append("security",o.data("nonce")),void 0!==i&&i.length>0&&l.append("yith_toggle_elements_order_keys",i),n.closest(".metaboxes-tab.yith-plugin-ui").length?(a="yith_plugin_fw_save_toggle_element_metabox",post_id=e(this).closest("form#post").find("#post_ID").val(),yit_metaboxes_nonce=e(this).closest("form#post").find("#yit_metaboxes_nonce").val(),metabox_tab=e(this).closest(".tabs-panel").attr("id"),url=yith_framework_fw_fields.ajax_url+"?action="+a+"&post_ID="+post_id+"&yit_metaboxes_nonce="+yit_metaboxes_nonce+"&toggle_id="+s+"&metabox_tab="+metabox_tab):url=yith_framework_fw_fields.admin_url+"?action="+a+"&tab="+r+"&toggle_id="+s,e.ajax({type:"POST",url:url,data:l,contentType:!1,processData:!1,success:function(i){t&&t.removeClass("show"),e(document).trigger("yith_save_toggle_element_done",[i,n])}})},e.fn.serializeToggleElement=function(){var t=e(this),i=new FormData,n=e(t).find(":input").serializeArray();return e.each(n,function(e,t){el_name=t.name,i.append(t.name,t.value)}),i},e.fn.formatToggleTitle=function(){var t=e(this),i=t.find(":input"),n=t.find("span.title").data("title_format"),a=t.find(".subtitle").data("subtitle_format"),l=new RegExp("[^%%]+(?=[%%])","g");if(void 0!==n)var o=n.match(l);if(void 0!==a)var s=a.match(l);e.each(i,function(t,i){void 0!==e(i).attr("id")&&($field_id=e(i).attr("id"),$field_array=$field_id.split("_"),$field_array.pop(),$field_id=$field_array.join("_"),$field_val=e(i).val(),null!=o&&void 0!==o&&-1!==o.indexOf($field_id)&&(n=n.replace("%%"+$field_id+"%%",$field_val)),null!=s&&void 0!==s&&-1!==s.indexOf($field_id)&&(a=a.replace("%%"+$field_id+"%%",$field_val)))}),""!==n&&t.find("span.title").html(n),""!==a&&t.find(".subtitle").html(a),e(document).trigger("yith-toggle-element-item-title",[t])},e.urlParam=function(e){var t=new RegExp("[?&]"+e+"=([^&#]*)").exec(window.location.search);return null!==t&&(t[1]||0)},e(document).on("click",".yith-toggle-title",function(t){var i=e(t.target),n=i.closest(".yith-toggle-row"),a=n.find(".yith-toggle-content");if(i.hasClass("yith-plugin-fw-onoff")||i.hasClass("yith-icon-drag"))return!1;n.is(".yith-toggle-row-opened")?a.slideUp(400):a.slideDown(400),n.toggleClass("yith-toggle-row-opened")}),e(document).on("click",".yith-add-box-button",function(t){t.preventDefault();var i=e(this),n=i.data("box_id"),a=i.data("closed_label"),l=i.data("opened_label"),o=i.closest(".yith-toggle_wrapper").attr("id"),s=wp.template("yith-toggle-element-add-box-content-"+o);""!==n&&(e("#"+n).html(s({index:"box_id"})).slideToggle(),""!==a&&(i.html()===a?i.html(l).removeClass("closed"):i.html(a).addClass("closed")),e(document).trigger("yith_fields_init"),e(document).trigger("yith-add-box-button-toggle",[i]))}),e(document).on("click",".yith-add-box-buttons .yith-save-button",function(t){t.preventDefault();var i=e(this).parents(".yith-add-box"),n=e(this).closest(".yith-toggle_wrapper").attr("id"),a=i.find(".spinner"),l=e(this).parents(".toggle-element"),o=i.find(":input"),s=0,r=e('<input type="hidden">');l.find(".yith-toggle-row").each(function(){var t=parseInt(e(this).data("item_key"));s<=t&&(s=t+1)}),r.val(s),e(document).trigger("yith-toggle-change-counter",[r,i]),s=r.val();var d=wp.template("yith-toggle-element-item-"+n),c=e(d({index:s}));a.addClass("show"),e.each(o,function(t,i){if(void 0!==e(i).attr("id")){var n=e(i).attr("id"),a=e(i).val();n="radio"===e(i).attr("type")?(n=(n=e(i).closest(".yith-plugin-fw-radio").attr("id")).replace("new_","")+"_"+s)+"-"+a:n.replace("new_","")+"_"+s,e(i).is(":checked")&&e(c).find("#"+n).prop("checked",!0),(e(i).hasClass("yith-post-search")||e(i).hasClass("yith-term-search"))&&e(c).find("#"+n).html(e("#"+e(i).attr("id")).html()),e(c).find("#"+n).val(a)}}),e(c).formatToggleTitle();var u=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-add",[i,c,u]);setTimeout(function(){if("yes"===u.val()){e(l).find(".yith-toggle-elements").append(c),e(i).find(".yith-plugin-fw-datepicker").datepicker("destroy"),e(i).html(""),e(i).prev(".yith-add-box-button").trigger("click"),l.saveToggleElement();setTimeout(function(){e(l).find(".highlight").removeClass("highlight")},2e3),e(document).trigger("yith_fields_init")}},1e3)}),e(document).on("click",".yith-toggle-row .yith-save-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element"),n=e(this).closest(".yith-toggle-row"),a=n.find(".spinner");n.formatToggleTitle();var l=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-update",[i,n,l]),"yes"===l.val()&&(a.addClass("show"),i.saveToggleElement(a))}),e(document).on("click",".yith-toggle-row .yith-delete-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element");e(this).closest(".yith-toggle-row").remove(),i.saveToggleElement()}),e(document).on("click",".yith-toggle-onoff",function(t){t.preventDefault(),e(this).closest(".toggle-element").saveToggleElement()}),e(document).on("click",".yith-plugin-fw-radio input[type=radio]",function(){var t=e(this).closest(".yith-plugin-fw-radio"),i=e(this).val();t.val(i).data("value",i).trigger("change")}),e(document.body).on("yith-plugin-fw-init-radio",function(){e(".yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)").each(function(){e(this).val(e(this).data("value")),e(this).addClass("yith-plugin-fw-radio--initialized")})}).trigger("yith-plugin-fw-init-radio"),e(document).on("click",".yith-password-eye",function(){var t=e(this),i=e(this).closest(".yith-password-wrapper").find("input");"password"===i.attr("type")?(i.attr("type","text"),t.addClass("yith-password-eye-closed")):(i.attr("type","password"),t.removeClass("yith-password-eye-closed"))}),e(document).on("select2:open",function(t){e(t.target).closest(".yith-plugin-ui").length&&e(".select2-results").closest(".select2-container").addClass("yith-plugin-fw-select2-container")});var t={selectors:{wrapper:".yith-plugin-fw-dimensions",units:{wrapper:".yith-plugin-fw-dimensions__units",single:".yith-plugin-fw-dimensions__unit",value:".yith-plugin-fw-dimensions__unit__value",selectedClass:"yith-plugin-fw-dimensions__unit--selected"},linked:{button:".yith-plugin-fw-dimensions__linked",value:".yith-plugin-fw-dimensions__linked__value",wrapperActiveClass:"yith-plugin-fw-dimensions--linked-active"},dimensions:{number:".yith-plugin-fw-dimensions__dimension__number"}},init:function(){var i=t;e(document).on("click",i.selectors.units.single,i.unitChange),e(document).on("click",i.selectors.linked.button,i.linkedChange),e(document).on("change keyup",i.selectors.dimensions.number,i.numberChange)},unitChange:function(i){var n=e(this).closest(t.selectors.units.single),a=n.closest(t.selectors.units.wrapper),l=a.find(t.selectors.units.single),o=a.find(t.selectors.units.value).first(),s=n.data("value");l.removeClass(t.selectors.units.selectedClass),n.addClass(t.selectors.units.selectedClass),o.val(s)},linkedChange:function(){var i=e(this).closest(t.selectors.linked.button),n=i.closest(t.selectors.wrapper),a=i.find(t.selectors.linked.value);"yes"===a.val()?(n.removeClass(t.selectors.linked.wrapperActiveClass),a.val("no")):(n.addClass(t.selectors.linked.wrapperActiveClass),a.val("yes"),n.find(t.selectors.dimensions.number).first().trigger("change"))},numberChange:function(i){var n=e(this).closest(t.selectors.dimensions.number),a=n.closest(t.selectors.wrapper);a.hasClass(t.selectors.linked.wrapperActiveClass)&&a.find(t.selectors.dimensions.number).val(n.val())}};t.init()}(jQuery);
plugin-fw/includes/class-yit-cpt-unlimited.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * YITH Custom-Post-Type Unlimited Class.
4
- * Manage the custom post types as Portfolio, Contact Forms and similar (called CPTU)
5
  *
6
  * @class YIT_CPT_Unlimited
7
  * @package YITH\PluginFramework\Classes
@@ -19,76 +19,6 @@ if ( ! class_exists( 'YIT_CPT_Unlimited' ) ) {
19
  */
20
  class YIT_CPT_Unlimited {
21
 
22
- /**
23
- * The name of main post type of CPTU.
24
- *
25
- * @var string
26
- */
27
- protected $name = '';
28
-
29
- /**
30
- * The prefix of each post type created by the post of main CPTU
31
- *
32
- * @var string
33
- */
34
- protected $prefix_cpt = '';
35
-
36
- /**
37
- * Labels defined for the main CPTU
38
- *
39
- * @var string
40
- */
41
- protected $labels = '';
42
-
43
- /**
44
- * The configuration arguments of post type
45
- *
46
- * @var string
47
- */
48
- protected $args = '';
49
-
50
- /**
51
- * All post types created by the post of main CPTU
52
- *
53
- * @var array
54
- */
55
- public $post_types = array();
56
-
57
- /**
58
- * Array with all portfolio layouts available for this site
59
- *
60
- * @var array
61
- */
62
- public $layouts = array();
63
-
64
- /**
65
- * The pathname of template folder
66
- *
67
- * @var string
68
- */
69
- protected $template_path = '';
70
-
71
- /**
72
- * The URL of template folder
73
- *
74
- * @var string
75
- */
76
- protected $template_url = '';
77
-
78
- /**
79
- * Unique sequential ID to differentiate same shortcodes in the same page
80
- *
81
- * @var int
82
- */
83
- public $index = 0;
84
-
85
- /**
86
- * Temporary attribute to load automatically the settings for each layout
87
- *
88
- * @var string
89
- */
90
- private $layout = '';
91
-
92
  /**
93
  * YIT_CPT_Unlimited constructor.
94
  *
@@ -96,1810 +26,29 @@ if ( ! class_exists( 'YIT_CPT_Unlimited' ) ) {
96
  */
97
  public function __construct( $args = array() ) {
98
 
99
- $defaults = array(
100
- 'name' => '',
101
- 'post_type_prefix' => '',
102
- 'labels' => array(
103
- 'main_name' => '',
104
- 'singular' => '',
105
- 'plural' => '',
106
- 'menu' => '',
107
- ),
108
- 'manage_layouts' => false,
109
- 'add_multiuploader' => false,
110
- 'sortable' => false,
111
- 'has_single' => false,
112
- 'has_taxonomy' => false,
113
- 'label_item_sing' => '',
114
- 'label_item_plur' => '',
115
- 'shortcode_name' => '',
116
- 'shortcode_icon' => '', // URL or icon name from http://melchoyce.github.io/dashicons/.
117
- 'layout_option' => '_type', // The option ID of layout meta-box.
118
- );
119
- $this->args = wp_parse_args( $args, $defaults );
120
-
121
- // Fix the labels.
122
- if ( empty( $this->args['labels']['main_name'] ) ) {
123
- $this->args['labels']['main_name'] = $this->args['labels']['singular'];
124
- }
125
- if ( empty( $this->args['labels']['menu'] ) ) {
126
- $this->args['labels']['menu'] = $this->args['labels']['singular'];
127
- }
128
-
129
- // Populate.
130
- $this->name = $this->args['name'];
131
- $this->prefix_cpt = $this->args['post_type_prefix'];
132
- $this->labels = $this->args['labels'];
133
-
134
- add_action( 'init', array( $this, 'register_post_type' ) );
135
- add_action( 'init', array( $this, 'register_cptu_post_types' ) );
136
-
137
- add_action( 'save_post', array( $this, 'rewrite_flush' ) );
138
-
139
- // Admin interface.
140
- add_action( 'admin_head', array( $this, 'add_cptu_menu_item' ) );
141
- add_action( 'admin_init', array( $this, 'add_quick_links_metaboxes' ) );
142
- add_action( 'admin_enqueue_scripts', array( $this, 'admin_assets' ) );
143
-
144
- // Meta-boxes.
145
- if ( is_admin() ) {
146
- add_action( 'init', array( $this, 'add_metabox_cptu' ) );
147
- add_action( 'init', array( $this, 'add_metabox_item_fields' ) );
148
- }
149
-
150
- // Multi-uploader.
151
- if ( $this->args['add_multiuploader'] ) {
152
- add_action( 'admin_footer', array( $this, 'add_button_multiuploader' ) );
153
- add_action( 'wp_ajax_yit_cptu_multiuploader', array( $this, 'post_multiuploader' ) );
154
- }
155
-
156
- // Layouts.
157
- if ( $this->args['manage_layouts'] ) {
158
- $this->get_layouts();
159
- }
160
-
161
- // Single layout.
162
- if ( $this->args['has_single'] ) {
163
- add_action( 'yit_loop', array( $this, 'single_template' ) );
164
- add_action( 'wp', array( $this, 'single_template_config' ) );
165
-
166
- if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
167
- add_action( 'init', array( $this, 'single_template_config' ) );
168
- }
169
- }
170
-
171
- // Archive template.
172
- add_action( 'wp', array( $this, 'archive_template' ) );
173
-
174
- // Enqueue the assets of each layout.
175
- add_action( 'wp_enqueue_scripts', array( $this, 'frontend_assets' ) );
176
-
177
- // Add the shortcode, used to show the frontend.
178
- if ( ! empty( $this->args['shortcode_name'] ) ) {
179
- add_shortcode( $this->args['shortcode_name'], array( &$this, 'add_shortcode' ) );
180
- add_filter( 'yit_shortcode_' . $this->args['shortcode_name'] . '_icon', array( $this, 'shortcode_icon' ) );
181
- add_filter( 'yit-shortcode-plugin-init', array( $this, 'add_shortcode_to_box' ) );
182
- }
183
-
184
- // Add sortable feature.
185
- if ( $this->args['sortable'] ) {
186
- add_action( 'admin_enqueue_scripts', array( $this, 'admin_sortable_assets' ) );
187
- add_action( 'wp_ajax_cpt_sort_posts', array( $this, 'sort_posts' ) );
188
- add_action( 'admin_init', array( $this, 'init_menu_order' ) );
189
- add_filter( 'pre_get_posts', array( $this, 'filter_active' ) );
190
- add_filter( 'pre_get_posts', array( $this, 'pre_get_posts' ) );
191
- add_filter( 'get_next_post_where', array( $this, 'sorted_next_post_where' ) );
192
- add_filter( 'get_previous_post_where', array( $this, 'sorted_prev_post_where' ) );
193
- add_filter( 'get_next_post_sort', array( $this, 'sorted_next_post_sort' ) );
194
- add_filter( 'get_previous_post_sort', array( $this, 'sorted_prev_post_sort' ) );
195
- }
196
-
197
- // Add default columns to post type table list.
198
- add_filter( 'manage_edit-' . $this->name . '_columns', array( $this, 'cptu_define_columns' ) );
199
- add_action( 'manage_' . $this->name . '_posts_custom_column', array( $this, 'cptu_change_columns' ), 10, 2 );
200
-
201
- // Add required post type for WordPress importer.
202
- add_filter( 'wp_import_post_data_raw', array( $this, 'add_importer_required_post_type' ) );
203
- add_filter( 'wp_import_terms', array( $this, 'add_importer_required_taxonomy' ) );
204
- add_action( 'wp_import_set_post_terms', array( $this, 'recount_terms_post' ), 10, 3 );
205
-
206
- }
207
-
208
- /**
209
- * Enqueue the assets for the sortable feature
210
- *
211
- * @return void
212
- * @since 1.0
213
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
214
- */
215
- public function admin_sortable_assets() {
216
- global $post;
217
-
218
- if ( ! isset( $post->post_type ) || ! $this->is_valid( $post->post_type ) ) {
219
- return;
220
- }
221
-
222
- wp_enqueue_script( 'yit-cptu-sortable-posts', YIT_CORE_PLUGIN_URL . '/assets/js/yit-cptu-sortable-posts.js', array( 'jquery', 'jquery-ui-sortable' ), '1.0', true );
223
- }
224
-
225
- /**
226
- * Init menu order
227
- *
228
- * @param array $post_types The post types.
229
- */
230
- public function init_menu_order( $post_types = array() ) {
231
- global $wpdb;
232
-
233
- if ( empty( $post_types ) ) {
234
- $post_types = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT post_type FROM $wpdb->posts WHERE post_type LIKE %s", str_replace( '_', '\_', $this->prefix_cpt ) . '%' ) );
235
- } elseif ( ! is_array( $post_types ) ) {
236
- $post_types = array( $post_types );
237
- }
238
-
239
- foreach ( $post_types as $post_type ) {
240
- $count = $wpdb->get_var(
241
- $wpdb->prepare(
242
- "SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = %s AND post_status IN ('publish', 'pending', 'draft', 'private', 'future') AND menu_order = 0",
243
- $post_type
244
- )
245
- );
246
-
247
- if ( empty( $count ) ) {
248
- continue;
249
- }
250
-
251
- $results = $wpdb->get_results(
252
- $wpdb->prepare(
253
- "SELECT ID FROM $wpdb->posts WHERE post_type = %s AND post_status IN ('publish', 'pending', 'draft', 'private', 'future') ORDER BY post_date DESC",
254
- $post_type
255
- )
256
- );
257
-
258
- foreach ( $results as $key => $result ) {
259
- $wpdb->update( $wpdb->posts, array( 'menu_order' => $key + 1 ), array( 'ID' => $result->ID ) );
260
- }
261
- }
262
- }
263
-
264
- /**
265
- * Save the order of posts from sortable feature
266
- *
267
- * @return void
268
- * @since 1.0
269
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
270
- */
271
- public function sort_posts() {
272
- global $wpdb;
273
-
274
- parse_str( $_REQUEST['order'], $data ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended,WordPress.Security.ValidatedSanitizedInput
275
-
276
- if ( is_array( $data ) ) {
277
- $id_arr = array();
278
- foreach ( $data as $key => $values ) {
279
- foreach ( $values as $position => $id ) {
280
- $id_arr[] = $id;
281
- }
282
- }
283
-
284
- $menu_order_arr = array();
285
- foreach ( $id_arr as $key => $id ) {
286
- $results = $wpdb->get_results( $wpdb->prepare( "SELECT menu_order FROM $wpdb->posts WHERE ID = %d", $id ) );
287
- foreach ( $results as $result ) {
288
- $menu_order_arr[] = $result->menu_order;
289
- }
290
- }
291
-
292
- sort( $menu_order_arr );
293
-
294
- foreach ( $data as $key => $values ) {
295
- foreach ( $values as $position => $id ) {
296
- $wpdb->update( $wpdb->posts, array( 'menu_order' => $menu_order_arr[ $position ] ), array( 'ID' => $id ) );
297
- }
298
- }
299
- }
300
-
301
- die();
302
- }
303
-
304
- /**
305
- * Filter Active
306
- *
307
- * @param WC_Query $wp_query The query.
308
- *
309
- * @return mixed
310
- */
311
- public function filter_active( $wp_query ) {
312
- if ( is_admin() && isset( $wp_query->query['suppress_filters'] ) ) {
313
- $wp_query->query['suppress_filters'] = false;
314
- }
315
- if ( is_admin() && isset( $wp_query->query_vars['suppress_filters'] ) ) {
316
- $wp_query->query_vars['suppress_filters'] = false;
317
- }
318
-
319
- return $wp_query;
320
- }
321
-
322
- /**
323
- * Pre get post.
324
- *
325
- * @param WP_Query $wp_query The query.
326
- */
327
- public function pre_get_posts( $wp_query ) {
328
- if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
329
- if ( isset( $wp_query->query['post_type'] ) ) {
330
- $post_types = (array) $wp_query->query['post_type'];
331
- foreach ( $post_types as $post_type ) {
332
- if ( $this->is_valid( $post_type ) ) {
333
- $wp_query->set( 'orderby', 'menu_order' );
334
- $wp_query->set( 'order', 'ASC' );
335
- }
336
- }
337
- }
338
- } else {
339
- $active = false;
340
- if ( isset( $wp_query->query['suppress_filters'] ) || isset( $wp_query->query['post_type'] ) ) {
341
- $post_types = (array) $wp_query->query['post_type'];
342
- foreach ( $post_types as $post_type ) {
343
- if ( $this->is_valid( $post_type ) ) {
344
- $active = true;
345
- }
346
- }
347
- }
348
-
349
- if ( $active ) {
350
- if ( ! isset( $wp_query->query['orderby'] ) || 'post_date' === $wp_query->query['orderby'] ) {
351
- $wp_query->set( 'orderby', 'menu_order' );
352
- }
353
- if ( ! isset( $wp_query->query['order'] ) || 'DESC' === $wp_query->query['order'] ) {
354
- $wp_query->set( 'order', 'ASC' );
355
- }
356
- }
357
- }
358
- }
359
-
360
- /**
361
- * Filters where clause for get next post
362
- *
363
- * @param string $where The 'where'.
364
- *
365
- * @return string
366
- * @since 1.0
367
- * @author Antonio La Rocca <antonio.larocca@yithemes.com>
368
- */
369
- public function sorted_next_post_where( $where ) {
370
- // phpcs:disable WordPress.Security.NonceVerification.Recommended
371
- global $post;
372
- if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['post_id'] ) ) {
373
- $post = get_post( absint( $_REQUEST['post_id'] ) ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
374
- } else {
375
- $post = get_post(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
376
- }
377
-
378
- if ( ! $post || ! $this->is_valid( $post->post_type ) ) {
379
- return $where;
380
- }
381
-
382
- $result = str_replace( "'" . $post->post_date . "'", $post->menu_order, $where );
383
- $result = str_replace( 'p.post_date', 'p.menu_order', $result );
384
-
385
- return $result;
386
- // phpcs:enable
387
- }
388
-
389
- /**
390
- * Filters where clause for get prev post
391
- *
392
- * @param string $where The 'where'.
393
- *
394
- * @return string
395
- * @since 1.0
396
- * @author Antonio La Rocca <antonio.larocca@yithemes.com>
397
- */
398
- public function sorted_prev_post_where( $where ) {
399
- // phpcs:disable WordPress.Security.NonceVerification.Recommended
400
- global $post;
401
-
402
- if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['post_id'] ) ) {
403
- $post = get_post( absint( $_REQUEST['post_id'] ) ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
404
- } else {
405
- $post = get_post(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
406
- }
407
-
408
- if ( ! $post || ! $this->is_valid( $post->post_type ) ) {
409
- return $where;
410
- }
411
-
412
- $result = str_replace( "'" . $post->post_date . "'", $post->menu_order, $where );
413
- $result = str_replace( 'p.post_date', 'p.menu_order', $result );
414
-
415
- return $result;
416
- // phpcs:enable
417
- }
418
-
419
- /**
420
- * Filters sort clause for get next post
421
- *
422
- * @param string $sort The 'sort' param.
423
- *
424
- * @return string
425
- * @since 1.0
426
- * @author Antonio La Rocca <antonio.larocca@yithemes.com>
427
- */
428
- public function sorted_next_post_sort( $sort ) {
429
- // phpcs:disable WordPress.Security.NonceVerification.Recommended
430
- global $post;
431
-
432
- if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['post_id'] ) ) {
433
- $post = get_post( absint( $_REQUEST['post_id'] ) ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
434
- } else {
435
- $post = get_post(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
436
- }
437
-
438
- if ( ! $post || ! $this->is_valid( $post->post_type ) ) {
439
- return $sort;
440
- }
441
-
442
- return str_replace( 'p.post_date', 'p.menu_order', $sort );
443
- // phpcs:enable
444
- }
445
-
446
- /**
447
- * Filters sort clause for get prev post
448
- *
449
- * @param string $sort The 'sort' param.
450
- *
451
- * @return string
452
- * @since 1.0
453
- * @author Antonio La Rocca <antonio.larocca@yithemes.com>
454
- */
455
- public function sorted_prev_post_sort( $sort ) {
456
- // phpcs:disable WordPress.Security.NonceVerification.Recommended
457
- global $post;
458
-
459
- if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['post_id'] ) ) {
460
- $post = get_post( absint( $_REQUEST['post_id'] ) ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
461
- } else {
462
- $post = get_post(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
463
- }
464
-
465
- if ( ! $post || ! $this->is_valid( $post->post_type ) ) {
466
- return $sort;
467
- }
468
-
469
- return str_replace( 'p.post_date', 'p.menu_order', $sort );
470
- // phpcs:enable
471
- }
472
-
473
- /**
474
- * Register post type
475
- * Register the post type for the creation of portfolios
476
- *
477
- * @return void
478
- * @since 1.0
479
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
480
- */
481
- public function register_post_type() {
482
- $labels = array(
483
- 'name' => ucfirst( $this->labels['main_name'] ),
484
- 'singular_name' => ucfirst( $this->labels['singular'] ),
485
- // translators: %s is the singular name of the post type.
486
- 'add_new' => sprintf( __( 'Add %s', 'yith-plugin-fw' ), ucfirst( $this->labels['singular'] ) ),
487
- // translators: %s is the singular name of the post type.
488
- 'add_new_item' => sprintf( __( 'Add New %s', 'yith-plugin-fw' ), ucfirst( $this->labels['singular'] ) ),
489
- // translators: %s is the singular name of the post type.
490
- 'edit_item' => sprintf( __( 'Edit %s', 'yith-plugin-fw' ), ucfirst( $this->labels['singular'] ) ),
491
- // translators: %s is the singular name of the post type.
492
- 'new_item' => sprintf( __( 'New %s', 'yith-plugin-fw' ), ucfirst( $this->labels['singular'] ) ),
493
- // translators: %s is the plural name of the post type.
494
- 'all_items' => sprintf( __( 'All %s', 'yith-plugin-fw' ), ucfirst( $this->labels['plural'] ) ),
495
- // translators: %s is the singular name of the post type.
496
- 'view_item' => sprintf( __( 'View %s', 'yith-plugin-fw' ), ucfirst( $this->labels['singular'] ) ),
497
- // translators: %s is the plural name of the post type.
498
- 'search_items' => sprintf( __( 'Search %s', 'yith-plugin-fw' ), ucfirst( $this->labels['plural'] ) ),
499
- // translators: %s is the plural name of the post type.
500
- 'not_found' => sprintf( __( 'No %s found', 'yith-plugin-fw' ), ucfirst( $this->labels['plural'] ) ),
501
- // translators: %s is the plural name of the post type.
502
- 'not_found_in_trash' => sprintf( __( 'No %s found in Trash', 'yith-plugin-fw' ), ucfirst( $this->labels['plural'] ) ),
503
- 'parent_item_colon' => '',
504
- 'menu_name' => ucfirst( $this->labels['menu'] ),
505
- );
506
-
507
- $args = array(
508
- 'labels' => apply_filters( 'yit_' . $this->name . '_labels', $labels ),
509
- 'public' => false,
510
- 'publicly_queryable' => false,
511
- 'show_ui' => true,
512
- 'show_in_menu' => true,
513
- 'query_var' => false,
514
- 'capability_type' => 'post',
515
- 'hierarchical' => false,
516
- 'menu_position' => null,
517
- 'supports' => array( 'title' ),
518
- );
519
-
520
- if ( ! empty( $this->args['menu_icon'] ) ) {
521
- $args['menu_icon'] = $this->args['menu_icon'];
522
- }
523
-
524
- register_post_type( $this->name, apply_filters( 'yit_' . $this->name . '_args', $args ) );
525
- }
526
-
527
- /**
528
- * Retrieve the values configured inside the custom post type
529
- *
530
- * @param WP_Post $post The post where get the arguments configured in the cpt.
531
- *
532
- * @return array
533
- * @since 1.0
534
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
535
- */
536
- protected function cpt_args( $post ) {
537
- if ( ! isset( $post->ID ) ) {
538
- return;
539
- }
540
-
541
- $args = apply_filters(
542
- 'yit_cptu_register_post_type_args',
543
- array(
544
- 'layout' => get_post_meta( $post->ID, $this->args['layout_option'], true ),
545
- 'rewrite' => get_post_meta( $post->ID, '_rewrite', true ),
546
- 'label_singular' => ! empty( $this->args['label_item_sing'] ) ? $this->args['label_item_sing'] : get_post_meta( $post->ID, '_label_singular', true ),
547
- 'label_plural' => ! empty( $this->args['label_item_plur'] ) ? $this->args['label_item_plur'] : get_post_meta( $post->ID, '_label_plural', true ),
548
- 'taxonomy' => get_post_meta( $post->ID, '_taxonomy', true ),
549
- 'taxonomy_rewrite' => get_post_meta( $post->ID, '_taxonomy_rewrite', true ),
550
- ),
551
- $this->name,
552
- $post
553
- );
554
-
555
- $title = $post->post_title;
556
-
557
- if ( empty( $args['label_singular'] ) ) {
558
- $args['label_singular'] = $title;
559
- }
560
-
561
- if ( empty( $args['label_plural'] ) ) {
562
- $args['label_plural'] = $title;
563
- }
564
-
565
- return $args;
566
- }
567
-
568
- /**
569
- * Retrieve the post types created for this CPTU
570
- *
571
- * @return array The link changed
572
- * @since 1.0
573
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
574
- */
575
- public function get_post_types() {
576
- if ( ! empty( $this->post_types ) ) {
577
- return $this->post_types;
578
- }
579
-
580
- $args = array(
581
- 'post_type' => $this->name,
582
- 'posts_per_page' => - 1,
583
- 'post_status' => 'publish',
584
- );
585
- $this->post_types = get_posts( $args );
586
-
587
- return $this->post_types;
588
- }
589
-
590
- /**
591
- * Register portfolio post types
592
- * Register the post types for each portfolio created by admin
593
- *
594
- * @return void
595
- * @since 1.0
596
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
597
- */
598
- public function register_cptu_post_types() {
599
- $post_types = $this->get_post_types();
600
- $pts = array();
601
-
602
- foreach ( $post_types as $pt ) {
603
- extract( $this->cpt_args( $pt ) ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
604
- /**
605
- * Fields.
606
- *
607
- * @var string $label_singular The singular label.
608
- * @var string $label_plural The plural label.
609
- * @var string $layout The layout.
610
- */
611
-
612
- $name = $pt->post_name;
613
- $title = $pt->post_title;
614
-
615
- $labels = array(
616
- 'name' => $title,
617
- 'singular_name' => $label_singular,
618
- // translators: $s is the singular name of the post type.
619
- 'add_new' => sprintf( __( 'Add %s', 'yith-plugin-fw' ), $label_singular ),
620
- // translators: $s is the singular name of the post type.
621
- 'add_new_item' => sprintf( __( 'Add New %s', 'yith-plugin-fw' ), $label_singular ),
622
- // translators: $s is the singular name of the post type.
623
- 'edit_item' => sprintf( __( 'Edit %s', 'yith-plugin-fw' ), $label_singular ),
624
- // translators: $s is the singular name of the post type.
625
- 'new_item' => sprintf( __( 'New %s', 'yith-plugin-fw' ), $label_singular ),
626
- // translators: $s is the plural name of the post type.
627
- 'all_items' => sprintf( __( 'All %s', 'yith-plugin-fw' ), $label_plural ),
628
- // translators: $s is the singular name of the post type.
629
- 'view_item' => sprintf( __( 'View %s', 'yith-plugin-fw' ), $label_singular ),
630
- // translators: $s is the plural name of the post type.
631
- 'search_items' => sprintf( __( 'Search %s', 'yith-plugin-fw' ), $label_plural ),
632
- // translators: $s is the plural name of the post type.
633
- 'not_found' => sprintf( __( 'No %s found', 'yith-plugin-fw' ), $label_plural ),
634
- // translators: $s is the plural name of the post type.
635
- 'not_found_in_trash' => sprintf( __( 'No %s found in Trash', 'yith-plugin-fw' ), $label_plural ),
636
- 'parent_item_colon' => '',
637
- 'menu_name' => $title,
638
- );
639
-
640
- $args = array(
641
- 'labels' => apply_filters( 'yit_' . $this->prefix_cpt . $name . '_labels', $labels ),
642
- 'public' => true,
643
- 'publicly_queryable' => true,
644
- 'show_ui' => true,
645
- 'show_in_menu' => false,
646
- 'query_var' => true,
647
- 'capability_type' => 'post',
648
- 'hierarchical' => false,
649
- 'menu_position' => null,
650
- 'supports' => array( 'title', 'editor', 'thumbnail' ),
651
- );
652
-
653
- if ( ! $this->args['has_single'] ) {
654
- $args['public'] = false;
655
- $args['publicly_queryable'] = false;
656
- $args['query_var'] = false;
657
- }
658
-
659
- if ( $this->args['manage_layouts'] && isset( $this->layouts[ $layout ] ) && ! $this->layouts[ $layout ]['support']['description'] ) {
660
- unset( $args['supports'][1] ); // Remove 'editor'.
661
- }
662
-
663
- if ( ! empty( $rewrite ) ) {
664
- $args['rewrite'] = array( 'slug' => $rewrite );
665
- }
666
-
667
- $post_type = yit_avoid_duplicate( str_replace( '-', '_', substr( $this->prefix_cpt . $name, 0, 16 ) ), $post_types );
668
- register_post_type( $post_type, apply_filters( 'yit_' . $this->prefix_cpt . $name . '_args', $args, $pt ) );
669
-
670
- update_post_meta( $pt->ID, '_post_type', $post_type );
671
- $pts[] = $post_type;
672
-
673
- if ( $this->args['has_taxonomy'] && ! empty( $taxonomy ) ) {
674
- $labels = array(
675
- // translators: %s is the singular name of the post type.
676
- 'name' => sprintf( _x( '%s Categories', 'taxonomy general name', 'yith-plugin-fw' ), $label_singular ),
677
- 'singular_name' => _x( 'Category', 'taxonomy singular name', 'yith-plugin-fw' ),
678
- 'search_items' => __( 'Search Categories', 'yith-plugin-fw' ),
679
- 'all_items' => __( 'All Categories', 'yith-plugin-fw' ),
680
- 'parent_item' => __( 'Parent Category', 'yith-plugin-fw' ),
681
- 'parent_item_colon' => __( 'Parent Category:', 'yith-plugin-fw' ),
682
- 'edit_item' => __( 'Edit Category', 'yith-plugin-fw' ),
683
- 'update_item' => __( 'Update Category', 'yith-plugin-fw' ),
684
- 'add_new_item' => __( 'Add New Category', 'yith-plugin-fw' ),
685
- 'new_item_name' => __( 'New Category Name', 'yith-plugin-fw' ),
686
- 'menu_name' => __( 'Category', 'yith-plugin-fw' ),
687
- );
688
-
689
- $args = array(
690
- 'hierarchical' => true,
691
- 'labels' => $labels,
692
- 'show_ui' => true,
693
- 'show_admin_column' => true,
694
- 'query_var' => true,
695
- );
696
-
697
- if ( ! empty( $taxonomy_rewrite ) ) {
698
- $args['rewrite'] = array( 'slug' => $taxonomy_rewrite );
699
- }
700
-
701
- register_taxonomy( substr( $taxonomy, 0, 32 ), $post_type, $args );
702
- }
703
- }
704
-
705
- wp_cache_set( 'yit_cptu_post_types', $post_types );
706
- }
707
-
708
- /**
709
- * Flush Rewrite Rules
710
- * rewrite rules when a cpt unlimited is saved
711
- *
712
- * @param int $post The post ID.
713
- *
714
- * @return void
715
- * @since 1.0
716
- * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
717
- */
718
- public function rewrite_flush( $post ) {
719
- if ( isset( $post ) && $this->is_valid( get_post_type( intval( $post ) ) ) ) {
720
- flush_rewrite_rules();
721
- }
722
- }
723
-
724
- /**
725
- * Add the item for each portfolio under "Portfolios"
726
- *
727
- * @return void
728
- * @since 1.0
729
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
730
- */
731
- public function add_cptu_menu_item() {
732
- // phpcs:disable WordPress.Security.NonceVerification.Recommended,WordPress.WP.GlobalVariablesOverride.Prohibited
733
- global $submenu, $post, $parent_file, $pagenow;
734
-
735
- if ( isset( $post->post_type ) ) {
736
- $post_type = $post->post_type;
737
- } elseif ( isset( $_REQUEST['post_type'] ) ) {
738
- $post_type = sanitize_key( wp_unslash( $_REQUEST['post_type'] ) );
739
- } else {
740
- return;
741
- }
742
-
743
- $item = 'edit.php?post_type=' . $this->name;
744
-
745
- if ( strpos( $post_type, $this->prefix_cpt ) !== false ) {
746
- global $wpdb;
747
- $portfolio = $wpdb->get_row( $wpdb->prepare( "SELECT p.* FROM $wpdb->postmeta AS pm INNER JOIN $wpdb->posts AS p ON p.ID = pm.post_id WHERE pm.meta_key = %s AND pm.meta_value = %s AND p.post_type = %s", '_post_type', $post_type, $this->name ) );
748
-
749
- if ( ! isset( $portfolio->ID ) ) {
750
- return;
751
- }
752
-
753
- $label_singular = ! empty( $this->args['label_item_sing'] ) ? $this->args['label_item_sing'] : get_post_meta( $portfolio->ID, '_label_singular', true );
754
- $label_plural = ! empty( $this->args['label_item_plur'] ) ? $this->args['label_item_plur'] : get_post_meta( $portfolio->ID, '_label_plural', true );
755
-
756
- if ( empty( $label_plural ) ) {
757
- $label_plural = $portfolio->post_title;
758
- }
759
-
760
- if ( empty( $label_singular ) ) {
761
- $label_singular = $portfolio->post_title;
762
- }
763
-
764
- $submenu[ $item ][15] = array( ucfirst( $label_plural ), 'edit_posts', 'edit.php?post_type=' . $post_type );
765
- $submenu[ $item ][20] = array(
766
- sprintf(
767
- // translators: %s is the singular name of the post type.
768
- __( 'Add %s', 'yith-plugin-fw' ),
769
- ucfirst( $label_singular )
770
- ),
771
- 'edit_posts',
772
- 'post-new.php?post_type=' . $post_type,
773
- );
774
-
775
- global $wp_taxonomies;
776
- $taxonomy = get_post_meta( $portfolio->ID, '_taxonomy', true );
777
- if ( isset( $wp_taxonomies[ $taxonomy ] ) ) {
778
- $submenu[ $item ][25] = array( __( 'Categories', 'yith-plugin-fw' ), 'edit_posts', 'edit-tags.php?taxonomy=' . $taxonomy . '&post_type=' . $post_type );
779
- }
780
- }
781
-
782
- // Set the parent item inside the single of each post type.
783
- if ( 'post.php' === $pagenow && isset( $_GET['post'] ) && $this->is_valid( get_post_type( intval( $_GET['post'] ) ) ) ) {
784
- $parent_file = 'edit.php?post_type=' . $this->name;
785
- }
786
-
787
- // phpcs:enable
788
- }
789
-
790
- /**
791
- * Locate folder of CPTU templates, if there isn't a layouts management
792
- *
793
- * @return string
794
- * @since 1.0
795
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
796
- */
797
- public function template_path() {
798
- if ( ! empty( $this->template_path ) ) {
799
- return $this->template_path;
800
- }
801
-
802
- $stylesheet_path_1 = get_stylesheet_directory() . '/theme/templates/' . $this->name . '/';
803
- $stylesheet_path_2 = get_template_directory() . '/theme/templates/' . $this->name . '/';
804
- $template_path_1 = get_stylesheet_directory() . '/' . $this->name . '/';
805
- $template_path_2 = get_template_directory() . '/' . $this->name . '/';
806
- $plugin_path = $this->args['plugin_path'] . '/templates/';
807
-
808
- foreach ( array( 'stylesheet_path_1', 'stylesheet_path_2', 'template_path_1', 'template_path_2', 'plugin_path' ) as $var ) {
809
- $path = ${$var};
810
-
811
- if ( file_exists( $path ) ) {
812
- $this->template_path = $path;
813
- }
814
- }
815
-
816
- return $this->template_path;
817
- }
818
-
819
- /**
820
- * Locate folder of CPTU templates, if there isn't a layouts management
821
- *
822
- * @return string
823
- * @since 1.0
824
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
825
- */
826
- public function template_url() {
827
- if ( ! empty( $this->template_url ) ) {
828
- return $this->template_path;
829
- }
830
-
831
- $this->template_url = str_replace(
832
- array(
833
- get_stylesheet_directory(),
834
- get_template_directory(),
835
- $this->args['plugin_path'],
836
- ),
837
- array(
838
- get_stylesheet_directory_uri(),
839
- get_template_directory_uri(),
840
- $this->args['plugin_url'],
841
- ),
842
- $this->template_path()
843
- );
844
-
845
- return $this->template_url;
846
- }
847
-
848
- /**
849
- * Retrieve all layouts to manage by custom post type added in the site in this order:
850
- * 1. Child theme (if exists)
851
- * 2. Theme
852
- * 3. Plugin
853
- * It also load the config.php file of each layout
854
- *
855
- * @return void
856
- * @since 1.0
857
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
858
- */
859
- public function get_layouts() {
860
- $stylesheet_path_1 = get_stylesheet_directory() . '/theme/templates/' . $this->name . '/';
861
- $stylesheet_path_2 = get_template_directory() . '/theme/templates/' . $this->name . '/';
862
- $template_path_1 = get_stylesheet_directory() . '/' . $this->name . '/';
863
- $template_path_2 = get_template_directory() . '/' . $this->name . '/';
864
- $plugin_path = $this->args['plugin_path'] . '/templates/';
865
-
866
- foreach ( array( 'stylesheet_path_1', 'stylesheet_path_2', 'template_path_1', 'template_path_2', 'plugin_path' ) as $var ) {
867
- $path = ${$var};
868
-
869
- if ( file_exists( $path ) ) {
870
- foreach ( scandir( $path ) as $scan ) {
871
- if ( ! isset( $this->layouts[ $scan ] ) && is_dir( $path . $scan ) && ! in_array( $scan, array( '.', '..', '.svn' ), true ) && '_' !== $scan[0] ) {
872
- $this->layouts[ $scan ] = array(
873
- 'name' => ucfirst( str_replace( '-', ' ', $scan ) ),
874
- 'path' => $path . $scan,
875
- 'url' => str_replace(
876
- array(
877
- get_stylesheet_directory(),
878
- get_template_directory(),
879
- $this->args['plugin_path'],
880
- ),
881
- array(
882
- get_stylesheet_directory_uri(),
883
- get_template_directory_uri(),
884
- $this->args['plugin_url'],
885
- ),
886
- $path . $scan
887
- ),
888
- 'css' => array(),
889
- 'js' => array(),
890
- 'support' => array(
891
- 'description' => true,
892
- ),
893
- 'columns' => array(),
894
- );
895
-
896
- // Set the vars for config.php.
897
- $layout = $scan;
898
- $this->layout = $layout; // temporary attribute to load automatically the configuration inside the config.php, for this layout.
899
-
900
- if ( ! in_array( $scan, array( 'single' ), true ) && file_exists( $path . $scan . '/config.php' ) ) {
901
- include_once $path . $scan . '/config.php';
902
- }
903
- }
904
- }
905
- }
906
- }
907
- }
908
-
909
- /**
910
- * Say if you want to set description for the current layout or not. This method must be used only inside the
911
- * config.php file of layout
912
- *
913
- * @param string $v 'yes' or 'no'.
914
- *
915
- * @return void
916
- * @since 1.0
917
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
918
- */
919
- public function add_description_field( $v ) {
920
- $this->layouts[ $this->layout ]['support']['description'] = 'yes' === $v;
921
- }
922
-
923
- /**
924
- * Add the extra fields for the specific layout type of portfolio
925
- *
926
- * @param array $fields The fields to add.
927
- *
928
- * @return void
929
- * @since 1.0
930
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
931
- */
932
- public function add_layout_fields( $fields = array() ) {
933
- foreach ( $fields as $id => $val ) {
934
- unset( $fields[ $id ] );
935
- $id = $this->layout . '_' . $id;
936
- $fields[ $id ] = $val;
937
- }
938
-
939
- $this->layouts[ $this->layout ]['fields'] = $fields;
940
- }
941
-
942
- /**
943
- * Add fields to add to the metabox of each item of each post type created
944
- *
945
- * @param array $fields The fields to add.
946
- *
947
- * @return void
948
- * @since 1.0
949
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
950
- */
951
- public function add_item_fields( $fields = array() ) {
952
- foreach ( $fields as $id => $val ) {
953
- unset( $fields[ $id ] );
954
- $fields[ $id ] = $val;
955
- }
956
- $this->layouts[ $this->layout ]['item_fields'] = $fields;
957
- }
958
-
959
- /**
960
- * Add columns to the table list
961
- *
962
- * @param array $columns The columns to add in the table list.
963
- *
964
- * @return void
965
- * @since 1.0
966
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
967
- */
968
- public function add_table_columns( $columns ) {
969
- $this->layouts[ $this->layout ]['columns'] = $columns;
970
- }
971
-
972
- /**
973
- * Enqueue the css files of layout
974
- *
975
- * @param string $handle Name of the stylesheet.
976
- * @param string|bool $src Path to the stylesheet from the root directory of WordPress. Example: '/css/mystyle.css'.
977
- * @param array $deps An array of registered style handles this stylesheet depends on. Default empty array.
978
- * @param string|bool $ver String specifying the stylesheet version number, if it has one. This parameter is used
979
- * to ensure that the correct version is sent to the client regardless of caching, and so
980
- * should be included if a version number is available and makes sense for the stylesheet.
981
- * @param string $media Optional. The media for which this stylesheet has been defined.
982
- * Default 'all'. Accepts 'all', 'aural', 'braille', 'handheld', 'projection', 'print',
983
- * 'screen', 'tty', or 'tv'.
984
- *
985
- * @return void
986
- * @since 1.0
987
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
988
- */
989
- public function enqueue_style( $handle, $src = false, $deps = array(), $ver = false, $media = 'all' ) {
990
- $this->layouts[ $this->layout ]['css'][] = compact( 'handle', 'src', 'deps', 'ver', 'media' );
991
- }
992
-
993
- /**
994
- * Enqueue the js files of layout
995
- *
996
- * @param string $handle Name of the script.
997
- * @param string|bool $src Path to the script from the root directory of WordPress. Example: '/js/myscript.js'.
998
- * @param array $deps An array of registered handles this script depends on. Default empty array.
999
- * @param string|bool $ver Optional. String specifying the script version number, if it has one. This parameter
1000
- * is used to ensure that the correct version is sent to the client regardless of caching,
1001
- * and so should be included if a version number is available and makes sense for the script.
1002
- * @param bool $in_footer Optional. Whether to enqueue the script before </head> or before </body>.
1003
- * Default 'false'. Accepts 'false' or 'true'.
1004
- *
1005
- * @return void
1006
- * @since 1.0
1007
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1008
- */
1009
- public function enqueue_script( $handle, $src = false, $deps = array(), $ver = false, $in_footer = false ) {
1010
- $this->layouts[ $this->layout ]['js'][] = compact( 'handle', 'src', 'deps', 'ver', 'in_footer' );
1011
- }
1012
-
1013
- /**
1014
- * Enqueue the assets for the frontend
1015
- *
1016
- * @return void
1017
- * @since 1.0
1018
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1019
- */
1020
- public function frontend_assets() {
1021
- global $post;
1022
-
1023
- // Not single.
1024
- if ( ! is_single() || ! isset( $post->post_type ) || ! $this->is_valid( $post->post_type ) ) {
1025
- $posts = get_posts(
1026
- array(
1027
- 'post_type' => $this->name,
1028
- 'posts_per_page' => - 1,
1029
- 'post_status' => 'publish',
1030
- 'fields' => 'ids',
1031
- )
1032
- );
1033
-
1034
- $enqueued = array();
1035
-
1036
- foreach ( $posts as $post_id ) {
1037
- $layout = get_post_meta( $post_id, $this->args['layout_option'], true );
1038
-
1039
- if ( in_array( $layout, array( $enqueued ), true ) || ! isset( $this->layouts[ $layout ]['css'] ) ) {
1040
- continue;
1041
- }
1042
-
1043
- foreach ( $this->layouts[ $layout ]['css'] as $asset ) {
1044
- if ( empty( $asset ) ) {
1045
- continue;
1046
- }
1047
- yit_enqueue_style( $asset['handle'], empty( $asset['src'] ) ? false : $this->locate_url( $layout ) . $asset['src'], $asset['deps'], $asset['ver'], $asset['media'] );
1048
- }
1049
-
1050
- $enqueued[] = $layout;
1051
- }
1052
- } else {
1053
- // Load assets of single template.
1054
- $layout = 'single';
1055
-
1056
- if ( ! isset( $this->layouts[ $layout ]['css'] ) ) {
1057
- return;
1058
- }
1059
-
1060
- foreach ( $this->layouts[ $layout ]['css'] as $asset ) {
1061
- if ( empty( $asset ) ) {
1062
- continue;
1063
- }
1064
- yit_enqueue_style( $asset['handle'], $this->locate_url( $layout ) . $asset['src'], $asset['deps'], $asset['ver'], $asset['media'] );
1065
- }
1066
- }
1067
-
1068
  }
1069
 
1070
  /**
1071
- * Register Metaboxes options
1072
- * Add the metabox for the portfolio settings
1073
  *
1074
- * @return void
1075
- * @since 1.0
1076
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1077
- */
1078
- public function add_metabox_cptu() {
1079
-
1080
- // Reorganize layouts.
1081
- if ( $this->args['manage_layouts'] ) {
1082
- $layouts = array();
1083
- foreach ( $this->layouts as $layout_id => $layout ) {
1084
- if ( 'single' === $layout_id ) {
1085
- continue;
1086
- }
1087
- $layouts[ $layout_id ] = $layout['name'];
1088
- }
1089
-
1090
- $layouts = apply_filters( 'yit_cptu_' . $this->name . '_layout_values', $layouts );
1091
- }
1092
-
1093
- $single_layouts = apply_filters( 'yit_cptu_' . $this->name . '_single_layout_values', array() );
1094
-
1095
- $metabox_args = array(
1096
- 'label' => sprintf(
1097
- // translators: %s is the singular name of the post type.
1098
- __( '%s Settings', 'yith-plugin-fw' ),
1099
- $this->labels['singular']
1100
- ),
1101
- 'pages' => $this->name,
1102
- 'context' => 'normal',
1103
- 'priority' => 'default',
1104
- 'tabs' => array(
1105
- 'settings' => array(
1106
- 'label' => __( 'Settings', 'yith-plugin-fw' ),
1107
- 'fields' => apply_filters(
1108
- 'yit_cptu_fields',
1109
- array(
1110
- 'type' => array(
1111
- 'label' => __( 'Type', 'yith-plugin-fw' ),
1112
- 'desc' => sprintf(
1113
- // translators: %s is the singular name of the post type.
1114
- __( 'Layout for this %s', 'yith-plugin-fw' ),
1115
- strtolower( $this->labels['singular'] )
1116
- ),
1117
- 'type' => 'select',
1118
- 'options' => isset( $layouts ) ? $layouts : array(),
1119
- 'std' => '',
1120
- ),
1121
- 'rewrite' => array(
1122
- 'label' => __( 'Rewrite', 'yith-plugin-fw' ),
1123
- 'desc' => __( 'Univocal identification name in the URL for each product (slug from post if empty)', 'yith-plugin-fw' ),
1124
- 'type' => 'text',
1125
- 'std' => '',
1126
- ),
1127
- 'label_singular' => array(
1128
- 'label' => __( 'Label in Singular', 'yith-plugin-fw' ),
1129
- 'desc' => __( 'Set a label in singular (title of portfolio if empty)', 'yith-plugin-fw' ),
1130
- 'type' => 'text',
1131
- 'std' => '',
1132
- ),
1133
- 'label_plural' => array(
1134
- 'label' => __( 'Label in Plural', 'yith-plugin-fw' ),
1135
- 'desc' => __( 'Set a label in plural (title of portfolio if empty)', 'yith-plugin-fw' ),
1136
- 'type' => 'text',
1137
- 'std' => '',
1138
- ),
1139
- 'taxonomy' => array(
1140
- 'label' => __( 'Taxonomy', 'yith-plugin-fw' ),
1141
- 'desc' => __( 'If you want to use categories in the portfolio, set a name for taxonomy. Name should be a slug (must not contain capital letters nor spaces) and must not be more than 32 characters long (database structure restriction).', 'yith-plugin-fw' ),
1142
- 'type' => 'text',
1143
- 'std' => '',
1144
- ),
1145
- 'taxonomy_rewrite' => array(
1146
- 'label' => __( 'Taxonomy Rewrite', 'yith-plugin-fw' ),
1147
- 'desc' => __( 'Set univocal name for each category page URL.', 'yith-plugin-fw' ),
1148
- 'type' => 'text',
1149
- 'std' => '',
1150
- ),
1151
- 'single_layout' => array(
1152
- 'label' => __( 'Single layout', 'yith-plugin-fw' ),
1153
- 'desc' => __( 'Layout for single page of this portfolio', 'yith-plugin-fw' ),
1154
- 'type' => 'select',
1155
- 'options' => $single_layouts,
1156
- 'std' => '',
1157
- ),
1158
- )
1159
- ),
1160
- ),
1161
- ),
1162
-
1163
- );
1164
-
1165
- if ( ! $this->args['has_single'] ) {
1166
- unset( $metabox_args['tabs']['settings']['fields']['rewrite'] );
1167
- }
1168
-
1169
- if ( ! $this->args['has_taxonomy'] ) {
1170
- unset( $metabox_args['tabs']['settings']['fields']['taxonomy'] );
1171
- unset( $metabox_args['tabs']['settings']['fields']['taxonomy_rewrite'] );
1172
- }
1173
-
1174
- if ( ! empty( $this->args['label_item_sing'] ) ) {
1175
- unset( $metabox_args['tabs']['settings']['fields']['label_singular'] );
1176
- }
1177
-
1178
- if ( ! empty( $this->args['label_item_plur'] ) ) {
1179
- unset( $metabox_args['tabs']['settings']['fields']['label_plural'] );
1180
- }
1181
-
1182
- if ( $this->args['manage_layouts'] ) {
1183
-
1184
- if ( count( $layouts ) < 1 ) {
1185
- unset( $metabox_args['tabs']['settings']['fields']['type'] );
1186
- }
1187
-
1188
- // Layouts options.
1189
- foreach ( $this->layouts as $layout => $args ) {
1190
- if ( ! isset( $args['fields'] ) ) {
1191
- continue;
1192
- }
1193
-
1194
- // Section title.
1195
- $metabox_args['tabs']['settings']['fields'][ $layout . '_title' ] = array(
1196
- 'desc' => $args['name'] . ' ' . __( 'layout settings', 'yith-plugin-fw' ),
1197
- 'type' => 'title',
1198
- 'deps' => array(
1199
- 'ids' => '_type',
1200
- 'values' => $layout,
1201
- ),
1202
- );
1203
-
1204
- // Options.
1205
- foreach ( $args['fields'] as $field_id => $field ) {
1206
- $metabox_args['tabs']['settings']['fields'][ $field_id ] = $field;
1207
- $metabox_args['tabs']['settings']['fields'][ $field_id ]['deps'] = array(
1208
- 'ids' => '_type',
1209
- 'values' => $layout,
1210
- );
1211
- }
1212
- }
1213
- } else {
1214
- unset( $metabox_args['tabs']['settings']['fields']['type'] );
1215
- }
1216
-
1217
- if ( count( $single_layouts ) < 1 ) {
1218
- unset( $metabox_args['tabs']['settings']['fields']['single_layout'] );
1219
- }
1220
-
1221
- // Undo if tab empty.
1222
- if ( empty( $metabox_args['tabs']['settings']['fields'] ) ) {
1223
- return;
1224
- }
1225
-
1226
- $metabox = YIT_Metabox( $this->name . '_cptu_settings' );
1227
- $metabox->init( $metabox_args );
1228
- }
1229
-
1230
- /**
1231
- * Register Metaboxes options
1232
- * Add the metabox for the portfolio settings
1233
- *
1234
- * @return void
1235
- * @since 1.0
1236
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1237
- */
1238
- public function add_metabox_item_fields() {
1239
- // phpcs:disable WordPress.Security.NonceVerification.Recommended,WordPress.WP.GlobalVariablesOverride.Prohibited
1240
- global $pagenow, $post_type;
1241
-
1242
- // Get the actual post type, to add the metabox only if necessary.
1243
- if ( 'post.php' === $pagenow && isset( $_REQUEST['post'] ) ) {
1244
- $post_type = get_post_type( intval( $_REQUEST['post'] ) );
1245
- } elseif ( 'post.php' === $pagenow && isset( $_REQUEST['post_ID'] ) ) {
1246
- $post_type = get_post_type( intval( $_REQUEST['post_ID'] ) );
1247
- } elseif ( 'post-new.php' === $pagenow && isset( $_REQUEST['post_type'] ) ) {
1248
- $post_type = sanitize_key( wp_unslash( $_REQUEST['post_type'] ) );
1249
- } else {
1250
- return;
1251
- }
1252
-
1253
- $layout = get_post_meta( $this->get_id_by_name( $post_type ), $this->args['layout_option'], true );
1254
-
1255
- if ( empty( $this->layouts[ $layout ]['item_fields'] ) ) {
1256
- return;
1257
- }
1258
-
1259
- $metabox_args = array(
1260
- 'label' => __( 'Settings', 'yith-plugin-fw' ),
1261
- 'pages' => $post_type,
1262
- 'context' => 'normal',
1263
- 'priority' => 'default',
1264
- 'tabs' => array(
1265
- 'settings' => array(
1266
- 'label' => __( 'Settings', 'yith-plugin-fw' ),
1267
- 'fields' => $this->layouts[ $layout ]['item_fields'],
1268
- ),
1269
- ),
1270
- );
1271
-
1272
- $metabox = YIT_Metabox( $post_type . '_item_fields' );
1273
- $metabox->init( $metabox_args );
1274
-
1275
- // phpcs:enable
1276
- }
1277
-
1278
- /**
1279
- * Add quick links inside the editing page of CPTU and Custom Post Types
1280
- *
1281
- * @return void
1282
- * @since 1.0
1283
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1284
- */
1285
- public function add_quick_links_metaboxes() {
1286
- add_meta_box( $this->name . '_quick_links', __( 'Quick links', 'yith-plugin-fw' ), array( $this, 'quick_links_cptu_inner' ), $this->name, 'side', 'high' );
1287
-
1288
- $args = array(
1289
- 'post_type' => $this->name,
1290
- 'posts_per_page' => - 1,
1291
- 'post_status' => 'publish',
1292
- );
1293
- $post_types = get_posts( $args );
1294
-
1295
- foreach ( $post_types as $post ) {
1296
- $post_type = get_post_meta( $post->ID, '_post_type', true );
1297
- add_meta_box( $post->post_type . '_quick_links', __( 'Quick links', 'yith-plugin-fw' ), array( $this, 'quick_links_cpt_inner' ), $post_type, 'side', 'high' );
1298
- }
1299
- }
1300
-
1301
- /**
1302
- * Link to: "View Items", inside the CPTU
1303
- *
1304
- * @param WP_Post $post The post.
1305
- *
1306
- * @return void
1307
- * @since 1.0
1308
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1309
- */
1310
- public function quick_links_cptu_inner( $post ) {
1311
- extract( $this->cpt_args( $post ) ); //phpcs:ignore WordPress.PHP.DontExtract.extract_extract
1312
- /**
1313
- * Extracted fields.
1314
- *
1315
- * @var string $label_plural The plural label.
1316
- */
1317
- ?>
1318
- <a href="<?php echo esc_url( admin_url( 'edit.php?post_type=' . get_post_meta( $post->ID, '_post_type', true ) ) ); ?>">
1319
- <?php
1320
- echo esc_html(
1321
- sprintf(
1322
- // translators: %s is the plural label of the post type.
1323
- __( 'View %s', 'yith-plugin-fw' ),
1324
- $label_plural
1325
- )
1326
- );
1327
- ?>
1328
- </a>
1329
- <?php
1330
- }
1331
-
1332
- /**
1333
- * Link to: "Edit %s", inside the CPTU
1334
- *
1335
- * @param WP_Post $post The Post.
1336
- *
1337
- * @return void
1338
- * @since 1.0
1339
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1340
- */
1341
- public function quick_links_cpt_inner( $post ) {
1342
- $post = get_post( $this->get_id_by_name( $post->post_type ) );
1343
- $url = admin_url( "post.php?post={$post->ID}&action=edit" );
1344
- ?>
1345
- <a href="<?php echo esc_url( $url ); ?>">
1346
- <?php
1347
- echo esc_html(
1348
- sprintf(
1349
- // translators: %s is the post title.
1350
- __( 'Edit %s', 'yith-plugin-fw' ),
1351
- $post->post_title
1352
- )
1353
- );
1354
- ?>
1355
- </a>
1356
- <?php
1357
- }
1358
-
1359
- /**
1360
- * Define the columns to use in the list table of main sliders post type
1361
- *
1362
- * @param array $columns The columns used in the list table.
1363
- *
1364
- * @return array
1365
- * @since 1.0
1366
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1367
- */
1368
- public function cptu_define_columns( $columns ) {
1369
- unset( $columns['date'] );
1370
-
1371
- $columns['actions'] = '';
1372
-
1373
- return $columns;
1374
- }
1375
-
1376
- /**
1377
- * Change the content of each column of the table list
1378
- *
1379
- * @param string $column The current column.
1380
- * @param int $post_id The current post ID.
1381
- *
1382
- * @return void
1383
- * @since 1.0
1384
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1385
- */
1386
- public function cptu_change_columns( $column, $post_id ) {
1387
- $post = get_post( $post_id );
1388
- extract( $this->cpt_args( $post ) ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
1389
- /**
1390
- * Extracted fields.
1391
- *
1392
- * @var string $label_plural The plural label.
1393
- */
1394
-
1395
- switch ( $column ) {
1396
- case 'actions':
1397
- $edit_url = admin_url( "post.php?post={$post_id}&action=edit" );
1398
- $view_url = admin_url( 'edit.php?post_type=' . get_post_meta( $post_id, '_post_type', true ) );
1399
- $edit_label = sprintf(
1400
- // translators: %s is the singular name of the post type.
1401
- __( 'Edit %s', 'yith-plugin-fw' ),
1402
- ucfirst( $this->labels['singular'] )
1403
- );
1404
- $view_label = sprintf(
1405
- // translators: %s is the plural name of the post type.
1406
- __( 'View %s', 'yith-plugin-fw' ),
1407
- $label_plural
1408
- );
1409
- echo '<a href="' . esc_url( $edit_url ) . '" class="button-secondary">' . esc_html( $edit_label ) . '</a> ';
1410
- echo '<a href="' . esc_url( $view_url ) . '" class="button-secondary">' . esc_html( $view_label ) . '</a> ';
1411
- break;
1412
- }
1413
- }
1414
-
1415
- /**
1416
- * Retrieve the path of layout specified in parameter
1417
- *
1418
- * @param string $layout The layout.
1419
- * @param string $file The file to find.
1420
- *
1421
- * @return bool|string
1422
- * @since 1.0
1423
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1424
- */
1425
- public function locate_file( $layout, $file = '' ) {
1426
- if ( ! $this->args['manage_layouts'] ) {
1427
- return $this->template_path() . '/' . ( ! empty( $file ) ? $file . '.php' : '' );
1428
- }
1429
-
1430
- if ( ! isset( $this->layouts[ $layout ] ) ) {
1431
- $layout = 'default';
1432
- }
1433
-
1434
- return $this->layouts[ $layout ]['path'] . '/' . ( ! empty( $file ) ? $file . '.php' : '' );
1435
- }
1436
-
1437
- /**
1438
- * Retrieve the URL of layout specified in parameter
1439
- *
1440
- * @param string $layout The layout.
1441
- * @param string $file The file to find.
1442
- *
1443
- * @return bool|string
1444
- * @since 1.0
1445
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1446
- */
1447
- public function locate_url( $layout, $file = '' ) {
1448
- if ( ! $this->args['manage_layouts'] ) {
1449
- return $this->template_url();
1450
-
1451
- }
1452
-
1453
- if ( ! isset( $this->layouts[ $layout ] ) ) {
1454
- $layout = 'default';
1455
- }
1456
-
1457
- return $this->layouts[ $layout ]['url'] . '/' . ( ! empty( $file ) ? $file . '.php' : '' );
1458
- }
1459
-
1460
- /**
1461
- * Retrieve the post ID relative to the post of post type
1462
- *
1463
- * @param string $name the name.
1464
- *
1465
- * @return mixed
1466
- * @since 1.0
1467
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1468
- */
1469
- protected function get_id_by_name( $name ) {
1470
- global $wpdb;
1471
-
1472
- return $wpdb->get_var( $wpdb->prepare( "SELECT pm.post_id FROM $wpdb->postmeta AS pm INNER JOIN $wpdb->posts AS p ON p.ID = pm.post_id WHERE pm.meta_key = %s AND pm.meta_value = %s AND p.post_type = %s", '_post_type', $name, $this->name ) );
1473
- }
1474
-
1475
- /**
1476
- * Retrieve the post_type of portfolio by portfolio name
1477
- *
1478
- * @param string $name the name.
1479
- *
1480
- * @return mixed
1481
- * @since 1.0
1482
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1483
- */
1484
- protected function get_post_type_by_name( $name ) {
1485
- global $wpdb;
1486
-
1487
- return $wpdb->get_var( $wpdb->prepare( "SELECT pm.meta_value FROM $wpdb->postmeta AS pm INNER JOIN $wpdb->posts AS p ON p.ID = pm.post_id WHERE pm.meta_key = %s AND p.post_name = %s AND p.post_type = %s", '_post_type', $name, $this->name ) );
1488
- }
1489
-
1490
- /**
1491
- * The shortcode used to show the frontend
1492
- *
1493
- * @param array $atts Attributes.
1494
- * @param string|null $content The content.
1495
- *
1496
- * @return string|null
1497
- * @since 1.0
1498
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1499
- */
1500
- public function add_shortcode( $atts, $content = null ) {
1501
- $atts = wp_parse_args(
1502
- $atts,
1503
- array(
1504
- 'name' => null,
1505
- 'cat' => array(),
1506
- 'posts_per_page' => false,
1507
- 'style' => null,
1508
- )
1509
- );
1510
-
1511
- // Don't show the slider if 'name' is empty or is 'none'.
1512
- if ( empty( $atts['name'] ) || 'none' === $atts['name'] ) {
1513
- return null;
1514
- }
1515
-
1516
- // Compatibility fix: remove prefix if exists in portfolio object.
1517
- if ( function_exists( 'YIT_Portfolio' ) && method_exists( YIT_Portfolio(), 'is' ) && YIT_Portfolio()->is( $atts['name'] ) ) {
1518
- $atts['name'] = str_replace( YIT_Portfolio()->post_type_prefix, '', $atts['name'] );
1519
- }
1520
-
1521
- // Pass vars to template.
1522
- $atts['post_type'] = $this->get_post_type_by_name( $atts['name'] );
1523
- $atts['layout'] = $this->args['manage_layouts'] ? get_post_meta( $this->get_id_by_name( $atts['post_type'] ), $this->args['layout_option'], true ) : '';
1524
- extract( apply_filters( 'yit_cptu_frontend_vars', $atts, $this->name ) ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
1525
-
1526
- /**
1527
- * Extracted fields.
1528
- *
1529
- * @var string $layout The layout.
1530
- */
1531
-
1532
- // Add the javascript assets.
1533
- if ( $this->args['manage_layouts'] && isset( $this->layouts[ $layout ]['js'] ) && ! empty( $this->layouts[ $layout ]['js'] ) ) {
1534
- foreach ( $this->layouts[ $layout ]['js'] as $asset ) {
1535
- if ( empty( $asset ) ) {
1536
- continue;
1537
- }
1538
-
1539
- if ( empty( $asset['src'] ) ) {
1540
- wp_enqueue_script( $asset['handle'] );
1541
- continue;
1542
- }
1543
-
1544
- yit_enqueue_script( $asset['handle'], $this->locate_url( $layout ) . $asset['src'], $asset['deps'], $asset['ver'], $asset['in_footer'] );
1545
- }
1546
- }
1547
-
1548
- // Unique sequential index to differentiate more cpt in the same page.
1549
- ++ $this->index;
1550
-
1551
- ob_start();
1552
- include $this->locate_file( $layout, 'markup' );
1553
-
1554
- return ob_get_clean();
1555
- }
1556
-
1557
- /**
1558
- * Shortcode icon
1559
- * Return the shortcode icone to display on shortcode panel
1560
- *
1561
- * @param string $icon_url Icone url found by yit_shortcode plugin.
1562
- *
1563
- * @return string
1564
- * @since 1.0.0
1565
- * @author Antonino Scarfi' <antonio.scarfi@yithemes.it>
1566
- */
1567
- public function shortcode_icon( $icon_url ) {
1568
- return ! empty( $this->args['shortcode_icon'] ) ? $this->args['shortcode_icon'] : $icon_url;
1569
- }
1570
-
1571
- /**
1572
- * Return an array with cptu options to shortcode panel
1573
- * All definition settings to add cptu shortcode to Yit Shortcode Panel
1574
- *
1575
- * @param array $shortcodes Shortcodes.
1576
- *
1577
- * @return array
1578
- * @since 1.0
1579
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1580
- */
1581
- public function add_shortcode_to_box( $shortcodes ) {
1582
- $post_types = array();
1583
-
1584
- foreach ( $this->get_post_types() as $post ) {
1585
- $post_types[ $post->post_name ] = $post->post_title;
1586
- }
1587
-
1588
- $args = array(
1589
- $this->args['shortcode_name'] => array(
1590
- 'title' => $this->labels['singular'],
1591
- 'description' => sprintf(
1592
- // translators: %s is the name of the post type.
1593
- __( 'Show frontend of the %s', 'yith-plugin-fw' ),
1594
- $this->labels['main_name']
1595
- ),
1596
- 'tab' => 'cpt',
1597
- 'create' => false,
1598
- 'has_content' => false,
1599
- 'in_visual_composer' => true,
1600
- 'attributes' => array(
1601
- 'name' => array(
1602
- 'title' => __( 'Name', 'yith-plugin-fw' ),
1603
- 'type' => 'select',
1604
- 'options' => $post_types,
1605
- 'std' => '',
1606
- ),
1607
- ),
1608
- ),
1609
- );
1610
-
1611
- return array_merge( $shortcodes, $args );
1612
- }
1613
-
1614
- /**
1615
- * Check the post type passed in parameter, if is generated by this CPTU
1616
- *
1617
- * @param string $post_type The post type to check.
1618
  *
1619
  * @return bool
1620
- * @since 1.0
1621
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1622
- */
1623
- protected function is_valid( $post_type ) {
1624
- return (bool) ( strpos( $post_type, $this->args['post_type_prefix'] ) !== false );
1625
- }
1626
-
1627
- /**
1628
- * Add as a valid post type all cptu when importing dummy data
1629
- *
1630
- * @param array $post The post object.
1631
- *
1632
- * @return array
1633
- * @since 1.0
1634
- * @author Antonio La Rocca <antonio.larocca@yithemes.com>
1635
- */
1636
- public function add_importer_required_post_type( $post ) {
1637
- // phpcs:disable WordPress.WP.GlobalVariablesOverride.Prohibited
1638
- global $wp_post_types, $wp_taxonomies;
1639
-
1640
- if ( strpos( $post['post_type'], $this->prefix_cpt ) === false ) {
1641
- return $post;
1642
- }
1643
-
1644
- if ( ! isset( $wp_post_types[ $post['post_type'] ] ) ) {
1645
- $wp_post_types[ $post['post_type'] ] = array( 'name' => '' );
1646
- }
1647
-
1648
- if ( ! empty( $post['terms'] ) ) {
1649
- foreach ( $post['terms'] as $term ) {
1650
- if ( ! isset( $wp_taxonomies[ $term['domain'] ] ) ) {
1651
- $wp_taxonomies[ $term['domain'] ] = array( 'name' => '' );
1652
- }
1653
- }
1654
- }
1655
-
1656
- return $post;
1657
- // phpcs:enable
1658
- }
1659
-
1660
- /**
1661
- * Add taxonomy when importing dummy data
1662
- *
1663
- * @param array $terms Array of terms.
1664
- *
1665
- * @return array
1666
- * @since 1.0
1667
- * @author Antonio La Rocca <antonio.larocca@yithemes.com>
1668
- */
1669
- public function add_importer_required_taxonomy( $terms ) {
1670
- // phpcs:disable WordPress.WP.GlobalVariablesOverride.Prohibited
1671
- global $wp_taxonomies;
1672
-
1673
- if ( ! empty( $terms ) ) {
1674
- foreach ( $terms as $term ) {
1675
- if ( isset( $term['domain'] ) && ! isset( $wp_taxonomies[ $term['domain'] ] ) ) {
1676
- $wp_taxonomies[ $term['domain'] ] = array( 'name' => '' );
1677
- }
1678
- }
1679
- }
1680
-
1681
- return $terms;
1682
- // phpcs:enable
1683
- }
1684
-
1685
- /**
1686
- * Force terms recount for imported taxonomy
1687
- *
1688
- * @param array $tt_ids Terms ids.
1689
- * @param array $ids Post ids.
1690
- * @param string $tax Taxonomy name.
1691
- *
1692
- * @return void
1693
- * @since 1.0
1694
- * @author Antonio La Rocca <antonio.larocca@yithemes.com>
1695
  */
1696
- public function recount_terms_post( $tt_ids, $ids, $tax ) {
1697
- wp_update_term_count( $tt_ids, $tax );
1698
  }
1699
 
1700
- // ### ASSETS ###
1701
-
1702
  /**
1703
- * Enqueue the assets for the admin
1704
  *
1705
- * @return void
1706
- * @since 1.0
1707
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1708
- */
1709
- public function admin_assets() {
1710
- $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
1711
- wp_enqueue_media();
1712
- wp_enqueue_script( 'yit-cptu', YIT_CORE_PLUGIN_URL . '/assets/js/yit-cpt-unlimited' . $suffix . '.js', array( 'jquery' ), '1.0.0', true );
1713
- }
1714
-
1715
- /**
1716
- * Add the button to the top of the list table page of CPTU
1717
  *
1718
- * @return void
1719
- * @since 1.0
1720
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1721
- */
1722
- public function add_button_multiuploader() {
1723
- global $pagenow, $post_type, $wpdb;
1724
-
1725
- if ( 'edit.php' !== $pagenow ) {
1726
- return;
1727
- }
1728
-
1729
- $cptu = $wpdb->get_var( $wpdb->prepare( "SELECT p.post_type FROM $wpdb->postmeta AS pm INNER JOIN $wpdb->posts AS p ON p.ID = pm.post_id WHERE pm.meta_key = %s AND pm.meta_value = %s", '_post_type', $post_type ) );
1730
-
1731
- $post = get_post( $this->get_id_by_name( $post_type ) );
1732
- if ( empty( $post ) ) {
1733
- return;
1734
- }
1735
- extract( $this->cpt_args( $post ) ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
1736
-
1737
- /**
1738
- * Extracted fields.
1739
- *
1740
- * @var string $label_plural The plural label.
1741
- */
1742
-
1743
- if ( $cptu !== $this->name || ! $this->is_valid( $post_type ) ) {
1744
- return;
1745
- }
1746
-
1747
- $uploader_title = sprintf(
1748
- // translators: %s is the plural name of the post type.
1749
- __( 'Add %s from images', 'yith-plugin-fw' ),
1750
- $label_plural
1751
- );
1752
-
1753
- $uploader_button_text = sprintf(
1754
- // translators: %s is the plural name of the post type.
1755
- __( 'Add %s', 'yith-plugin-fw' ),
1756
- $label_plural
1757
- );
1758
- ?>
1759
- <script>
1760
- ( function ( $ ) {
1761
- "use strict";
1762
-
1763
- var button = $( '<a />', {
1764
- href : '#',
1765
- class : 'multi-uploader add-new-h2',
1766
- 'data-uploader_title' : '<?php esc_html( $uploader_title ); ?>',
1767
- 'data-uploader_button_text': '<?php esc_html( $uploader_button_text ); ?>',
1768
- 'data-nonce' : '<?php echo esc_html( wp_create_nonce( 'cpt-unlimited-multiuploader' ) ); ?>'
1769
- } ).text( '<?php esc_html_e( 'Upload multiple files', 'yith-plugin-fw' ); ?>' );
1770
-
1771
- var spinner = $( '<span />', {
1772
- class: 'spinner',
1773
- style: 'float: none;'
1774
- } );
1775
-
1776
- button.appendTo( '.wrap h2, .wrap h1' ).after( spinner );
1777
-
1778
- } )( jQuery );
1779
- </script>
1780
- <?php
1781
- }
1782
-
1783
- /**
1784
- * Add more posts by multiupload
1785
- *
1786
- * @return void
1787
- * @since 1.0
1788
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1789
- */
1790
- public function post_multiuploader() {
1791
- check_ajax_referer( 'cpt-unlimited-multiuploader' );
1792
-
1793
- if ( ! isset( $_REQUEST['images'] ) || ! isset( $_REQUEST['post_type'] ) && $this->is_valid( sanitize_key( wp_unslash( $_REQUEST['post_type'] ) ) ) ) {
1794
- return;
1795
- }
1796
-
1797
- foreach ( $_REQUEST['images'] as $the ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
1798
- // Create post object.
1799
- $arg = array(
1800
- 'post_title' => $the['title'],
1801
- 'post_type' => sanitize_key( wp_unslash( $_REQUEST['post_type'] ) ),
1802
- );
1803
- $post_id = wp_insert_post( $arg );
1804
- set_post_thumbnail( $post_id, $the['id'] );
1805
- }
1806
-
1807
- die();
1808
- }
1809
-
1810
-
1811
- // ###### SINGLE TEMPLATE ######
1812
-
1813
- /**
1814
- * Load the single template file
1815
- *
1816
- * @return void
1817
- * @since 1.0
1818
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1819
- */
1820
- public function single_template() {
1821
- global $post, $wpdb;
1822
-
1823
- if ( ( ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && ! is_single() ) || ! isset( $post->post_type ) || ! $this->is_valid( $post->post_type ) ) {
1824
- return;
1825
- }
1826
-
1827
- // Add the javascript assets.
1828
- if ( $this->args['manage_layouts'] ) {
1829
- foreach ( $this->layouts['single']['js'] as $asset ) {
1830
- yit_enqueue_script( $asset['handle'], $this->locate_url( 'single' ) . $asset['src'], $asset['deps'], $asset['ver'], $asset['in_footer'] );
1831
- }
1832
- }
1833
-
1834
- $post_name = $wpdb->get_var( $wpdb->prepare( "SELECT p.post_name FROM $wpdb->postmeta AS pm INNER JOIN $wpdb->posts AS p ON p.ID = pm.post_id WHERE pm.meta_key = %s AND pm.meta_value = %s AND p.post_type = %s", '_post_type', $post->post_type, $this->name ) );
1835
- extract( apply_filters( 'yit_cptu_frontend_vars', array( 'name' => $post_name ), $this->name ) ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
1836
-
1837
- include $this->locate_file( 'single', 'markup' );
1838
- }
1839
-
1840
- /**
1841
- * Load a file for the configuration of single template page of portfolio
1842
- *
1843
- * @return void
1844
- * @since 1.0
1845
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1846
- */
1847
- public function single_template_config() {
1848
- // phpcs:disable WordPress.Security.NonceVerification.Recommended,WordPress.WP.GlobalVariablesOverride.Prohibited
1849
- global $post, $wpdb;
1850
-
1851
- if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['post_id'] ) ) {
1852
- $post = get_post( absint( $_REQUEST['post_id'] ) );
1853
- }
1854
-
1855
- if ( ( ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && ! is_single() ) || ! isset( $post->post_type ) || ! $this->is_valid( $post->post_type ) ) {
1856
- return;
1857
- }
1858
-
1859
- $this->layout = 'single';
1860
- $path = $this->locate_file( 'single', 'config' );
1861
-
1862
- if ( file_exists( $path ) ) {
1863
- $post_name = $wpdb->get_var( $wpdb->prepare( "SELECT p.post_name FROM $wpdb->postmeta AS pm INNER JOIN $wpdb->posts AS p ON p.ID = pm.post_id WHERE pm.meta_key = %s AND pm.meta_value = %s AND p.post_type = %s", '_post_type', $post->post_type, $this->name ) );
1864
- extract( apply_filters( 'yit_cptu_frontend_vars', array( 'name' => $post_name ), $this->name ) ); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
1865
-
1866
- include $path;
1867
- }
1868
- // phpcs:enable
1869
- }
1870
-
1871
- // ########################## ARCHIVE TEMPLATE ###############################
1872
-
1873
- /**
1874
- * Load the template for archive page
1875
- *
1876
- * @return void
1877
- * @since 1.0
1878
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1879
- */
1880
- public function archive_template() {
1881
- global $wp_query;
1882
-
1883
- // Check if we are in archive template.
1884
- if ( ! ( ! is_admin() && is_archive() && isset( $wp_query->post ) && $this->is_valid( $wp_query->post->post_type ) ) ) {
1885
- return;
1886
- }
1887
-
1888
- // Remove the action from loop of theme.
1889
- remove_action( 'yit_content_loop', 'yit_content_loop', 10 );
1890
- add_action( 'yit_content_loop', array( $this, 'archive_template_loop' ), 10 );
1891
- }
1892
-
1893
- /**
1894
- * Load loop for the archive template
1895
- *
1896
- * @return void
1897
- * @since 1.0
1898
- * @author Antonino Scarfi' <antonino.scarfi@yithemes.com>
1899
  */
1900
- public function archive_template_loop() {
1901
- global $wp_query;
1902
- echo $this->add_shortcode( array( 'name' => $wp_query->post->post_type ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1903
  }
1904
  }
1905
  }
1
  <?php
2
  /**
3
  * YITH Custom-Post-Type Unlimited Class.
4
+ * Deprecated! Kept only to prevent fatal errors if someone is using it.
5
  *
6
  * @class YIT_CPT_Unlimited
7
  * @package YITH\PluginFramework\Classes
19
  */
20
  class YIT_CPT_Unlimited {
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  /**
23
  * YIT_CPT_Unlimited constructor.
24
  *
26
  */
27
  public function __construct( $args = array() ) {
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  }
30
 
31
  /**
32
+ * Avoid issues when calling a non-defined method
 
33
  *
34
+ * @param string $name Name of the missing method.
35
+ * @param array $arguments Arguments.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  *
37
  * @return bool
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  */
39
+ public function __call( $name, $arguments ) {
40
+ return false;
41
  }
42
 
 
 
43
  /**
44
+ * Avoid issues when calling a non-defined attribute
45
  *
46
+ * @param string $key Name of the missing attribute.
 
 
 
 
 
 
 
 
 
 
 
47
  *
48
+ * @return bool
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  */
50
+ public function __get( $key ) {
51
+ return false;
 
52
  }
53
  }
54
  }
plugin-fw/init.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
- * Version: 3.5.2
5
  * Author: YITH
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author YITH
10
- * @version 3.5.2
11
  * @package YITH\PluginFramework
12
  */
13
 
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
+ * Version: 3.5.3
5
  * Author: YITH
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author YITH
10
+ * @version 3.5.3
11
  * @package YITH\PluginFramework
12
  */
13
 
plugin-fw/languages/yith-plugin-fw-el.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-el.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2021-01-12 12:19:55+00:00\n"
8
  "PO-Revision-Date: 2020-09-25 09:16:07+0000\n"
9
  "Language: el_GR\n"
10
  "MIME-Version: 1.0\n"
@@ -37,229 +37,6 @@ msgstr "Επιλογή Χρώματος"
37
  msgid "Color value"
38
  msgstr "Αξία χρώματος"
39
 
40
- #. translators: %s is the singular name of the post type.
41
- #. translators: $s is the singular name of the post type.
42
- #. translators: %s is the singular name of the post type.
43
- #. translators: %s is the plural name of the post type.
44
- #: includes/class-yit-cpt-unlimited.php:486
45
- #: includes/class-yit-cpt-unlimited.php:619
46
- #: includes/class-yit-cpt-unlimited.php:768
47
- #: includes/class-yit-cpt-unlimited.php:1755
48
- msgid "Add %s"
49
- msgstr "Προσθήκη %s"
50
-
51
- #. translators: %s is the singular name of the post type.
52
- #. translators: $s is the singular name of the post type.
53
- #: includes/class-yit-cpt-unlimited.php:488
54
- #: includes/class-yit-cpt-unlimited.php:621
55
- msgid "Add New %s"
56
- msgstr "Προσθήκη Νέου %s"
57
-
58
- #. translators: %s is the singular name of the post type.
59
- #. translators: $s is the singular name of the post type.
60
- #. translators: %s is the post title.
61
- #. translators: %s is the singular name of the post type.
62
- #: includes/class-yit-cpt-unlimited.php:490
63
- #: includes/class-yit-cpt-unlimited.php:623
64
- #: includes/class-yit-cpt-unlimited.php:1350
65
- #: includes/class-yit-cpt-unlimited.php:1401
66
- msgid "Edit %s"
67
- msgstr "Επεξεργασία %s"
68
-
69
- #. translators: %s is the singular name of the post type.
70
- #. translators: $s is the singular name of the post type.
71
- #: includes/class-yit-cpt-unlimited.php:492
72
- #: includes/class-yit-cpt-unlimited.php:625
73
- msgid "New %s"
74
- msgstr "Νέο %s"
75
-
76
- #. translators: %s is the plural name of the post type.
77
- #. translators: $s is the plural name of the post type.
78
- #: includes/class-yit-cpt-unlimited.php:494
79
- #: includes/class-yit-cpt-unlimited.php:627
80
- msgid "All %s"
81
- msgstr "Όλα %s"
82
-
83
- #. translators: %s is the singular name of the post type.
84
- #. translators: $s is the singular name of the post type.
85
- #. translators: %s is the plural label of the post type.
86
- #. translators: %s is the plural name of the post type.
87
- #: includes/class-yit-cpt-unlimited.php:496
88
- #: includes/class-yit-cpt-unlimited.php:629
89
- #: includes/class-yit-cpt-unlimited.php:1323
90
- #: includes/class-yit-cpt-unlimited.php:1406
91
- msgid "View %s"
92
- msgstr "Προβολή %s"
93
-
94
- #. translators: %s is the plural name of the post type.
95
- #. translators: $s is the plural name of the post type.
96
- #: includes/class-yit-cpt-unlimited.php:498
97
- #: includes/class-yit-cpt-unlimited.php:631
98
- msgid "Search %s"
99
- msgstr "Αναζήτηση %s"
100
-
101
- #. translators: %s is the plural name of the post type.
102
- #. translators: $s is the plural name of the post type.
103
- #: includes/class-yit-cpt-unlimited.php:500
104
- #: includes/class-yit-cpt-unlimited.php:633
105
- msgid "No %s found"
106
- msgstr "Δεν βρέθηκε %s"
107
-
108
- #. translators: %s is the plural name of the post type.
109
- #. translators: $s is the plural name of the post type.
110
- #: includes/class-yit-cpt-unlimited.php:502
111
- #: includes/class-yit-cpt-unlimited.php:635
112
- msgid "No %s found in Trash"
113
- msgstr "Δεν βρέθηκε %s στον Κάδο Ανακύκλωσης"
114
-
115
- #: includes/class-yit-cpt-unlimited.php:678 templates/fields/ajax-terms.php:41
116
- msgid "Search Categories"
117
- msgstr "Αναζήτηση Κατηγοριών"
118
-
119
- #: includes/class-yit-cpt-unlimited.php:679
120
- msgid "All Categories"
121
- msgstr "Όλες οι Κατηγορίες"
122
-
123
- #: includes/class-yit-cpt-unlimited.php:680
124
- msgid "Parent Category"
125
- msgstr "Γονική Κατηγορία"
126
-
127
- #: includes/class-yit-cpt-unlimited.php:681
128
- msgid "Parent Category:"
129
- msgstr "Γονική Κατηγορία:"
130
-
131
- #: includes/class-yit-cpt-unlimited.php:682
132
- msgid "Edit Category"
133
- msgstr "Επεξεργασία Kατηγορίας"
134
-
135
- #: includes/class-yit-cpt-unlimited.php:683
136
- msgid "Update Category"
137
- msgstr "Ενημέρωση Κατηγορίας"
138
-
139
- #: includes/class-yit-cpt-unlimited.php:684
140
- msgid "Add New Category"
141
- msgstr "Προσθήκη Νέας Κατηγορίας"
142
-
143
- #: includes/class-yit-cpt-unlimited.php:685
144
- msgid "New Category Name"
145
- msgstr "Όνομα Νέας Κατηγορίας"
146
-
147
- #: includes/class-yit-cpt-unlimited.php:686
148
- msgid "Category"
149
- msgstr "Κατηγορία"
150
-
151
- #: includes/class-yit-cpt-unlimited.php:778
152
- msgid "Categories"
153
- msgstr "Κατηγορίες"
154
-
155
- #. translators: %s is the singular name of the post type.
156
- #: includes/class-yit-cpt-unlimited.php:1098
157
- msgid "%s Settings"
158
- msgstr "Ρυθμίσεις %s"
159
-
160
- #: includes/class-yit-cpt-unlimited.php:1106
161
- #: includes/class-yit-cpt-unlimited.php:1260
162
- #: includes/class-yit-cpt-unlimited.php:1266
163
- #: includes/class-yit-plugin-panel.php:84
164
- msgid "Settings"
165
- msgstr "Ρυθμίσεις"
166
-
167
- #: includes/class-yit-cpt-unlimited.php:1111
168
- msgid "Type"
169
- msgstr "Τύπος"
170
-
171
- #. translators: %s is the singular name of the post type.
172
- #: includes/class-yit-cpt-unlimited.php:1114
173
- msgid "Layout for this %s"
174
- msgstr "Διάταξη για %s"
175
-
176
- #: includes/class-yit-cpt-unlimited.php:1122
177
- msgid "Rewrite"
178
- msgstr "Επανεγγραφή"
179
-
180
- #: includes/class-yit-cpt-unlimited.php:1123
181
- msgid ""
182
- "Univocal identification name in the URL for each product (slug from post if "
183
- "empty)"
184
- msgstr ""
185
- "Μονοσήμαντο όνομα ταυτοποίησης URL για κάθε προϊόν (slug από άρθρο αν είναι "
186
- "κενό)"
187
-
188
- #: includes/class-yit-cpt-unlimited.php:1128
189
- msgid "Label in Singular"
190
- msgstr "Επιγραφή σε Ενικό"
191
-
192
- #: includes/class-yit-cpt-unlimited.php:1129
193
- msgid "Set a label in singular (title of portfolio if empty)"
194
- msgstr "Ορίστε μια επιγραφή στον ενικό (τίτλος πορτφόλιο αν είναι κενό)"
195
-
196
- #: includes/class-yit-cpt-unlimited.php:1134
197
- msgid "Label in Plural"
198
- msgstr "Επιγραφή σε Πληθυντικό"
199
-
200
- #: includes/class-yit-cpt-unlimited.php:1135
201
- msgid "Set a label in plural (title of portfolio if empty)"
202
- msgstr "Ορίστε μια επιγραφή στον πληθυντικό (τίτλος πορτφόλιο αν είναι κενό)"
203
-
204
- #: includes/class-yit-cpt-unlimited.php:1140
205
- msgid "Taxonomy"
206
- msgstr "Ταξινομία"
207
-
208
- #: includes/class-yit-cpt-unlimited.php:1141
209
- msgid ""
210
- "If you want to use categories in the portfolio, set a name for taxonomy. "
211
- "Name should be a slug (must not contain capital letters nor spaces) and must "
212
- "not be more than 32 characters long (database structure restriction)."
213
- msgstr ""
214
- "Αν θέλετε να χρησιμοποιήσετε κατηγορίες στο πορτφόλιο, ορίστε ένα όνομα για "
215
- "την ταξινομία. Το όνομα πρέπει να είναι slug (δεν πρέπει να περιλαμβάνει "
216
- "κεφαλαία γράμματα ή κενά) και δεν πρέπει να είναι μεγαλύτερο από 32 "
217
- "χαρακτήρες (περιορισμός δομής βάσης δεδομένων)."
218
-
219
- #: includes/class-yit-cpt-unlimited.php:1146
220
- msgid "Taxonomy Rewrite"
221
- msgstr "Επανεγγραφή Ταξινομίας"
222
-
223
- #: includes/class-yit-cpt-unlimited.php:1147
224
- msgid "Set univocal name for each category page URL."
225
- msgstr "Ορίστε μονοσήμαντο όνομα για κάθε URL σελίδας κατηγορίας."
226
-
227
- #: includes/class-yit-cpt-unlimited.php:1152
228
- msgid "Single layout"
229
- msgstr "Μονή διάταξη"
230
-
231
- #: includes/class-yit-cpt-unlimited.php:1153
232
- msgid "Layout for single page of this portfolio"
233
- msgstr "Διάταξη μονής σελίδας του πορτφόλιο"
234
-
235
- #: includes/class-yit-cpt-unlimited.php:1196
236
- msgid "layout settings"
237
- msgstr "ρυθμίσεις διάταξης"
238
-
239
- #: includes/class-yit-cpt-unlimited.php:1286
240
- #: includes/class-yit-cpt-unlimited.php:1297
241
- msgid "Quick links"
242
- msgstr "Γρήγορα λινκ"
243
-
244
- #. translators: %s is the name of the post type.
245
- #: includes/class-yit-cpt-unlimited.php:1593
246
- msgid "Show frontend of the %s"
247
- msgstr "Προβολή εμφάνισης του %s"
248
-
249
- #: includes/class-yit-cpt-unlimited.php:1602 templates/fields/customtabs.php:34
250
- #: templates/fields/customtabs.php:76
251
- msgid "Name"
252
- msgstr "Όνομα"
253
-
254
- #. translators: %s is the plural name of the post type.
255
- #: includes/class-yit-cpt-unlimited.php:1749
256
- msgid "Add %s from images"
257
- msgstr "Προσθήκη %s από εικόνες"
258
-
259
- #: includes/class-yit-cpt-unlimited.php:1769
260
- msgid "Upload multiple files"
261
- msgstr "Ανέβασμα πολλαπλών αρχείων"
262
-
263
  #: includes/class-yit-plugin-panel-woocommerce.php:419
264
  msgid "The changes you have made will be lost if you leave this page."
265
  msgstr ""
@@ -269,6 +46,10 @@ msgstr ""
269
  msgid "Plugin Settings"
270
  msgstr "Ρυθμίσεις Προσθέτου"
271
 
 
 
 
 
272
  #: includes/class-yit-plugin-panel.php:450
273
  #: includes/class-yit-plugin-panel.php:453
274
  msgid "How to install premium version"
@@ -612,6 +393,10 @@ msgstr "Αναζήτηση Άρθρου"
612
  msgid "Search Product"
613
  msgstr "Αναζήτηση Προϊόντος"
614
 
 
 
 
 
615
  #: templates/fields/customtabs.php:17
616
  msgid "Close all"
617
  msgstr "Απενεργοποίηση όλων"
@@ -624,6 +409,10 @@ msgstr "Ανάπτυξη όλων"
624
  msgid "Remove"
625
  msgstr "Αφαίρεση"
626
 
 
 
 
 
627
  #: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
628
  msgid "Value"
629
  msgstr "Τιμή"
@@ -803,17 +592,6 @@ msgstr "Άδεια χρήσης προϊόντος"
803
  msgid "YITH"
804
  msgstr "YITH"
805
 
806
- #. translators: %s is the singular name of the post type.
807
- #: includes/class-yit-cpt-unlimited.php:676
808
- msgctxt "taxonomy general name"
809
- msgid "%s Categories"
810
- msgstr "Κατηγορίες %s"
811
-
812
- #: includes/class-yit-cpt-unlimited.php:677
813
- msgctxt "taxonomy singular name"
814
- msgid "Category"
815
- msgstr "Κατηγορία"
816
-
817
  #: includes/class-yith-dashboard.php:96
818
  msgctxt "Plugin FW"
819
  msgid "View Changelog"
@@ -938,6 +716,14 @@ msgctxt "Action links"
938
  msgid "Settings"
939
  msgstr "Ρυθμίσεις"
940
 
 
 
 
 
 
 
 
 
941
  #~ msgid "Show full PHPInfo"
942
  #~ msgstr "Πλήρης εμφάνιση PHPInfo"
943
 
@@ -958,3 +744,129 @@ msgstr "Ρυθμίσεις"
958
 
959
  #~ msgid "and"
960
  #~ msgstr "και"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2021-02-01 10:40:28+00:00\n"
8
  "PO-Revision-Date: 2020-09-25 09:16:07+0000\n"
9
  "Language: el_GR\n"
10
  "MIME-Version: 1.0\n"
37
  msgid "Color value"
38
  msgstr "Αξία χρώματος"
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  #: includes/class-yit-plugin-panel-woocommerce.php:419
41
  msgid "The changes you have made will be lost if you leave this page."
42
  msgstr ""
46
  msgid "Plugin Settings"
47
  msgstr "Ρυθμίσεις Προσθέτου"
48
 
49
+ #: includes/class-yit-plugin-panel.php:84
50
+ msgid "Settings"
51
+ msgstr "Ρυθμίσεις"
52
+
53
  #: includes/class-yit-plugin-panel.php:450
54
  #: includes/class-yit-plugin-panel.php:453
55
  msgid "How to install premium version"
393
  msgid "Search Product"
394
  msgstr "Αναζήτηση Προϊόντος"
395
 
396
+ #: templates/fields/ajax-terms.php:41
397
+ msgid "Search Categories"
398
+ msgstr "Αναζήτηση Κατηγοριών"
399
+
400
  #: templates/fields/customtabs.php:17
401
  msgid "Close all"
402
  msgstr "Απενεργοποίηση όλων"
409
  msgid "Remove"
410
  msgstr "Αφαίρεση"
411
 
412
+ #: templates/fields/customtabs.php:34 templates/fields/customtabs.php:76
413
+ msgid "Name"
414
+ msgstr "Όνομα"
415
+
416
  #: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
417
  msgid "Value"
418
  msgstr "Τιμή"
592
  msgid "YITH"
593
  msgstr "YITH"
594
 
 
 
 
 
 
 
 
 
 
 
 
595
  #: includes/class-yith-dashboard.php:96
596
  msgctxt "Plugin FW"
597
  msgid "View Changelog"
716
  msgid "Settings"
717
  msgstr "Ρυθμίσεις"
718
 
719
+ #~ msgctxt "taxonomy singular name"
720
+ #~ msgid "Category"
721
+ #~ msgstr "Κατηγορία"
722
+
723
+ #~ msgctxt "taxonomy general name"
724
+ #~ msgid "%s Categories"
725
+ #~ msgstr "Κατηγορίες %s"
726
+
727
  #~ msgid "Show full PHPInfo"
728
  #~ msgstr "Πλήρης εμφάνιση PHPInfo"
729
 
744
 
745
  #~ msgid "and"
746
  #~ msgstr "και"
747
+
748
+ #~ msgid "Upload multiple files"
749
+ #~ msgstr "Ανέβασμα πολλαπλών αρχείων"
750
+
751
+ #~ msgid "Add %s from images"
752
+ #~ msgstr "Προσθήκη %s από εικόνες"
753
+
754
+ #~ msgid "Show frontend of the %s"
755
+ #~ msgstr "Προβολή εμφάνισης του %s"
756
+
757
+ #~ msgid "Quick links"
758
+ #~ msgstr "Γρήγορα λινκ"
759
+
760
+ #~ msgid "layout settings"
761
+ #~ msgstr "ρυθμίσεις διάταξης"
762
+
763
+ #~ msgid "Layout for single page of this portfolio"
764
+ #~ msgstr "Διάταξη μονής σελίδας του πορτφόλιο"
765
+
766
+ #~ msgid "Single layout"
767
+ #~ msgstr "Μονή διάταξη"
768
+
769
+ #~ msgid "Set univocal name for each category page URL."
770
+ #~ msgstr "Ορίστε μονοσήμαντο όνομα για κάθε URL σελίδας κατηγορίας."
771
+
772
+ #~ msgid "Taxonomy Rewrite"
773
+ #~ msgstr "Επανεγγραφή Ταξινομίας"
774
+
775
+ #~ msgid ""
776
+ #~ "If you want to use categories in the portfolio, set a name for taxonomy. "
777
+ #~ "Name should be a slug (must not contain capital letters nor spaces) and "
778
+ #~ "must not be more than 32 characters long (database structure restriction)."
779
+ #~ msgstr ""
780
+ #~ "Αν θέλετε να χρησιμοποιήσετε κατηγορίες στο πορτφόλιο, ορίστε ένα όνομα "
781
+ #~ "για την ταξινομία. Το όνομα πρέπει να είναι slug (δεν πρέπει να "
782
+ #~ "περιλαμβάνει κεφαλαία γράμματα ή κενά) και δεν πρέπει να είναι μεγαλύτερο "
783
+ #~ "από 32 χαρακτήρες (περιορισμός δομής βάσης δεδομένων)."
784
+
785
+ #~ msgid "Taxonomy"
786
+ #~ msgstr "Ταξινομία"
787
+
788
+ #~ msgid "Set a label in plural (title of portfolio if empty)"
789
+ #~ msgstr ""
790
+ #~ "Ορίστε μια επιγραφή στον πληθυντικό (τίτλος πορτφόλιο αν είναι κενό)"
791
+
792
+ #~ msgid "Label in Plural"
793
+ #~ msgstr "Επιγραφή σε Πληθυντικό"
794
+
795
+ #~ msgid "Set a label in singular (title of portfolio if empty)"
796
+ #~ msgstr "Ορίστε μια επιγραφή στον ενικό (τίτλος πορτφόλιο αν είναι κενό)"
797
+
798
+ #~ msgid "Label in Singular"
799
+ #~ msgstr "Επιγραφή σε Ενικό"
800
+
801
+ #~ msgid ""
802
+ #~ "Univocal identification name in the URL for each product (slug from post "
803
+ #~ "if empty)"
804
+ #~ msgstr ""
805
+ #~ "Μονοσήμαντο όνομα ταυτοποίησης URL για κάθε προϊόν (slug από άρθρο αν "
806
+ #~ "είναι κενό)"
807
+
808
+ #~ msgid "Rewrite"
809
+ #~ msgstr "Επανεγγραφή"
810
+
811
+ #~ msgid "Layout for this %s"
812
+ #~ msgstr "Διάταξη για %s"
813
+
814
+ #~ msgid "Type"
815
+ #~ msgstr "Τύπος"
816
+
817
+ #~ msgid "%s Settings"
818
+ #~ msgstr "Ρυθμίσεις %s"
819
+
820
+ #~ msgid "Categories"
821
+ #~ msgstr "Κατηγορίες"
822
+
823
+ #~ msgid "Category"
824
+ #~ msgstr "Κατηγορία"
825
+
826
+ #~ msgid "New Category Name"
827
+ #~ msgstr "Όνομα Νέας Κατηγορίας"
828
+
829
+ #~ msgid "Add New Category"
830
+ #~ msgstr "Προσθήκη Νέας Κατηγορίας"
831
+
832
+ #~ msgid "Update Category"
833
+ #~ msgstr "Ενημέρωση Κατηγορίας"
834
+
835
+ #~ msgid "Edit Category"
836
+ #~ msgstr "Επεξεργασία Kατηγορίας"
837
+
838
+ #~ msgid "Parent Category:"
839
+ #~ msgstr "Γονική Κατηγορία:"
840
+
841
+ #~ msgid "Parent Category"
842
+ #~ msgstr "Γονική Κατηγορία"
843
+
844
+ #~ msgid "All Categories"
845
+ #~ msgstr "Όλες οι Κατηγορίες"
846
+
847
+ #~ msgid "No %s found in Trash"
848
+ #~ msgstr "Δεν βρέθηκε %s στον Κάδο Ανακύκλωσης"
849
+
850
+ #~ msgid "No %s found"
851
+ #~ msgstr "Δεν βρέθηκε %s"
852
+
853
+ #~ msgid "Search %s"
854
+ #~ msgstr "Αναζήτηση %s"
855
+
856
+ #~ msgid "View %s"
857
+ #~ msgstr "Προβολή %s"
858
+
859
+ #~ msgid "All %s"
860
+ #~ msgstr "Όλα %s"
861
+
862
+ #~ msgid "New %s"
863
+ #~ msgstr "Νέο %s"
864
+
865
+ #~ msgid "Edit %s"
866
+ #~ msgstr "Επεξεργασία %s"
867
+
868
+ #~ msgid "Add New %s"
869
+ #~ msgstr "Προσθήκη Νέου %s"
870
+
871
+ #~ msgid "Add %s"
872
+ #~ msgstr "Προσθήκη %s"
plugin-fw/languages/yith-plugin-fw-es_ES.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-es_ES.po CHANGED
@@ -4,8 +4,8 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2021-01-12 12:19:55+00:00\n"
8
- "PO-Revision-Date: 2020-09-25 17:04:18+0000\n"
9
  "Language: es\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -37,229 +37,6 @@ msgstr "Seleccionar color"
37
  msgid "Color value"
38
  msgstr "Valor del color"
39
 
40
- #. translators: %s is the singular name of the post type.
41
- #. translators: $s is the singular name of the post type.
42
- #. translators: %s is the singular name of the post type.
43
- #. translators: %s is the plural name of the post type.
44
- #: includes/class-yit-cpt-unlimited.php:486
45
- #: includes/class-yit-cpt-unlimited.php:619
46
- #: includes/class-yit-cpt-unlimited.php:768
47
- #: includes/class-yit-cpt-unlimited.php:1755
48
- msgid "Add %s"
49
- msgstr "Añadir %s"
50
-
51
- #. translators: %s is the singular name of the post type.
52
- #. translators: $s is the singular name of the post type.
53
- #: includes/class-yit-cpt-unlimited.php:488
54
- #: includes/class-yit-cpt-unlimited.php:621
55
- msgid "Add New %s"
56
- msgstr "Añadir nueva %s"
57
-
58
- #. translators: %s is the singular name of the post type.
59
- #. translators: $s is the singular name of the post type.
60
- #. translators: %s is the post title.
61
- #. translators: %s is the singular name of the post type.
62
- #: includes/class-yit-cpt-unlimited.php:490
63
- #: includes/class-yit-cpt-unlimited.php:623
64
- #: includes/class-yit-cpt-unlimited.php:1350
65
- #: includes/class-yit-cpt-unlimited.php:1401
66
- msgid "Edit %s"
67
- msgstr "Editar %s"
68
-
69
- #. translators: %s is the singular name of the post type.
70
- #. translators: $s is the singular name of the post type.
71
- #: includes/class-yit-cpt-unlimited.php:492
72
- #: includes/class-yit-cpt-unlimited.php:625
73
- msgid "New %s"
74
- msgstr "Nuevo %s"
75
-
76
- #. translators: %s is the plural name of the post type.
77
- #. translators: $s is the plural name of the post type.
78
- #: includes/class-yit-cpt-unlimited.php:494
79
- #: includes/class-yit-cpt-unlimited.php:627
80
- msgid "All %s"
81
- msgstr "Todas %s"
82
-
83
- #. translators: %s is the singular name of the post type.
84
- #. translators: $s is the singular name of the post type.
85
- #. translators: %s is the plural label of the post type.
86
- #. translators: %s is the plural name of the post type.
87
- #: includes/class-yit-cpt-unlimited.php:496
88
- #: includes/class-yit-cpt-unlimited.php:629
89
- #: includes/class-yit-cpt-unlimited.php:1323
90
- #: includes/class-yit-cpt-unlimited.php:1406
91
- msgid "View %s"
92
- msgstr "Ver %s"
93
-
94
- #. translators: %s is the plural name of the post type.
95
- #. translators: $s is the plural name of the post type.
96
- #: includes/class-yit-cpt-unlimited.php:498
97
- #: includes/class-yit-cpt-unlimited.php:631
98
- msgid "Search %s"
99
- msgstr "Buscar %s"
100
-
101
- #. translators: %s is the plural name of the post type.
102
- #. translators: $s is the plural name of the post type.
103
- #: includes/class-yit-cpt-unlimited.php:500
104
- #: includes/class-yit-cpt-unlimited.php:633
105
- msgid "No %s found"
106
- msgstr "No se han encontrado %s"
107
-
108
- #. translators: %s is the plural name of the post type.
109
- #. translators: $s is the plural name of the post type.
110
- #: includes/class-yit-cpt-unlimited.php:502
111
- #: includes/class-yit-cpt-unlimited.php:635
112
- msgid "No %s found in Trash"
113
- msgstr "No se han encontrado %s en la Papelera"
114
-
115
- #: includes/class-yit-cpt-unlimited.php:678 templates/fields/ajax-terms.php:41
116
- msgid "Search Categories"
117
- msgstr "Buscar categorías"
118
-
119
- #: includes/class-yit-cpt-unlimited.php:679
120
- msgid "All Categories"
121
- msgstr "Todas las categorías"
122
-
123
- #: includes/class-yit-cpt-unlimited.php:680
124
- msgid "Parent Category"
125
- msgstr "Categoría superior"
126
-
127
- #: includes/class-yit-cpt-unlimited.php:681
128
- msgid "Parent Category:"
129
- msgstr "Categoría superior:"
130
-
131
- #: includes/class-yit-cpt-unlimited.php:682
132
- msgid "Edit Category"
133
- msgstr "Editar categoría"
134
-
135
- #: includes/class-yit-cpt-unlimited.php:683
136
- msgid "Update Category"
137
- msgstr "Actualizar categoría"
138
-
139
- #: includes/class-yit-cpt-unlimited.php:684
140
- msgid "Add New Category"
141
- msgstr "Añadir nueva categoría"
142
-
143
- #: includes/class-yit-cpt-unlimited.php:685
144
- msgid "New Category Name"
145
- msgstr "Nuevo nombre de categoría"
146
-
147
- #: includes/class-yit-cpt-unlimited.php:686
148
- msgid "Category"
149
- msgstr "Categoría"
150
-
151
- #: includes/class-yit-cpt-unlimited.php:778
152
- msgid "Categories"
153
- msgstr "Categorías"
154
-
155
- #. translators: %s is the singular name of the post type.
156
- #: includes/class-yit-cpt-unlimited.php:1098
157
- msgid "%s Settings"
158
- msgstr "Ajustes de %s"
159
-
160
- #: includes/class-yit-cpt-unlimited.php:1106
161
- #: includes/class-yit-cpt-unlimited.php:1260
162
- #: includes/class-yit-cpt-unlimited.php:1266
163
- #: includes/class-yit-plugin-panel.php:84
164
- msgid "Settings"
165
- msgstr "Ajustes"
166
-
167
- #: includes/class-yit-cpt-unlimited.php:1111
168
- msgid "Type"
169
- msgstr "Tipo"
170
-
171
- #. translators: %s is the singular name of the post type.
172
- #: includes/class-yit-cpt-unlimited.php:1114
173
- msgid "Layout for this %s"
174
- msgstr "Diseño para este %s"
175
-
176
- #: includes/class-yit-cpt-unlimited.php:1122
177
- msgid "Rewrite"
178
- msgstr "Rescribir"
179
-
180
- #: includes/class-yit-cpt-unlimited.php:1123
181
- msgid ""
182
- "Univocal identification name in the URL for each product (slug from post if "
183
- "empty)"
184
- msgstr ""
185
- "Nombre de identificación unívoco en la URL para cada producto (slug de la "
186
- "entrada si está vacío)"
187
-
188
- #: includes/class-yit-cpt-unlimited.php:1128
189
- msgid "Label in Singular"
190
- msgstr "Etiqueta en Singular"
191
-
192
- #: includes/class-yit-cpt-unlimited.php:1129
193
- msgid "Set a label in singular (title of portfolio if empty)"
194
- msgstr "Establece una etiqueta en singular (título del porfolio si está vacío)"
195
-
196
- #: includes/class-yit-cpt-unlimited.php:1134
197
- msgid "Label in Plural"
198
- msgstr "Etiqueta en Plural"
199
-
200
- #: includes/class-yit-cpt-unlimited.php:1135
201
- msgid "Set a label in plural (title of portfolio if empty)"
202
- msgstr "Establece una etiqueta en plural (título del porfolio si está vacío)"
203
-
204
- #: includes/class-yit-cpt-unlimited.php:1140
205
- msgid "Taxonomy"
206
- msgstr "Taxonomía"
207
-
208
- #: includes/class-yit-cpt-unlimited.php:1141
209
- msgid ""
210
- "If you want to use categories in the portfolio, set a name for taxonomy. "
211
- "Name should be a slug (must not contain capital letters nor spaces) and must "
212
- "not be more than 32 characters long (database structure restriction)."
213
- msgstr ""
214
- "Si quieres usar categorías en este porfolio, establece un nombre para la "
215
- "taxonomía. EL nombre debe ser un slug (no debe contener mayúsculas ni "
216
- "espacios) y no debe tener más de 32 caracteres de longitud (restricción de "
217
- "estructura de la base de datos)."
218
-
219
- #: includes/class-yit-cpt-unlimited.php:1146
220
- msgid "Taxonomy Rewrite"
221
- msgstr "Rescribir taxonomía"
222
-
223
- #: includes/class-yit-cpt-unlimited.php:1147
224
- msgid "Set univocal name for each category page URL."
225
- msgstr "Establece un nombre unívoco para cada URL de página de categoría"
226
-
227
- #: includes/class-yit-cpt-unlimited.php:1152
228
- msgid "Single layout"
229
- msgstr "Diseño individual"
230
-
231
- #: includes/class-yit-cpt-unlimited.php:1153
232
- msgid "Layout for single page of this portfolio"
233
- msgstr "Diseño para página individual de este porfolio"
234
-
235
- #: includes/class-yit-cpt-unlimited.php:1196
236
- msgid "layout settings"
237
- msgstr "ajustes de diseño"
238
-
239
- #: includes/class-yit-cpt-unlimited.php:1286
240
- #: includes/class-yit-cpt-unlimited.php:1297
241
- msgid "Quick links"
242
- msgstr "Enlaces rápidos"
243
-
244
- #. translators: %s is the name of the post type.
245
- #: includes/class-yit-cpt-unlimited.php:1593
246
- msgid "Show frontend of the %s"
247
- msgstr "Mostrar frontend de %s"
248
-
249
- #: includes/class-yit-cpt-unlimited.php:1602 templates/fields/customtabs.php:34
250
- #: templates/fields/customtabs.php:76
251
- msgid "Name"
252
- msgstr "Nombre"
253
-
254
- #. translators: %s is the plural name of the post type.
255
- #: includes/class-yit-cpt-unlimited.php:1749
256
- msgid "Add %s from images"
257
- msgstr "Añadir %s desde imágenes"
258
-
259
- #: includes/class-yit-cpt-unlimited.php:1769
260
- msgid "Upload multiple files"
261
- msgstr "Subir múltiples archivos"
262
-
263
  #: includes/class-yit-plugin-panel-woocommerce.php:419
264
  msgid "The changes you have made will be lost if you leave this page."
265
  msgstr "Los cambios que has hecho se perderán si abandonas esta página."
@@ -268,10 +45,14 @@ msgstr "Los cambios que has hecho se perderán si abandonas esta página."
268
  msgid "Plugin Settings"
269
  msgstr "Ajustes del plugin"
270
 
 
 
 
 
271
  #: includes/class-yit-plugin-panel.php:450
272
  #: includes/class-yit-plugin-panel.php:453
273
  msgid "How to install premium version"
274
- msgstr "Cómo instalara la versión premium"
275
 
276
  #: includes/class-yit-plugin-panel.php:619
277
  #: includes/class-yit-plugin-subpanel.php:132
@@ -345,7 +126,7 @@ msgstr "Clasificación realizada con éxito"
345
 
346
  #: includes/class-yit-plugin-panel.php:1343
347
  msgid "We need your support"
348
- msgstr "Necesitamos tu ayuda"
349
 
350
  #: includes/class-yit-plugin-panel.php:1344
351
  msgid "to keep updating and improving the plugin. Please,"
@@ -353,7 +134,7 @@ msgstr "para que podamos seguir actualizando y mejorando el plugin. Por favor,"
353
 
354
  #: includes/class-yit-plugin-panel.php:1346
355
  msgid "help us by leaving a five-star rating"
356
- msgstr "ayúdanos dejando una valoración de cinco estrellas"
357
 
358
  #: includes/class-yit-plugin-panel.php:1347
359
  msgid ":) Thanks!"
@@ -551,7 +332,7 @@ msgstr "Eliminar %1$s desde el archivo %2$s "
551
 
552
  #: includes/class-yith-system-status.php:573
553
  msgid "Contact your hosting company in order to enable it."
554
- msgstr "Ponte en contacto con tu empresa de hosting para activarlo."
555
 
556
  #. translators: %1$s opening link tag, %2$s closing link tag
557
  #: includes/class-yith-system-status.php:577
@@ -560,8 +341,7 @@ msgid ""
560
  "Read more %1$shere%2$s or contact your hosting company in order to increase "
561
  "it."
562
  msgstr ""
563
- "Lee más %1$saquí%2$s o ponte en contacto con tu empresa de hosting para "
564
- "incrementarlo."
565
 
566
  #. translators: %s recommended memory amount
567
  #: includes/class-yith-system-status.php:597
@@ -609,6 +389,10 @@ msgstr "Buscar entradas"
609
  msgid "Search Product"
610
  msgstr "Buscar producto"
611
 
 
 
 
 
612
  #: templates/fields/customtabs.php:17
613
  msgid "Close all"
614
  msgstr "Cerrar todo"
@@ -621,6 +405,10 @@ msgstr "Expandir todo"
621
  msgid "Remove"
622
  msgstr "Eliminar"
623
 
 
 
 
 
624
  #: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
625
  msgid "Value"
626
  msgstr "Valor"
@@ -800,17 +588,6 @@ msgstr "Licencia"
800
  msgid "YITH"
801
  msgstr "YITH"
802
 
803
- #. translators: %s is the singular name of the post type.
804
- #: includes/class-yit-cpt-unlimited.php:676
805
- msgctxt "taxonomy general name"
806
- msgid "%s Categories"
807
- msgstr "Categorías %s"
808
-
809
- #: includes/class-yit-cpt-unlimited.php:677
810
- msgctxt "taxonomy singular name"
811
- msgid "Category"
812
- msgstr "Categoría"
813
-
814
  #: includes/class-yith-dashboard.php:96
815
  msgctxt "Plugin FW"
816
  msgid "View Changelog"
@@ -933,6 +710,14 @@ msgctxt "Action links"
933
  msgid "Settings"
934
  msgstr "Ajustes"
935
 
 
 
 
 
 
 
 
 
936
  #~ msgid "Show full PHPInfo"
937
  #~ msgstr "Mostrar PHPInfo completa"
938
 
@@ -953,3 +738,130 @@ msgstr "Ajustes"
953
 
954
  #~ msgid "and"
955
  #~ msgstr "y"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2021-02-01 10:40:28+00:00\n"
8
+ "PO-Revision-Date: 2021-01-19 14:22:57+0000\n"
9
  "Language: es\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
37
  msgid "Color value"
38
  msgstr "Valor del color"
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  #: includes/class-yit-plugin-panel-woocommerce.php:419
41
  msgid "The changes you have made will be lost if you leave this page."
42
  msgstr "Los cambios que has hecho se perderán si abandonas esta página."
45
  msgid "Plugin Settings"
46
  msgstr "Ajustes del plugin"
47
 
48
+ #: includes/class-yit-plugin-panel.php:84
49
+ msgid "Settings"
50
+ msgstr "Ajustes"
51
+
52
  #: includes/class-yit-plugin-panel.php:450
53
  #: includes/class-yit-plugin-panel.php:453
54
  msgid "How to install premium version"
55
+ msgstr "Cómo instalar la versión premium"
56
 
57
  #: includes/class-yit-plugin-panel.php:619
58
  #: includes/class-yit-plugin-subpanel.php:132
126
 
127
  #: includes/class-yit-plugin-panel.php:1343
128
  msgid "We need your support"
129
+ msgstr "Necesitamos tu apoyo"
130
 
131
  #: includes/class-yit-plugin-panel.php:1344
132
  msgid "to keep updating and improving the plugin. Please,"
134
 
135
  #: includes/class-yit-plugin-panel.php:1346
136
  msgid "help us by leaving a five-star rating"
137
+ msgstr "ayúdanos con una valoración de cinco estrellas"
138
 
139
  #: includes/class-yit-plugin-panel.php:1347
140
  msgid ":) Thanks!"
332
 
333
  #: includes/class-yith-system-status.php:573
334
  msgid "Contact your hosting company in order to enable it."
335
+ msgstr "Contacta con tu empresa de hosting para activarlo."
336
 
337
  #. translators: %1$s opening link tag, %2$s closing link tag
338
  #: includes/class-yith-system-status.php:577
341
  "Read more %1$shere%2$s or contact your hosting company in order to increase "
342
  "it."
343
  msgstr ""
344
+ "Lee más %1$saquí%2$s o contacta a tu empresa de hosting para incrementarlo."
 
345
 
346
  #. translators: %s recommended memory amount
347
  #: includes/class-yith-system-status.php:597
389
  msgid "Search Product"
390
  msgstr "Buscar producto"
391
 
392
+ #: templates/fields/ajax-terms.php:41
393
+ msgid "Search Categories"
394
+ msgstr "Buscar categorías"
395
+
396
  #: templates/fields/customtabs.php:17
397
  msgid "Close all"
398
  msgstr "Cerrar todo"
405
  msgid "Remove"
406
  msgstr "Eliminar"
407
 
408
+ #: templates/fields/customtabs.php:34 templates/fields/customtabs.php:76
409
+ msgid "Name"
410
+ msgstr "Nombre"
411
+
412
  #: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
413
  msgid "Value"
414
  msgstr "Valor"
588
  msgid "YITH"
589
  msgstr "YITH"
590
 
 
 
 
 
 
 
 
 
 
 
 
591
  #: includes/class-yith-dashboard.php:96
592
  msgctxt "Plugin FW"
593
  msgid "View Changelog"
710
  msgid "Settings"
711
  msgstr "Ajustes"
712
 
713
+ #~ msgctxt "taxonomy singular name"
714
+ #~ msgid "Category"
715
+ #~ msgstr "Categoría"
716
+
717
+ #~ msgctxt "taxonomy general name"
718
+ #~ msgid "%s Categories"
719
+ #~ msgstr "Categorías %s"
720
+
721
  #~ msgid "Show full PHPInfo"
722
  #~ msgstr "Mostrar PHPInfo completa"
723
 
738
 
739
  #~ msgid "and"
740
  #~ msgstr "y"
741
+
742
+ #~ msgid "Upload multiple files"
743
+ #~ msgstr "Subir varios archivos"
744
+
745
+ #~ msgid "Add %s from images"
746
+ #~ msgstr "Añadir %s desde imágenes"
747
+
748
+ #~ msgid "Show frontend of the %s"
749
+ #~ msgstr "Mostrar frontend de %s"
750
+
751
+ #~ msgid "Quick links"
752
+ #~ msgstr "Enlaces rápidos"
753
+
754
+ #~ msgid "layout settings"
755
+ #~ msgstr "ajustes de diseño"
756
+
757
+ #~ msgid "Layout for single page of this portfolio"
758
+ #~ msgstr "Diseño para página individual de este porfolio"
759
+
760
+ #~ msgid "Single layout"
761
+ #~ msgstr "Diseño individual"
762
+
763
+ #~ msgid "Set univocal name for each category page URL."
764
+ #~ msgstr "Establece un nombre para cada URL de página de categoría"
765
+
766
+ #~ msgid "Taxonomy Rewrite"
767
+ #~ msgstr "Rescribir taxonomía"
768
+
769
+ #~ msgid ""
770
+ #~ "If you want to use categories in the portfolio, set a name for taxonomy. "
771
+ #~ "Name should be a slug (must not contain capital letters nor spaces) and "
772
+ #~ "must not be more than 32 characters long (database structure restriction)."
773
+ #~ msgstr ""
774
+ #~ "Si quieres usar categorías en este porfolio, establece un nombre para la "
775
+ #~ "taxonomía. El nombre debe ser un slug (no debe contener mayúsculas ni "
776
+ #~ "espacios) y no debe tener más de 32 caracteres de longitud (restricción "
777
+ #~ "de estructura de la base de datos)."
778
+
779
+ #~ msgid "Taxonomy"
780
+ #~ msgstr "Taxonomía"
781
+
782
+ #~ msgid "Set a label in plural (title of portfolio if empty)"
783
+ #~ msgstr ""
784
+ #~ "Establece una etiqueta en plural (título del porfolio si está vacío)"
785
+
786
+ #~ msgid "Label in Plural"
787
+ #~ msgstr "Etiqueta en Plural"
788
+
789
+ #~ msgid "Set a label in singular (title of portfolio if empty)"
790
+ #~ msgstr ""
791
+ #~ "Establece una etiqueta en singular (título del porfolio si está vacío)"
792
+
793
+ #~ msgid "Label in Singular"
794
+ #~ msgstr "Etiqueta en Singular"
795
+
796
+ #~ msgid ""
797
+ #~ "Univocal identification name in the URL for each product (slug from post "
798
+ #~ "if empty)"
799
+ #~ msgstr ""
800
+ #~ "Nombre de identificación unívoco en la URL para cada producto (slug de la "
801
+ #~ "entrada si está vacío)"
802
+
803
+ #~ msgid "Rewrite"
804
+ #~ msgstr "Rescribir"
805
+
806
+ #~ msgid "Layout for this %s"
807
+ #~ msgstr "Diseño para este %s"
808
+
809
+ #~ msgid "Type"
810
+ #~ msgstr "Tipo"
811
+
812
+ #~ msgid "%s Settings"
813
+ #~ msgstr "Ajustes de %s"
814
+
815
+ #~ msgid "Categories"
816
+ #~ msgstr "Categorías"
817
+
818
+ #~ msgid "Category"
819
+ #~ msgstr "Categoría"
820
+
821
+ #~ msgid "New Category Name"
822
+ #~ msgstr "Nuevo nombre de categoría"
823
+
824
+ #~ msgid "Add New Category"
825
+ #~ msgstr "Añadir nueva categoría"
826
+
827
+ #~ msgid "Update Category"
828
+ #~ msgstr "Actualizar categoría"
829
+
830
+ #~ msgid "Edit Category"
831
+ #~ msgstr "Editar categoría"
832
+
833
+ #~ msgid "Parent Category:"
834
+ #~ msgstr "Categoría superior:"
835
+
836
+ #~ msgid "Parent Category"
837
+ #~ msgstr "Categoría superior"
838
+
839
+ #~ msgid "All Categories"
840
+ #~ msgstr "Todas las categorías"
841
+
842
+ #~ msgid "No %s found in Trash"
843
+ #~ msgstr "No se han encontrado %s en la Papelera"
844
+
845
+ #~ msgid "No %s found"
846
+ #~ msgstr "No se han encontrado %s"
847
+
848
+ #~ msgid "Search %s"
849
+ #~ msgstr "Buscar %s"
850
+
851
+ #~ msgid "View %s"
852
+ #~ msgstr "Ver %s"
853
+
854
+ #~ msgid "All %s"
855
+ #~ msgstr "Todas %s"
856
+
857
+ #~ msgid "New %s"
858
+ #~ msgstr "Nuevo %s"
859
+
860
+ #~ msgid "Edit %s"
861
+ #~ msgstr "Editar %s"
862
+
863
+ #~ msgid "Add New %s"
864
+ #~ msgstr "Añadir nueva %s"
865
+
866
+ #~ msgid "Add %s"
867
+ #~ msgstr "Añadir %s"
plugin-fw/languages/yith-plugin-fw-it_IT.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-it_IT.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2021-01-12 12:19:55+00:00\n"
8
  "PO-Revision-Date: 2020-09-24 14:56:37+0000\n"
9
  "Language: it\n"
10
  "MIME-Version: 1.0\n"
@@ -37,229 +37,6 @@ msgstr "Seleziona il colore"
37
  msgid "Color value"
38
  msgstr "Valore del colore"
39
 
40
- #. translators: %s is the singular name of the post type.
41
- #. translators: $s is the singular name of the post type.
42
- #. translators: %s is the singular name of the post type.
43
- #. translators: %s is the plural name of the post type.
44
- #: includes/class-yit-cpt-unlimited.php:486
45
- #: includes/class-yit-cpt-unlimited.php:619
46
- #: includes/class-yit-cpt-unlimited.php:768
47
- #: includes/class-yit-cpt-unlimited.php:1755
48
- msgid "Add %s"
49
- msgstr "Aggiungi %s"
50
-
51
- #. translators: %s is the singular name of the post type.
52
- #. translators: $s is the singular name of the post type.
53
- #: includes/class-yit-cpt-unlimited.php:488
54
- #: includes/class-yit-cpt-unlimited.php:621
55
- msgid "Add New %s"
56
- msgstr "Aggiungi nuovo %s"
57
-
58
- #. translators: %s is the singular name of the post type.
59
- #. translators: $s is the singular name of the post type.
60
- #. translators: %s is the post title.
61
- #. translators: %s is the singular name of the post type.
62
- #: includes/class-yit-cpt-unlimited.php:490
63
- #: includes/class-yit-cpt-unlimited.php:623
64
- #: includes/class-yit-cpt-unlimited.php:1350
65
- #: includes/class-yit-cpt-unlimited.php:1401
66
- msgid "Edit %s"
67
- msgstr "Modifica %s"
68
-
69
- #. translators: %s is the singular name of the post type.
70
- #. translators: $s is the singular name of the post type.
71
- #: includes/class-yit-cpt-unlimited.php:492
72
- #: includes/class-yit-cpt-unlimited.php:625
73
- msgid "New %s"
74
- msgstr "Nuovo %s"
75
-
76
- #. translators: %s is the plural name of the post type.
77
- #. translators: $s is the plural name of the post type.
78
- #: includes/class-yit-cpt-unlimited.php:494
79
- #: includes/class-yit-cpt-unlimited.php:627
80
- msgid "All %s"
81
- msgstr "Tutti %s"
82
-
83
- #. translators: %s is the singular name of the post type.
84
- #. translators: $s is the singular name of the post type.
85
- #. translators: %s is the plural label of the post type.
86
- #. translators: %s is the plural name of the post type.
87
- #: includes/class-yit-cpt-unlimited.php:496
88
- #: includes/class-yit-cpt-unlimited.php:629
89
- #: includes/class-yit-cpt-unlimited.php:1323
90
- #: includes/class-yit-cpt-unlimited.php:1406
91
- msgid "View %s"
92
- msgstr "Visualizza %s"
93
-
94
- #. translators: %s is the plural name of the post type.
95
- #. translators: $s is the plural name of the post type.
96
- #: includes/class-yit-cpt-unlimited.php:498
97
- #: includes/class-yit-cpt-unlimited.php:631
98
- msgid "Search %s"
99
- msgstr "Cerca %s"
100
-
101
- #. translators: %s is the plural name of the post type.
102
- #. translators: $s is the plural name of the post type.
103
- #: includes/class-yit-cpt-unlimited.php:500
104
- #: includes/class-yit-cpt-unlimited.php:633
105
- msgid "No %s found"
106
- msgstr "Nessun %s trovato"
107
-
108
- #. translators: %s is the plural name of the post type.
109
- #. translators: $s is the plural name of the post type.
110
- #: includes/class-yit-cpt-unlimited.php:502
111
- #: includes/class-yit-cpt-unlimited.php:635
112
- msgid "No %s found in Trash"
113
- msgstr "Nessun %s trovato nel cestino"
114
-
115
- #: includes/class-yit-cpt-unlimited.php:678 templates/fields/ajax-terms.php:41
116
- msgid "Search Categories"
117
- msgstr "Cerca categorie"
118
-
119
- #: includes/class-yit-cpt-unlimited.php:679
120
- msgid "All Categories"
121
- msgstr "Tutte le categorie"
122
-
123
- #: includes/class-yit-cpt-unlimited.php:680
124
- msgid "Parent Category"
125
- msgstr "Categoria genitore"
126
-
127
- #: includes/class-yit-cpt-unlimited.php:681
128
- msgid "Parent Category:"
129
- msgstr "Categoria genitore:"
130
-
131
- #: includes/class-yit-cpt-unlimited.php:682
132
- msgid "Edit Category"
133
- msgstr "Modifica categoria"
134
-
135
- #: includes/class-yit-cpt-unlimited.php:683
136
- msgid "Update Category"
137
- msgstr "Aggiorna categoria"
138
-
139
- #: includes/class-yit-cpt-unlimited.php:684
140
- msgid "Add New Category"
141
- msgstr "Aggiungi nuova categoria"
142
-
143
- #: includes/class-yit-cpt-unlimited.php:685
144
- msgid "New Category Name"
145
- msgstr "Nuovo nome categoria"
146
-
147
- #: includes/class-yit-cpt-unlimited.php:686
148
- msgid "Category"
149
- msgstr "Categoria"
150
-
151
- #: includes/class-yit-cpt-unlimited.php:778
152
- msgid "Categories"
153
- msgstr "Categorie"
154
-
155
- #. translators: %s is the singular name of the post type.
156
- #: includes/class-yit-cpt-unlimited.php:1098
157
- msgid "%s Settings"
158
- msgstr "Impostazioni %s"
159
-
160
- #: includes/class-yit-cpt-unlimited.php:1106
161
- #: includes/class-yit-cpt-unlimited.php:1260
162
- #: includes/class-yit-cpt-unlimited.php:1266
163
- #: includes/class-yit-plugin-panel.php:84
164
- msgid "Settings"
165
- msgstr "Impostazioni"
166
-
167
- #: includes/class-yit-cpt-unlimited.php:1111
168
- msgid "Type"
169
- msgstr "Tipologia"
170
-
171
- #. translators: %s is the singular name of the post type.
172
- #: includes/class-yit-cpt-unlimited.php:1114
173
- msgid "Layout for this %s"
174
- msgstr "Layout per questo %s"
175
-
176
- #: includes/class-yit-cpt-unlimited.php:1122
177
- msgid "Rewrite"
178
- msgstr "Riscrivi"
179
-
180
- #: includes/class-yit-cpt-unlimited.php:1123
181
- msgid ""
182
- "Univocal identification name in the URL for each product (slug from post if "
183
- "empty)"
184
- msgstr ""
185
- "Nome identificativo univoco nell'URL per singolo prodotto (usa slug dal post "
186
- "se vuoto)"
187
-
188
- #: includes/class-yit-cpt-unlimited.php:1128
189
- msgid "Label in Singular"
190
- msgstr "Etichetta singolare"
191
-
192
- #: includes/class-yit-cpt-unlimited.php:1129
193
- msgid "Set a label in singular (title of portfolio if empty)"
194
- msgstr "Imposta un'etichetta singolare (titolo del portfolio se vuoto)"
195
-
196
- #: includes/class-yit-cpt-unlimited.php:1134
197
- msgid "Label in Plural"
198
- msgstr "Etichetta plurale"
199
-
200
- #: includes/class-yit-cpt-unlimited.php:1135
201
- msgid "Set a label in plural (title of portfolio if empty)"
202
- msgstr "Imposta un'etichetta plurale (titolo del portfolio se vuoto)"
203
-
204
- #: includes/class-yit-cpt-unlimited.php:1140
205
- msgid "Taxonomy"
206
- msgstr "Tassonomia"
207
-
208
- #: includes/class-yit-cpt-unlimited.php:1141
209
- msgid ""
210
- "If you want to use categories in the portfolio, set a name for taxonomy. "
211
- "Name should be a slug (must not contain capital letters nor spaces) and must "
212
- "not be more than 32 characters long (database structure restriction)."
213
- msgstr ""
214
- "Se vuoi aggiungere delle categorie nel portfolio, imposta un nome per la "
215
- "tassonomia. Il nome dovrà essere in forma di slug (non deve contenere "
216
- "caratteri maiuscoli né spazi) e non più lungo di 32 caratteri (restrizione "
217
- "di database)."
218
-
219
- #: includes/class-yit-cpt-unlimited.php:1146
220
- msgid "Taxonomy Rewrite"
221
- msgstr "Riscrivi tassonomia"
222
-
223
- #: includes/class-yit-cpt-unlimited.php:1147
224
- msgid "Set univocal name for each category page URL."
225
- msgstr "Imposta un nome univoco per l'URL della pagina di ciascuna categoria."
226
-
227
- #: includes/class-yit-cpt-unlimited.php:1152
228
- msgid "Single layout"
229
- msgstr "Layout singolo"
230
-
231
- #: includes/class-yit-cpt-unlimited.php:1153
232
- msgid "Layout for single page of this portfolio"
233
- msgstr "Layout per pagina singola per questo portfolio"
234
-
235
- #: includes/class-yit-cpt-unlimited.php:1196
236
- msgid "layout settings"
237
- msgstr "impostazioni di layout"
238
-
239
- #: includes/class-yit-cpt-unlimited.php:1286
240
- #: includes/class-yit-cpt-unlimited.php:1297
241
- msgid "Quick links"
242
- msgstr "Link rapidi"
243
-
244
- #. translators: %s is the name of the post type.
245
- #: includes/class-yit-cpt-unlimited.php:1593
246
- msgid "Show frontend of the %s"
247
- msgstr "Mostra front end di %s"
248
-
249
- #: includes/class-yit-cpt-unlimited.php:1602 templates/fields/customtabs.php:34
250
- #: templates/fields/customtabs.php:76
251
- msgid "Name"
252
- msgstr "Nome"
253
-
254
- #. translators: %s is the plural name of the post type.
255
- #: includes/class-yit-cpt-unlimited.php:1749
256
- msgid "Add %s from images"
257
- msgstr "Aggiungi %s dalla immagini"
258
-
259
- #: includes/class-yit-cpt-unlimited.php:1769
260
- msgid "Upload multiple files"
261
- msgstr "Carica file multipli"
262
-
263
  #: includes/class-yit-plugin-panel-woocommerce.php:419
264
  msgid "The changes you have made will be lost if you leave this page."
265
  msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
@@ -268,6 +45,10 @@ msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
268
  msgid "Plugin Settings"
269
  msgstr "Impostazioni plugin"
270
 
 
 
 
 
271
  #: includes/class-yit-plugin-panel.php:450
272
  #: includes/class-yit-plugin-panel.php:453
273
  msgid "How to install premium version"
@@ -607,6 +388,10 @@ msgstr "Cerca articoli"
607
  msgid "Search Product"
608
  msgstr "Cerca un prodotto"
609
 
 
 
 
 
610
  #: templates/fields/customtabs.php:17
611
  msgid "Close all"
612
  msgstr "Chiudi tutti"
@@ -619,6 +404,10 @@ msgstr "Espandi tutti"
619
  msgid "Remove"
620
  msgstr "Rimuovi"
621
 
 
 
 
 
622
  #: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
623
  msgid "Value"
624
  msgstr "Valore"
@@ -798,17 +587,6 @@ msgstr "Chiave di licenza"
798
  msgid "YITH"
799
  msgstr "YITH"
800
 
801
- #. translators: %s is the singular name of the post type.
802
- #: includes/class-yit-cpt-unlimited.php:676
803
- msgctxt "taxonomy general name"
804
- msgid "%s Categories"
805
- msgstr "%s Categorie"
806
-
807
- #: includes/class-yit-cpt-unlimited.php:677
808
- msgctxt "taxonomy singular name"
809
- msgid "Category"
810
- msgstr "Categoria"
811
-
812
  #: includes/class-yith-dashboard.php:96
813
  msgctxt "Plugin FW"
814
  msgid "View Changelog"
@@ -932,6 +710,14 @@ msgctxt "Action links"
932
  msgid "Settings"
933
  msgstr "Impostazioni"
934
 
 
 
 
 
 
 
 
 
935
  #~ msgid "Show full PHPInfo"
936
  #~ msgstr "Mostra tutto il contenuto di PHPInfo"
937
 
@@ -952,3 +738,129 @@ msgstr "Impostazioni"
952
 
953
  #~ msgid "and"
954
  #~ msgstr "e"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2021-02-01 10:40:28+00:00\n"
8
  "PO-Revision-Date: 2020-09-24 14:56:37+0000\n"
9
  "Language: it\n"
10
  "MIME-Version: 1.0\n"
37
  msgid "Color value"
38
  msgstr "Valore del colore"
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  #: includes/class-yit-plugin-panel-woocommerce.php:419
41
  msgid "The changes you have made will be lost if you leave this page."
42
  msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
45
  msgid "Plugin Settings"
46
  msgstr "Impostazioni plugin"
47
 
48
+ #: includes/class-yit-plugin-panel.php:84
49
+ msgid "Settings"
50
+ msgstr "Impostazioni"
51
+
52
  #: includes/class-yit-plugin-panel.php:450
53
  #: includes/class-yit-plugin-panel.php:453
54
  msgid "How to install premium version"
388
  msgid "Search Product"
389
  msgstr "Cerca un prodotto"
390
 
391
+ #: templates/fields/ajax-terms.php:41
392
+ msgid "Search Categories"
393
+ msgstr "Cerca categorie"
394
+
395
  #: templates/fields/customtabs.php:17
396
  msgid "Close all"
397
  msgstr "Chiudi tutti"
404
  msgid "Remove"
405
  msgstr "Rimuovi"
406
 
407
+ #: templates/fields/customtabs.php:34 templates/fields/customtabs.php:76
408
+ msgid "Name"
409
+ msgstr "Nome"
410
+
411
  #: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
412
  msgid "Value"
413
  msgstr "Valore"
587
  msgid "YITH"
588
  msgstr "YITH"
589
 
 
 
 
 
 
 
 
 
 
 
 
590
  #: includes/class-yith-dashboard.php:96
591
  msgctxt "Plugin FW"
592
  msgid "View Changelog"
710
  msgid "Settings"
711
  msgstr "Impostazioni"
712
 
713
+ #~ msgctxt "taxonomy singular name"
714
+ #~ msgid "Category"
715
+ #~ msgstr "Categoria"
716
+
717
+ #~ msgctxt "taxonomy general name"
718
+ #~ msgid "%s Categories"
719
+ #~ msgstr "%s Categorie"
720
+
721
  #~ msgid "Show full PHPInfo"
722
  #~ msgstr "Mostra tutto il contenuto di PHPInfo"
723
 
738
 
739
  #~ msgid "and"
740
  #~ msgstr "e"
741
+
742
+ #~ msgid "Upload multiple files"
743
+ #~ msgstr "Carica file multipli"
744
+
745
+ #~ msgid "Add %s from images"
746
+ #~ msgstr "Aggiungi %s dalla immagini"
747
+
748
+ #~ msgid "Show frontend of the %s"
749
+ #~ msgstr "Mostra front end di %s"
750
+
751
+ #~ msgid "Quick links"
752
+ #~ msgstr "Link rapidi"
753
+
754
+ #~ msgid "layout settings"
755
+ #~ msgstr "impostazioni di layout"
756
+
757
+ #~ msgid "Layout for single page of this portfolio"
758
+ #~ msgstr "Layout per pagina singola per questo portfolio"
759
+
760
+ #~ msgid "Single layout"
761
+ #~ msgstr "Layout singolo"
762
+
763
+ #~ msgid "Set univocal name for each category page URL."
764
+ #~ msgstr ""
765
+ #~ "Imposta un nome univoco per l'URL della pagina di ciascuna categoria."
766
+
767
+ #~ msgid "Taxonomy Rewrite"
768
+ #~ msgstr "Riscrivi tassonomia"
769
+
770
+ #~ msgid ""
771
+ #~ "If you want to use categories in the portfolio, set a name for taxonomy. "
772
+ #~ "Name should be a slug (must not contain capital letters nor spaces) and "
773
+ #~ "must not be more than 32 characters long (database structure restriction)."
774
+ #~ msgstr ""
775
+ #~ "Se vuoi aggiungere delle categorie nel portfolio, imposta un nome per la "
776
+ #~ "tassonomia. Il nome dovrà essere in forma di slug (non deve contenere "
777
+ #~ "caratteri maiuscoli né spazi) e non più lungo di 32 caratteri "
778
+ #~ "(restrizione di database)."
779
+
780
+ #~ msgid "Taxonomy"
781
+ #~ msgstr "Tassonomia"
782
+
783
+ #~ msgid "Set a label in plural (title of portfolio if empty)"
784
+ #~ msgstr "Imposta un'etichetta plurale (titolo del portfolio se vuoto)"
785
+
786
+ #~ msgid "Label in Plural"
787
+ #~ msgstr "Etichetta plurale"
788
+
789
+ #~ msgid "Set a label in singular (title of portfolio if empty)"
790
+ #~ msgstr "Imposta un'etichetta singolare (titolo del portfolio se vuoto)"
791
+
792
+ #~ msgid "Label in Singular"
793
+ #~ msgstr "Etichetta singolare"
794
+
795
+ #~ msgid ""
796
+ #~ "Univocal identification name in the URL for each product (slug from post "
797
+ #~ "if empty)"
798
+ #~ msgstr ""
799
+ #~ "Nome identificativo univoco nell'URL per singolo prodotto (usa slug dal "
800
+ #~ "post se vuoto)"
801
+
802
+ #~ msgid "Rewrite"
803
+ #~ msgstr "Riscrivi"
804
+
805
+ #~ msgid "Layout for this %s"
806
+ #~ msgstr "Layout per questo %s"
807
+
808
+ #~ msgid "Type"
809
+ #~ msgstr "Tipologia"
810
+
811
+ #~ msgid "%s Settings"
812
+ #~ msgstr "Impostazioni %s"
813
+
814
+ #~ msgid "Categories"
815
+ #~ msgstr "Categorie"
816
+
817
+ #~ msgid "Category"
818
+ #~ msgstr "Categoria"
819
+
820
+ #~ msgid "New Category Name"
821
+ #~ msgstr "Nuovo nome categoria"
822
+
823
+ #~ msgid "Add New Category"
824
+ #~ msgstr "Aggiungi nuova categoria"
825
+
826
+ #~ msgid "Update Category"
827
+ #~ msgstr "Aggiorna categoria"
828
+
829
+ #~ msgid "Edit Category"
830
+ #~ msgstr "Modifica categoria"
831
+
832
+ #~ msgid "Parent Category:"
833
+ #~ msgstr "Categoria genitore:"
834
+
835
+ #~ msgid "Parent Category"
836
+ #~ msgstr "Categoria genitore"
837
+
838
+ #~ msgid "All Categories"
839
+ #~ msgstr "Tutte le categorie"
840
+
841
+ #~ msgid "No %s found in Trash"
842
+ #~ msgstr "Nessun %s trovato nel cestino"
843
+
844
+ #~ msgid "No %s found"
845
+ #~ msgstr "Nessun %s trovato"
846
+
847
+ #~ msgid "Search %s"
848
+ #~ msgstr "Cerca %s"
849
+
850
+ #~ msgid "View %s"
851
+ #~ msgstr "Visualizza %s"
852
+
853
+ #~ msgid "All %s"
854
+ #~ msgstr "Tutti %s"
855
+
856
+ #~ msgid "New %s"
857
+ #~ msgstr "Nuovo %s"
858
+
859
+ #~ msgid "Edit %s"
860
+ #~ msgstr "Modifica %s"
861
+
862
+ #~ msgid "Add New %s"
863
+ #~ msgstr "Aggiungi nuovo %s"
864
+
865
+ #~ msgid "Add %s"
866
+ #~ msgstr "Aggiungi %s"
plugin-fw/languages/yith-plugin-fw-nl_NL.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-nl_NL.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2021-01-12 12:19:55+00:00\n"
8
  "PO-Revision-Date: 2020-09-24 14:36:33+0000\n"
9
  "Language: nl\n"
10
  "MIME-Version: 1.0\n"
@@ -37,229 +37,6 @@ msgstr "Kleur selecteren"
37
  msgid "Color value"
38
  msgstr "Kleurwaarde"
39
 
40
- #. translators: %s is the singular name of the post type.
41
- #. translators: $s is the singular name of the post type.
42
- #. translators: %s is the singular name of the post type.
43
- #. translators: %s is the plural name of the post type.
44
- #: includes/class-yit-cpt-unlimited.php:486
45
- #: includes/class-yit-cpt-unlimited.php:619
46
- #: includes/class-yit-cpt-unlimited.php:768
47
- #: includes/class-yit-cpt-unlimited.php:1755
48
- msgid "Add %s"
49
- msgstr "%s toevoegen"
50
-
51
- #. translators: %s is the singular name of the post type.
52
- #. translators: $s is the singular name of the post type.
53
- #: includes/class-yit-cpt-unlimited.php:488
54
- #: includes/class-yit-cpt-unlimited.php:621
55
- msgid "Add New %s"
56
- msgstr "Nieuwe %s toevoegen"
57
-
58
- #. translators: %s is the singular name of the post type.
59
- #. translators: $s is the singular name of the post type.
60
- #. translators: %s is the post title.
61
- #. translators: %s is the singular name of the post type.
62
- #: includes/class-yit-cpt-unlimited.php:490
63
- #: includes/class-yit-cpt-unlimited.php:623
64
- #: includes/class-yit-cpt-unlimited.php:1350
65
- #: includes/class-yit-cpt-unlimited.php:1401
66
- msgid "Edit %s"
67
- msgstr "Bewerk %s"
68
-
69
- #. translators: %s is the singular name of the post type.
70
- #. translators: $s is the singular name of the post type.
71
- #: includes/class-yit-cpt-unlimited.php:492
72
- #: includes/class-yit-cpt-unlimited.php:625
73
- msgid "New %s"
74
- msgstr "Nieuw %s"
75
-
76
- #. translators: %s is the plural name of the post type.
77
- #. translators: $s is the plural name of the post type.
78
- #: includes/class-yit-cpt-unlimited.php:494
79
- #: includes/class-yit-cpt-unlimited.php:627
80
- msgid "All %s"
81
- msgstr "Alle %s"
82
-
83
- #. translators: %s is the singular name of the post type.
84
- #. translators: $s is the singular name of the post type.
85
- #. translators: %s is the plural label of the post type.
86
- #. translators: %s is the plural name of the post type.
87
- #: includes/class-yit-cpt-unlimited.php:496
88
- #: includes/class-yit-cpt-unlimited.php:629
89
- #: includes/class-yit-cpt-unlimited.php:1323
90
- #: includes/class-yit-cpt-unlimited.php:1406
91
- msgid "View %s"
92
- msgstr "Bekijk %s"
93
-
94
- #. translators: %s is the plural name of the post type.
95
- #. translators: $s is the plural name of the post type.
96
- #: includes/class-yit-cpt-unlimited.php:498
97
- #: includes/class-yit-cpt-unlimited.php:631
98
- msgid "Search %s"
99
- msgstr "Zoeken %s"
100
-
101
- #. translators: %s is the plural name of the post type.
102
- #. translators: $s is the plural name of the post type.
103
- #: includes/class-yit-cpt-unlimited.php:500
104
- #: includes/class-yit-cpt-unlimited.php:633
105
- msgid "No %s found"
106
- msgstr "Geen %s gevonden"
107
-
108
- #. translators: %s is the plural name of the post type.
109
- #. translators: $s is the plural name of the post type.
110
- #: includes/class-yit-cpt-unlimited.php:502
111
- #: includes/class-yit-cpt-unlimited.php:635
112
- msgid "No %s found in Trash"
113
- msgstr "No %s gevonden in de prullenbak"
114
-
115
- #: includes/class-yit-cpt-unlimited.php:678 templates/fields/ajax-terms.php:41
116
- msgid "Search Categories"
117
- msgstr "Zoek categorieën"
118
-
119
- #: includes/class-yit-cpt-unlimited.php:679
120
- msgid "All Categories"
121
- msgstr "Alle categorieën"
122
-
123
- #: includes/class-yit-cpt-unlimited.php:680
124
- msgid "Parent Category"
125
- msgstr "Hoofdcategorie"
126
-
127
- #: includes/class-yit-cpt-unlimited.php:681
128
- msgid "Parent Category:"
129
- msgstr "Hoofdcategorie:"
130
-
131
- #: includes/class-yit-cpt-unlimited.php:682
132
- msgid "Edit Category"
133
- msgstr "Categorie aanpassen"
134
-
135
- #: includes/class-yit-cpt-unlimited.php:683
136
- msgid "Update Category"
137
- msgstr "Update categorie"
138
-
139
- #: includes/class-yit-cpt-unlimited.php:684
140
- msgid "Add New Category"
141
- msgstr "Categorie toevoegen"
142
-
143
- #: includes/class-yit-cpt-unlimited.php:685
144
- msgid "New Category Name"
145
- msgstr "Nieuwe categorie naam"
146
-
147
- #: includes/class-yit-cpt-unlimited.php:686
148
- msgid "Category"
149
- msgstr "Categorie"
150
-
151
- #: includes/class-yit-cpt-unlimited.php:778
152
- msgid "Categories"
153
- msgstr "Categorieën"
154
-
155
- #. translators: %s is the singular name of the post type.
156
- #: includes/class-yit-cpt-unlimited.php:1098
157
- msgid "%s Settings"
158
- msgstr "%s instellingen"
159
-
160
- #: includes/class-yit-cpt-unlimited.php:1106
161
- #: includes/class-yit-cpt-unlimited.php:1260
162
- #: includes/class-yit-cpt-unlimited.php:1266
163
- #: includes/class-yit-plugin-panel.php:84
164
- msgid "Settings"
165
- msgstr "Instellingen"
166
-
167
- #: includes/class-yit-cpt-unlimited.php:1111
168
- msgid "Type"
169
- msgstr "Type"
170
-
171
- #. translators: %s is the singular name of the post type.
172
- #: includes/class-yit-cpt-unlimited.php:1114
173
- msgid "Layout for this %s"
174
- msgstr "De lay-out hiervoor %s"
175
-
176
- #: includes/class-yit-cpt-unlimited.php:1122
177
- msgid "Rewrite"
178
- msgstr "Herschrijf"
179
-
180
- #: includes/class-yit-cpt-unlimited.php:1123
181
- msgid ""
182
- "Univocal identification name in the URL for each product (slug from post if "
183
- "empty)"
184
- msgstr ""
185
- "Unieke identificatie naam in de URL voor ieder product (slug van post indien "
186
- "leeg)"
187
-
188
- #: includes/class-yit-cpt-unlimited.php:1128
189
- msgid "Label in Singular"
190
- msgstr "Label in enkelvoud"
191
-
192
- #: includes/class-yit-cpt-unlimited.php:1129
193
- msgid "Set a label in singular (title of portfolio if empty)"
194
- msgstr "Zet een label op enkelvoud (titel van portfolio indien leeg)"
195
-
196
- #: includes/class-yit-cpt-unlimited.php:1134
197
- msgid "Label in Plural"
198
- msgstr "Label in meervoud"
199
-
200
- #: includes/class-yit-cpt-unlimited.php:1135
201
- msgid "Set a label in plural (title of portfolio if empty)"
202
- msgstr "Zet een label op meervoud (titel van portfolio indien leeg)"
203
-
204
- #: includes/class-yit-cpt-unlimited.php:1140
205
- msgid "Taxonomy"
206
- msgstr "Taxonomie"
207
-
208
- #: includes/class-yit-cpt-unlimited.php:1141
209
- msgid ""
210
- "If you want to use categories in the portfolio, set a name for taxonomy. "
211
- "Name should be a slug (must not contain capital letters nor spaces) and must "
212
- "not be more than 32 characters long (database structure restriction)."
213
- msgstr ""
214
- "Wil je categorieën gebruiken in de portfolio, stel dan een naam voor "
215
- "taxonomie. Naam moet een ’slug’ zijn (mag geen hoofdletters of spaties "
216
- "bevatten) en mag niet meer zijn dan 32 tekens lang (database structuur "
217
- "beperking)."
218
-
219
- #: includes/class-yit-cpt-unlimited.php:1146
220
- msgid "Taxonomy Rewrite"
221
- msgstr "Herschrijf taxonomie"
222
-
223
- #: includes/class-yit-cpt-unlimited.php:1147
224
- msgid "Set univocal name for each category page URL."
225
- msgstr "Stel een unieke naam in voor elke categorie pagina URL."
226
-
227
- #: includes/class-yit-cpt-unlimited.php:1152
228
- msgid "Single layout"
229
- msgstr "Single lay-out"
230
-
231
- #: includes/class-yit-cpt-unlimited.php:1153
232
- msgid "Layout for single page of this portfolio"
233
- msgstr "Lay-out voor single pagina van dit portfolio"
234
-
235
- #: includes/class-yit-cpt-unlimited.php:1196
236
- msgid "layout settings"
237
- msgstr "lay-out instellingen"
238
-
239
- #: includes/class-yit-cpt-unlimited.php:1286
240
- #: includes/class-yit-cpt-unlimited.php:1297
241
- msgid "Quick links"
242
- msgstr "Snelle links"
243
-
244
- #. translators: %s is the name of the post type.
245
- #: includes/class-yit-cpt-unlimited.php:1593
246
- msgid "Show frontend of the %s"
247
- msgstr "Toon frontend van de %s"
248
-
249
- #: includes/class-yit-cpt-unlimited.php:1602 templates/fields/customtabs.php:34
250
- #: templates/fields/customtabs.php:76
251
- msgid "Name"
252
- msgstr "Name"
253
-
254
- #. translators: %s is the plural name of the post type.
255
- #: includes/class-yit-cpt-unlimited.php:1749
256
- msgid "Add %s from images"
257
- msgstr "Voeg %s toe van afbeeldingen"
258
-
259
- #: includes/class-yit-cpt-unlimited.php:1769
260
- msgid "Upload multiple files"
261
- msgstr "Upload meerdere bestanden"
262
-
263
  #: includes/class-yit-plugin-panel-woocommerce.php:419
264
  msgid "The changes you have made will be lost if you leave this page."
265
  msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."
@@ -268,6 +45,10 @@ msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."
268
  msgid "Plugin Settings"
269
  msgstr "Plugin instellingen"
270
 
 
 
 
 
271
  #: includes/class-yit-plugin-panel.php:450
272
  #: includes/class-yit-plugin-panel.php:453
273
  msgid "How to install premium version"
@@ -605,6 +386,10 @@ msgstr "Posts zoeken"
605
  msgid "Search Product"
606
  msgstr "Zoek Product"
607
 
 
 
 
 
608
  #: templates/fields/customtabs.php:17
609
  msgid "Close all"
610
  msgstr "Sluit allen"
@@ -617,6 +402,10 @@ msgstr "Open allen"
617
  msgid "Remove"
618
  msgstr "Verwijderen"
619
 
 
 
 
 
620
  #: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
621
  msgid "Value"
622
  msgstr "Waarde"
@@ -796,17 +585,6 @@ msgstr "Licentie"
796
  msgid "YITH"
797
  msgstr "YITH"
798
 
799
- #. translators: %s is the singular name of the post type.
800
- #: includes/class-yit-cpt-unlimited.php:676
801
- msgctxt "taxonomy general name"
802
- msgid "%s Categories"
803
- msgstr "%s Categorieën"
804
-
805
- #: includes/class-yit-cpt-unlimited.php:677
806
- msgctxt "taxonomy singular name"
807
- msgid "Category"
808
- msgstr "Categorie"
809
-
810
  #: includes/class-yith-dashboard.php:96
811
  msgctxt "Plugin FW"
812
  msgid "View Changelog"
@@ -929,6 +707,14 @@ msgctxt "Action links"
929
  msgid "Settings"
930
  msgstr "Instellingen"
931
 
 
 
 
 
 
 
 
 
932
  #~ msgid "Show full PHPInfo"
933
  #~ msgstr "Toon volledige PHPInfo"
934
 
@@ -949,3 +735,128 @@ msgstr "Instellingen"
949
 
950
  #~ msgid "and"
951
  #~ msgstr "en"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2021-02-01 10:40:28+00:00\n"
8
  "PO-Revision-Date: 2020-09-24 14:36:33+0000\n"
9
  "Language: nl\n"
10
  "MIME-Version: 1.0\n"
37
  msgid "Color value"
38
  msgstr "Kleurwaarde"
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  #: includes/class-yit-plugin-panel-woocommerce.php:419
41
  msgid "The changes you have made will be lost if you leave this page."
42
  msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."
45
  msgid "Plugin Settings"
46
  msgstr "Plugin instellingen"
47
 
48
+ #: includes/class-yit-plugin-panel.php:84
49
+ msgid "Settings"
50
+ msgstr "Instellingen"
51
+
52
  #: includes/class-yit-plugin-panel.php:450
53
  #: includes/class-yit-plugin-panel.php:453
54
  msgid "How to install premium version"
386
  msgid "Search Product"
387
  msgstr "Zoek Product"
388
 
389
+ #: templates/fields/ajax-terms.php:41
390
+ msgid "Search Categories"
391
+ msgstr "Zoek categorieën"
392
+
393
  #: templates/fields/customtabs.php:17
394
  msgid "Close all"
395
  msgstr "Sluit allen"
402
  msgid "Remove"
403
  msgstr "Verwijderen"
404
 
405
+ #: templates/fields/customtabs.php:34 templates/fields/customtabs.php:76
406
+ msgid "Name"
407
+ msgstr "Name"
408
+
409
  #: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
410
  msgid "Value"
411
  msgstr "Waarde"
585
  msgid "YITH"
586
  msgstr "YITH"
587
 
 
 
 
 
 
 
 
 
 
 
 
588
  #: includes/class-yith-dashboard.php:96
589
  msgctxt "Plugin FW"
590
  msgid "View Changelog"
707
  msgid "Settings"
708
  msgstr "Instellingen"
709
 
710
+ #~ msgctxt "taxonomy singular name"
711
+ #~ msgid "Category"
712
+ #~ msgstr "Categorie"
713
+
714
+ #~ msgctxt "taxonomy general name"
715
+ #~ msgid "%s Categories"
716
+ #~ msgstr "%s Categorieën"
717
+
718
  #~ msgid "Show full PHPInfo"
719
  #~ msgstr "Toon volledige PHPInfo"
720
 
735
 
736
  #~ msgid "and"
737
  #~ msgstr "en"
738
+
739
+ #~ msgid "Upload multiple files"
740
+ #~ msgstr "Upload meerdere bestanden"
741
+
742
+ #~ msgid "Add %s from images"
743
+ #~ msgstr "Voeg %s toe van afbeeldingen"
744
+
745
+ #~ msgid "Show frontend of the %s"
746
+ #~ msgstr "Toon frontend van de %s"
747
+
748
+ #~ msgid "Quick links"
749
+ #~ msgstr "Snelle links"
750
+
751
+ #~ msgid "layout settings"
752
+ #~ msgstr "lay-out instellingen"
753
+
754
+ #~ msgid "Layout for single page of this portfolio"
755
+ #~ msgstr "Lay-out voor single pagina van dit portfolio"
756
+
757
+ #~ msgid "Single layout"
758
+ #~ msgstr "Single lay-out"
759
+
760
+ #~ msgid "Set univocal name for each category page URL."
761
+ #~ msgstr "Stel een unieke naam in voor elke categorie pagina URL."
762
+
763
+ #~ msgid "Taxonomy Rewrite"
764
+ #~ msgstr "Herschrijf taxonomie"
765
+
766
+ #~ msgid ""
767
+ #~ "If you want to use categories in the portfolio, set a name for taxonomy. "
768
+ #~ "Name should be a slug (must not contain capital letters nor spaces) and "
769
+ #~ "must not be more than 32 characters long (database structure restriction)."
770
+ #~ msgstr ""
771
+ #~ "Wil je categorieën gebruiken in de portfolio, stel dan een naam voor "
772
+ #~ "taxonomie. Naam moet een ’slug’ zijn (mag geen hoofdletters of spaties "
773
+ #~ "bevatten) en mag niet meer zijn dan 32 tekens lang (database structuur "
774
+ #~ "beperking)."
775
+
776
+ #~ msgid "Taxonomy"
777
+ #~ msgstr "Taxonomie"
778
+
779
+ #~ msgid "Set a label in plural (title of portfolio if empty)"
780
+ #~ msgstr "Zet een label op meervoud (titel van portfolio indien leeg)"
781
+
782
+ #~ msgid "Label in Plural"
783
+ #~ msgstr "Label in meervoud"
784
+
785
+ #~ msgid "Set a label in singular (title of portfolio if empty)"
786
+ #~ msgstr "Zet een label op enkelvoud (titel van portfolio indien leeg)"
787
+
788
+ #~ msgid "Label in Singular"
789
+ #~ msgstr "Label in enkelvoud"
790
+
791
+ #~ msgid ""
792
+ #~ "Univocal identification name in the URL for each product (slug from post "
793
+ #~ "if empty)"
794
+ #~ msgstr ""
795
+ #~ "Unieke identificatie naam in de URL voor ieder product (slug van post "
796
+ #~ "indien leeg)"
797
+
798
+ #~ msgid "Rewrite"
799
+ #~ msgstr "Herschrijf"
800
+
801
+ #~ msgid "Layout for this %s"
802
+ #~ msgstr "De lay-out hiervoor %s"
803
+
804
+ #~ msgid "Type"
805
+ #~ msgstr "Type"
806
+
807
+ #~ msgid "%s Settings"
808
+ #~ msgstr "%s instellingen"
809
+
810
+ #~ msgid "Categories"
811
+ #~ msgstr "Categorieën"
812
+
813
+ #~ msgid "Category"
814
+ #~ msgstr "Categorie"
815
+
816
+ #~ msgid "New Category Name"
817
+ #~ msgstr "Nieuwe categorie naam"
818
+
819
+ #~ msgid "Add New Category"
820
+ #~ msgstr "Categorie toevoegen"
821
+
822
+ #~ msgid "Update Category"
823
+ #~ msgstr "Update categorie"
824
+
825
+ #~ msgid "Edit Category"
826
+ #~ msgstr "Categorie aanpassen"
827
+
828
+ #~ msgid "Parent Category:"
829
+ #~ msgstr "Hoofdcategorie:"
830
+
831
+ #~ msgid "Parent Category"
832
+ #~ msgstr "Hoofdcategorie"
833
+
834
+ #~ msgid "All Categories"
835
+ #~ msgstr "Alle categorieën"
836
+
837
+ #~ msgid "No %s found in Trash"
838
+ #~ msgstr "No %s gevonden in de prullenbak"
839
+
840
+ #~ msgid "No %s found"
841
+ #~ msgstr "Geen %s gevonden"
842
+
843
+ #~ msgid "Search %s"
844
+ #~ msgstr "Zoeken %s"
845
+
846
+ #~ msgid "View %s"
847
+ #~ msgstr "Bekijk %s"
848
+
849
+ #~ msgid "All %s"
850
+ #~ msgstr "Alle %s"
851
+
852
+ #~ msgid "New %s"
853
+ #~ msgstr "Nieuw %s"
854
+
855
+ #~ msgid "Edit %s"
856
+ #~ msgstr "Bewerk %s"
857
+
858
+ #~ msgid "Add New %s"
859
+ #~ msgstr "Nieuwe %s toevoegen"
860
+
861
+ #~ msgid "Add %s"
862
+ #~ msgstr "%s toevoegen"
plugin-fw/languages/yith-plugin-fw.pot CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2021-01-12 12:19:55+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -48,223 +48,6 @@ msgstr ""
48
  msgid "Color value"
49
  msgstr ""
50
 
51
- #: includes/class-yit-cpt-unlimited.php:486
52
- #: includes/class-yit-cpt-unlimited.php:619
53
- #: includes/class-yit-cpt-unlimited.php:768
54
- #: includes/class-yit-cpt-unlimited.php:1755
55
- #. translators: %s is the singular name of the post type.
56
- #. translators: $s is the singular name of the post type.
57
- #. translators: %s is the singular name of the post type.
58
- #. translators: %s is the plural name of the post type.
59
- msgid "Add %s"
60
- msgstr ""
61
-
62
- #: includes/class-yit-cpt-unlimited.php:488
63
- #: includes/class-yit-cpt-unlimited.php:621
64
- #. translators: %s is the singular name of the post type.
65
- #. translators: $s is the singular name of the post type.
66
- msgid "Add New %s"
67
- msgstr ""
68
-
69
- #: includes/class-yit-cpt-unlimited.php:490
70
- #: includes/class-yit-cpt-unlimited.php:623
71
- #: includes/class-yit-cpt-unlimited.php:1350
72
- #: includes/class-yit-cpt-unlimited.php:1401
73
- #. translators: %s is the singular name of the post type.
74
- #. translators: $s is the singular name of the post type.
75
- #. translators: %s is the post title.
76
- #. translators: %s is the singular name of the post type.
77
- msgid "Edit %s"
78
- msgstr ""
79
-
80
- #: includes/class-yit-cpt-unlimited.php:492
81
- #: includes/class-yit-cpt-unlimited.php:625
82
- #. translators: %s is the singular name of the post type.
83
- #. translators: $s is the singular name of the post type.
84
- msgid "New %s"
85
- msgstr ""
86
-
87
- #: includes/class-yit-cpt-unlimited.php:494
88
- #: includes/class-yit-cpt-unlimited.php:627
89
- #. translators: %s is the plural name of the post type.
90
- #. translators: $s is the plural name of the post type.
91
- msgid "All %s"
92
- msgstr ""
93
-
94
- #: includes/class-yit-cpt-unlimited.php:496
95
- #: includes/class-yit-cpt-unlimited.php:629
96
- #: includes/class-yit-cpt-unlimited.php:1323
97
- #: includes/class-yit-cpt-unlimited.php:1406
98
- #. translators: %s is the singular name of the post type.
99
- #. translators: $s is the singular name of the post type.
100
- #. translators: %s is the plural label of the post type.
101
- #. translators: %s is the plural name of the post type.
102
- msgid "View %s"
103
- msgstr ""
104
-
105
- #: includes/class-yit-cpt-unlimited.php:498
106
- #: includes/class-yit-cpt-unlimited.php:631
107
- #. translators: %s is the plural name of the post type.
108
- #. translators: $s is the plural name of the post type.
109
- msgid "Search %s"
110
- msgstr ""
111
-
112
- #: includes/class-yit-cpt-unlimited.php:500
113
- #: includes/class-yit-cpt-unlimited.php:633
114
- #. translators: %s is the plural name of the post type.
115
- #. translators: $s is the plural name of the post type.
116
- msgid "No %s found"
117
- msgstr ""
118
-
119
- #: includes/class-yit-cpt-unlimited.php:502
120
- #: includes/class-yit-cpt-unlimited.php:635
121
- #. translators: %s is the plural name of the post type.
122
- #. translators: $s is the plural name of the post type.
123
- msgid "No %s found in Trash"
124
- msgstr ""
125
-
126
- #: includes/class-yit-cpt-unlimited.php:678 templates/fields/ajax-terms.php:41
127
- msgid "Search Categories"
128
- msgstr ""
129
-
130
- #: includes/class-yit-cpt-unlimited.php:679
131
- msgid "All Categories"
132
- msgstr ""
133
-
134
- #: includes/class-yit-cpt-unlimited.php:680
135
- msgid "Parent Category"
136
- msgstr ""
137
-
138
- #: includes/class-yit-cpt-unlimited.php:681
139
- msgid "Parent Category:"
140
- msgstr ""
141
-
142
- #: includes/class-yit-cpt-unlimited.php:682
143
- msgid "Edit Category"
144
- msgstr ""
145
-
146
- #: includes/class-yit-cpt-unlimited.php:683
147
- msgid "Update Category"
148
- msgstr ""
149
-
150
- #: includes/class-yit-cpt-unlimited.php:684
151
- msgid "Add New Category"
152
- msgstr ""
153
-
154
- #: includes/class-yit-cpt-unlimited.php:685
155
- msgid "New Category Name"
156
- msgstr ""
157
-
158
- #: includes/class-yit-cpt-unlimited.php:686
159
- msgid "Category"
160
- msgstr ""
161
-
162
- #: includes/class-yit-cpt-unlimited.php:778
163
- msgid "Categories"
164
- msgstr ""
165
-
166
- #: includes/class-yit-cpt-unlimited.php:1098
167
- #. translators: %s is the singular name of the post type.
168
- msgid "%s Settings"
169
- msgstr ""
170
-
171
- #: includes/class-yit-cpt-unlimited.php:1106
172
- #: includes/class-yit-cpt-unlimited.php:1260
173
- #: includes/class-yit-cpt-unlimited.php:1266
174
- #: includes/class-yit-plugin-panel.php:84
175
- msgid "Settings"
176
- msgstr ""
177
-
178
- #: includes/class-yit-cpt-unlimited.php:1111
179
- msgid "Type"
180
- msgstr ""
181
-
182
- #: includes/class-yit-cpt-unlimited.php:1114
183
- #. translators: %s is the singular name of the post type.
184
- msgid "Layout for this %s"
185
- msgstr ""
186
-
187
- #: includes/class-yit-cpt-unlimited.php:1122
188
- msgid "Rewrite"
189
- msgstr ""
190
-
191
- #: includes/class-yit-cpt-unlimited.php:1123
192
- msgid ""
193
- "Univocal identification name in the URL for each product (slug from post if "
194
- "empty)"
195
- msgstr ""
196
-
197
- #: includes/class-yit-cpt-unlimited.php:1128
198
- msgid "Label in Singular"
199
- msgstr ""
200
-
201
- #: includes/class-yit-cpt-unlimited.php:1129
202
- msgid "Set a label in singular (title of portfolio if empty)"
203
- msgstr ""
204
-
205
- #: includes/class-yit-cpt-unlimited.php:1134
206
- msgid "Label in Plural"
207
- msgstr ""
208
-
209
- #: includes/class-yit-cpt-unlimited.php:1135
210
- msgid "Set a label in plural (title of portfolio if empty)"
211
- msgstr ""
212
-
213
- #: includes/class-yit-cpt-unlimited.php:1140
214
- msgid "Taxonomy"
215
- msgstr ""
216
-
217
- #: includes/class-yit-cpt-unlimited.php:1141
218
- msgid ""
219
- "If you want to use categories in the portfolio, set a name for taxonomy. "
220
- "Name should be a slug (must not contain capital letters nor spaces) and "
221
- "must not be more than 32 characters long (database structure restriction)."
222
- msgstr ""
223
-
224
- #: includes/class-yit-cpt-unlimited.php:1146
225
- msgid "Taxonomy Rewrite"
226
- msgstr ""
227
-
228
- #: includes/class-yit-cpt-unlimited.php:1147
229
- msgid "Set univocal name for each category page URL."
230
- msgstr ""
231
-
232
- #: includes/class-yit-cpt-unlimited.php:1152
233
- msgid "Single layout"
234
- msgstr ""
235
-
236
- #: includes/class-yit-cpt-unlimited.php:1153
237
- msgid "Layout for single page of this portfolio"
238
- msgstr ""
239
-
240
- #: includes/class-yit-cpt-unlimited.php:1196
241
- msgid "layout settings"
242
- msgstr ""
243
-
244
- #: includes/class-yit-cpt-unlimited.php:1286
245
- #: includes/class-yit-cpt-unlimited.php:1297
246
- msgid "Quick links"
247
- msgstr ""
248
-
249
- #: includes/class-yit-cpt-unlimited.php:1593
250
- #. translators: %s is the name of the post type.
251
- msgid "Show frontend of the %s"
252
- msgstr ""
253
-
254
- #: includes/class-yit-cpt-unlimited.php:1602 templates/fields/customtabs.php:34
255
- #: templates/fields/customtabs.php:76
256
- msgid "Name"
257
- msgstr ""
258
-
259
- #: includes/class-yit-cpt-unlimited.php:1749
260
- #. translators: %s is the plural name of the post type.
261
- msgid "Add %s from images"
262
- msgstr ""
263
-
264
- #: includes/class-yit-cpt-unlimited.php:1769
265
- msgid "Upload multiple files"
266
- msgstr ""
267
-
268
  #: includes/class-yit-plugin-panel-woocommerce.php:419
269
  msgid "The changes you have made will be lost if you leave this page."
270
  msgstr ""
@@ -273,6 +56,10 @@ msgstr ""
273
  msgid "Plugin Settings"
274
  msgstr ""
275
 
 
 
 
 
276
  #: includes/class-yit-plugin-panel.php:450
277
  #: includes/class-yit-plugin-panel.php:453
278
  msgid "How to install premium version"
@@ -580,6 +367,10 @@ msgstr ""
580
  msgid "Search Product"
581
  msgstr ""
582
 
 
 
 
 
583
  #: templates/fields/customtabs.php:17
584
  msgid "Close all"
585
  msgstr ""
@@ -592,6 +383,10 @@ msgstr ""
592
  msgid "Remove"
593
  msgstr ""
594
 
 
 
 
 
595
  #: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
596
  msgid "Value"
597
  msgstr ""
@@ -769,17 +564,6 @@ msgstr ""
769
  msgid "YITH"
770
  msgstr ""
771
 
772
- #: includes/class-yit-cpt-unlimited.php:676
773
- #. translators: %s is the singular name of the post type.
774
- msgctxt "taxonomy general name"
775
- msgid "%s Categories"
776
- msgstr ""
777
-
778
- #: includes/class-yit-cpt-unlimited.php:677
779
- msgctxt "taxonomy singular name"
780
- msgid "Category"
781
- msgstr ""
782
-
783
  #: includes/class-yith-dashboard.php:96
784
  msgctxt "Plugin FW"
785
  msgid "View Changelog"
4
  msgstr ""
5
  "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2021-02-01 10:40:28+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
48
  msgid "Color value"
49
  msgstr ""
50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  #: includes/class-yit-plugin-panel-woocommerce.php:419
52
  msgid "The changes you have made will be lost if you leave this page."
53
  msgstr ""
56
  msgid "Plugin Settings"
57
  msgstr ""
58
 
59
+ #: includes/class-yit-plugin-panel.php:84
60
+ msgid "Settings"
61
+ msgstr ""
62
+
63
  #: includes/class-yit-plugin-panel.php:450
64
  #: includes/class-yit-plugin-panel.php:453
65
  msgid "How to install premium version"
367
  msgid "Search Product"
368
  msgstr ""
369
 
370
+ #: templates/fields/ajax-terms.php:41
371
+ msgid "Search Categories"
372
+ msgstr ""
373
+
374
  #: templates/fields/customtabs.php:17
375
  msgid "Close all"
376
  msgstr ""
383
  msgid "Remove"
384
  msgstr ""
385
 
386
+ #: templates/fields/customtabs.php:34 templates/fields/customtabs.php:76
387
+ msgid "Name"
388
+ msgstr ""
389
+
390
  #: templates/fields/customtabs.php:40 templates/fields/customtabs.php:81
391
  msgid "Value"
392
  msgstr ""
564
  msgid "YITH"
565
  msgstr ""
566
 
 
 
 
 
 
 
 
 
 
 
 
567
  #: includes/class-yith-dashboard.php:96
568
  msgctxt "Plugin FW"
569
  msgid "View Changelog"
readme.txt CHANGED
@@ -4,7 +4,7 @@ Contributors: yithemes
4
  Tags: woocommerce catalog mode plugin, woocommerce catalog only, woocommerce, products, themes, yit, yith, yithemes, e-commerce, shop, catalog mode, catalogue mode, remove add to cart, ask for price, ask price, asking for price, asking price, button remove, call, call for price, call me, call us, contact, email, hide add to cart, hide price
5
  Requires at least: 5.3
6
  Tested up to: 5.6
7
- Stable tag: 2.0.9
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -131,152 +131,157 @@ yith-woocommerce-catalog-mode-<WORDPRESS LOCALE >.mo
131
 
132
  == Changelog ==
133
 
 
 
 
 
 
134
  = 2.0.9 - Released: 13 January 2021 =
135
 
136
- * Update: Plugin framework
137
 
138
  = 2.0.8 - Released: 07 January 2021 =
139
 
140
- * New: Support for WooCommerce 4.9.x
141
- * Update: Plugin framework
142
 
143
  = 2.0.7 - Released: 04 December 2020 =
144
 
145
- * New: Support for WooCommerce 4.8.x
146
- * Update: Plugin framework
147
 
148
  = 2.0.6 - Released: 09 November 2020 =
149
 
150
- * New: Support for WordPress 5.6.x
151
- * New: Support for WooCommerce 4.7.x
152
- * Update: Plugin framework
153
 
154
  = 2.0.5 - Released: 07 October 2020 =
155
 
156
- * New: Support for WooCommerce 4.6
157
- * Update: plugin framework
158
 
159
  = 2.0.4 - Released: 21 September 2020 =
160
 
161
- * New: Support for WooCommerce 4.5
162
- * Update: plugin framework
163
 
164
  = 2.0.3 - Released: 23 August 2020 =
165
 
166
- * New: Support for WordPress 5.5
167
- * New: Support for WooCommerce 4.4
168
- * Update: plugin framework
169
 
170
 
171
  = Version 2.0.2 - Released: 09 July 2020 =
172
 
173
- * New: Support for WooCommerce 4.3
174
- * Update: plugin framework
175
 
176
  = Version 2.0.1 - Released: 06 May 2020 =
177
 
178
- * New: Support for WooCommerce 4.1
179
- * Update: plugin framework
180
 
181
  = Version 2.0.0 - Released: 8 April 2020 =
182
 
183
  * Tweak: improved admin panel and settings UX
184
  * Dev: code refactoring of the entire plugin
185
- * Update: plugin framework
186
 
187
  = Version 1.6.19 - Released: 11 March 2020 =
188
 
189
- * New: Support for WordPress 5.4
190
- * New: Support for WooCommerce 4.0
191
- * Update: plugin framework
192
 
193
  = Version 1.6.16 - Released: 23 December 2019 =
194
 
195
- * New: Support for WooCommerce 3.9
196
- * Update: plugin framework
197
 
198
  = Version 1.6.15 - Released: 11 December 2019 =
199
 
200
- * Update: plugin framework
201
 
202
  = Version 1.6.14 - Released: 29 November 2019 =
203
 
204
- * Update: plugin framework
205
 
206
  = Version 1.6.13 - Released: 10 November 2019 =
207
 
208
- * Update: plugin framework
209
 
210
  = Version 1.6.12 - Released: 30 October 2019 =
211
 
212
- * Update: plugin framework
213
 
214
  = Version 1.6.11 - Released: 29 October 2019 =
215
 
216
- * New: Support for WordPress 5.3
217
- * New: Support for WooCommerce 3.8
218
- * Update: plugin framework
219
 
220
  = Version 1.6.10 - Released: 30 July 2019 =
221
 
222
- * New: Support for WooCommerce 3.7.0 RC1
223
- * Update: plugin framework
224
 
225
  = Version 1.6.9 - Released: 12 June 2019 =
226
 
227
- * Update: plugin framework
228
 
229
  = Version 1.6.8 - Released: 06 June 2019 =
230
 
231
- * New: Support for WordPress 5.2
232
- * Update: plugin framework
233
 
234
  = Version 1.6.7 - Released: 23 April 2019 =
235
 
236
- * Update: plugin framework
237
 
238
  = Version 1.6.6 - Released: 15 April 2019 =
239
 
240
- * New: Support for WooCommerce 3.6.0 RC2
241
- * Update: plugin framework
242
 
243
  = Version 1.6.5 - Released: 07 February 2019 =
244
 
245
- * Update: plugin framework
246
  * Fix: hide add to cart for grouped products
247
 
248
  = Version 1.6.3 - Released: 05 December 2018 =
249
 
250
- * New: Support for WordPress 5.0
251
- * Update: plugin framework
252
 
253
  = Version 1.6.2 - Released: 22 October 2018 =
254
 
255
- * Update: plugin framework
256
 
257
  = Version 1.6.1 - Released: 16 October 2018 =
258
 
259
- * New: Support for WooCommerce 3.5.0 RC2
260
- * Update: plugin framework
261
 
262
  = Version 1.6.0 - Released: 24 May 2018 =
263
 
264
- * New: Support for WordPress 4.9.6
265
- * New: Support for WooCommerce 3.4.0
266
- * Update: plugin framework
267
 
268
  = Version 1.5.9 - Released: 29 January 2018 =
269
 
270
- * New: Support for WooCommerce 3.3.0 RC2
271
- * Update: plugin framework
272
 
273
  = Version 1.5.7 - Released: 20 September 2017 =
274
 
275
- * Update: plugin framework
276
 
277
  = Version 1.5.5 - Released: 23 March 2017 =
278
 
279
- * Tweak: Support for WooCommerce 3.0.0-RC 1
280
 
281
  = Version 1.4.0 - Released: 31 May 2016 =
282
 
@@ -352,7 +357,7 @@ yith-woocommerce-catalog-mode-<WORDPRESS LOCALE >.mo
352
 
353
  = Version 1.1.0 - Released: 13 August 2015 =
354
 
355
- * New: Support for WooCommerce 2.4
356
  * Update: Plugin core framework
357
 
358
  = Version 1.0.9 - Released: 20 July 2015 =
@@ -399,7 +404,7 @@ yith-woocommerce-catalog-mode-<WORDPRESS LOCALE >.mo
399
 
400
  == Upgrade Notice ==
401
 
402
- Last Stable Tag 2.0.9
403
 
404
  == Suggestions ==
405
 
4
  Tags: woocommerce catalog mode plugin, woocommerce catalog only, woocommerce, products, themes, yit, yith, yithemes, e-commerce, shop, catalog mode, catalogue mode, remove add to cart, ask for price, ask price, asking for price, asking price, button remove, call, call for price, call me, call us, contact, email, hide add to cart, hide price
5
  Requires at least: 5.3
6
  Tested up to: 5.6
7
+ Stable tag: 2.0.10
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
131
 
132
  == Changelog ==
133
 
134
+ = 2.0.10 - Released: 03 February 2021 =
135
+
136
+ * New: support for WooCommerce 5.0
137
+ * Update: YITH plugin framework
138
+
139
  = 2.0.9 - Released: 13 January 2021 =
140
 
141
+ * Update: YITH plugin framework
142
 
143
  = 2.0.8 - Released: 07 January 2021 =
144
 
145
+ * New: support for WooCommerce 4.9
146
+ * Update: YITH plugin framework
147
 
148
  = 2.0.7 - Released: 04 December 2020 =
149
 
150
+ * New: support for WooCommerce 4.8
151
+ * Update: YITH plugin framework
152
 
153
  = 2.0.6 - Released: 09 November 2020 =
154
 
155
+ * New: support for WordPress 5.6
156
+ * New: support for WooCommerce 4.7
157
+ * Update: YITH plugin framework
158
 
159
  = 2.0.5 - Released: 07 October 2020 =
160
 
161
+ * New: support for WooCommerce 4.6
162
+ * Update: YITH plugin framework
163
 
164
  = 2.0.4 - Released: 21 September 2020 =
165
 
166
+ * New: support for WooCommerce 4.5
167
+ * Update: YITH plugin framework
168
 
169
  = 2.0.3 - Released: 23 August 2020 =
170
 
171
+ * New: support for WordPress 5.5
172
+ * New: support for WooCommerce 4.4
173
+ * Update: YITH plugin framework
174
 
175
 
176
  = Version 2.0.2 - Released: 09 July 2020 =
177
 
178
+ * New: support for WooCommerce 4.3
179
+ * Update: YITH plugin framework
180
 
181
  = Version 2.0.1 - Released: 06 May 2020 =
182
 
183
+ * New: support for WooCommerce 4.1
184
+ * Update: YITH plugin framework
185
 
186
  = Version 2.0.0 - Released: 8 April 2020 =
187
 
188
  * Tweak: improved admin panel and settings UX
189
  * Dev: code refactoring of the entire plugin
190
+ * Update: YITH plugin framework
191
 
192
  = Version 1.6.19 - Released: 11 March 2020 =
193
 
194
+ * New: support for WordPress 5.4
195
+ * New: support for WooCommerce 4.0
196
+ * Update: YITH plugin framework
197
 
198
  = Version 1.6.16 - Released: 23 December 2019 =
199
 
200
+ * New: support for WooCommerce 3.9
201
+ * Update: YITH plugin framework
202
 
203
  = Version 1.6.15 - Released: 11 December 2019 =
204
 
205
+ * Update: YITH plugin framework
206
 
207
  = Version 1.6.14 - Released: 29 November 2019 =
208
 
209
+ * Update: YITH plugin framework
210
 
211
  = Version 1.6.13 - Released: 10 November 2019 =
212
 
213
+ * Update: YITH plugin framework
214
 
215
  = Version 1.6.12 - Released: 30 October 2019 =
216
 
217
+ * Update: YITH plugin framework
218
 
219
  = Version 1.6.11 - Released: 29 October 2019 =
220
 
221
+ * New: support for WordPress 5.3
222
+ * New: support for WooCommerce 3.8
223
+ * Update: YITH plugin framework
224
 
225
  = Version 1.6.10 - Released: 30 July 2019 =
226
 
227
+ * New: support for WooCommerce 3.7.0 RC1
228
+ * Update: YITH plugin framework
229
 
230
  = Version 1.6.9 - Released: 12 June 2019 =
231
 
232
+ * Update: YITH plugin framework
233
 
234
  = Version 1.6.8 - Released: 06 June 2019 =
235
 
236
+ * New: support for WordPress 5.2
237
+ * Update: YITH plugin framework
238
 
239
  = Version 1.6.7 - Released: 23 April 2019 =
240
 
241
+ * Update: YITH plugin framework
242
 
243
  = Version 1.6.6 - Released: 15 April 2019 =
244
 
245
+ * New: support for WooCommerce 3.6.0 RC2
246
+ * Update: YITH plugin framework
247
 
248
  = Version 1.6.5 - Released: 07 February 2019 =
249
 
250
+ * Update: YITH plugin framework
251
  * Fix: hide add to cart for grouped products
252
 
253
  = Version 1.6.3 - Released: 05 December 2018 =
254
 
255
+ * New: support for WordPress 5.0
256
+ * Update: YITH plugin framework
257
 
258
  = Version 1.6.2 - Released: 22 October 2018 =
259
 
260
+ * Update: YITH plugin framework
261
 
262
  = Version 1.6.1 - Released: 16 October 2018 =
263
 
264
+ * New: support for WooCommerce 3.5.0 RC2
265
+ * Update: YITH plugin framework
266
 
267
  = Version 1.6.0 - Released: 24 May 2018 =
268
 
269
+ * New: support for WordPress 4.9.6
270
+ * New: support for WooCommerce 3.4.0
271
+ * Update: YITH plugin framework
272
 
273
  = Version 1.5.9 - Released: 29 January 2018 =
274
 
275
+ * New: support for WooCommerce 3.3.0 RC2
276
+ * Update: YITH plugin framework
277
 
278
  = Version 1.5.7 - Released: 20 September 2017 =
279
 
280
+ * Update: YITH plugin framework
281
 
282
  = Version 1.5.5 - Released: 23 March 2017 =
283
 
284
+ * Tweak: support for WooCommerce 3.0.0-RC 1
285
 
286
  = Version 1.4.0 - Released: 31 May 2016 =
287
 
357
 
358
  = Version 1.1.0 - Released: 13 August 2015 =
359
 
360
+ * New: support for WooCommerce 2.4
361
  * Update: Plugin core framework
362
 
363
  = Version 1.0.9 - Released: 20 July 2015 =
404
 
405
  == Upgrade Notice ==
406
 
407
+ Last Stable Tag 2.0.10
408
 
409
  == Suggestions ==
410