YITH WooCommerce Ajax Search - Version 1.6.3

Version Description

  • Released: Jan 28, 2019 = Update: Plugin Core 3.1.15
Download this release

Release Info

Developer yithemes
Plugin Icon 128x128 YITH WooCommerce Ajax Search
Version 1.6.3
Comparing to
See all releases

Code changes from version 1.6.2 to 1.6.3

README.txt CHANGED
@@ -4,7 +4,7 @@ Contributors: yithemes
4
Tags: woocommerce search by sku, woocommerce search results, woocommerce search shortcode, woocommerce search page, woocommerce search form, woocommerce search filter, woocommerce search products, woocommerce search content, woocommerce search autocomplete, woocommerce advanced search, woocommerce search category, woocommerce search product attributes, woocommerce search by tag, woocommerce search by brand, woocommerce predictive, woocommerce live search, woocommerce single product search, woocommerce site search, woocommerce search tex, tajax, search, woocommerce, products, themes, yit, e-commerce, shop, yith, ajax search, instant search, premium, yithemes, autocomplete, autosuggest, better search, category search, custom search, highlight terms, Live Search, Predictive Search, product search, relevant search, search highlight, search product, suggest, typeahead, WooCommerce Plugin, woocommerce product search, woocommerce search, wordpress ecommerce
5
Requires at least: 4.0.0
6
Tested up to: 5.0
7
- Stable tag: 1.6.2
8
License: GPLv2 or later
9
License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
@@ -138,6 +138,9 @@ If you have created your own language pack for YITH WooCommerce Ajax Search, or
138
2. YITH WooCommerce Ajax Search in operation displaying WooCommerce search results
139
140
== Changelog ==
141
= 1.6.2 - Released: Dec 05, 2018 =
142
New: Support to WordPress 5.0
143
Update: Language files
4
Tags: woocommerce search by sku, woocommerce search results, woocommerce search shortcode, woocommerce search page, woocommerce search form, woocommerce search filter, woocommerce search products, woocommerce search content, woocommerce search autocomplete, woocommerce advanced search, woocommerce search category, woocommerce search product attributes, woocommerce search by tag, woocommerce search by brand, woocommerce predictive, woocommerce live search, woocommerce single product search, woocommerce site search, woocommerce search tex, tajax, search, woocommerce, products, themes, yit, e-commerce, shop, yith, ajax search, instant search, premium, yithemes, autocomplete, autosuggest, better search, category search, custom search, highlight terms, Live Search, Predictive Search, product search, relevant search, search highlight, search product, suggest, typeahead, WooCommerce Plugin, woocommerce product search, woocommerce search, wordpress ecommerce
5
Requires at least: 4.0.0
6
Tested up to: 5.0
7
+ Stable tag: 1.6.3
8
License: GPLv2 or later
9
License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
138
2. YITH WooCommerce Ajax Search in operation displaying WooCommerce search results
139
140
== Changelog ==
141
+ = 1.6.3 - Released: Jan 28, 2019 =
142
+ Update: Plugin Core 3.1.15
143
+
144
= 1.6.2 - Released: Dec 05, 2018 =
145
New: Support to WordPress 5.0
146
Update: Language files
init.php CHANGED
@@ -3,7 +3,7 @@
3
* Plugin Name: YITH WooCommerce Ajax Search
4
* Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-ajax-search/
5
* Description: <code><strong>YITH WooCommerce Ajax Search</strong></code> is the plugin that allows you to search for a specific product by inserting a few characters. Thanks to <strong>Ajax Search</strong>, users can quickly find the contents they are interested in without wasting time among site pages. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
- * Version: 1.6.2
7
* Author: YITH
8
* Author URI: https://yithemes.com/
9
* Text Domain: yith-woocommerce-ajax-search
@@ -67,7 +67,7 @@ register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
67
if ( defined( 'YITH_WCAS_VERSION' ) ){
68
return;
69
}else{
70
- define( 'YITH_WCAS_VERSION', '1.6.2' );
71
}
72
73
if ( ! defined( 'YITH_WCAS_FREE_INIT' ) ) {
3
* Plugin Name: YITH WooCommerce Ajax Search
4
* Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-ajax-search/
5
* Description: <code><strong>YITH WooCommerce Ajax Search</strong></code> is the plugin that allows you to search for a specific product by inserting a few characters. Thanks to <strong>Ajax Search</strong>, users can quickly find the contents they are interested in without wasting time among site pages. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
+ * Version: 1.6.3
7
* Author: YITH
8
* Author URI: https://yithemes.com/
9
* Text Domain: yith-woocommerce-ajax-search
67
if ( defined( 'YITH_WCAS_VERSION' ) ){
68
return;
69
}else{
70
+ define( 'YITH_WCAS_VERSION', '1.6.3' );
71
}
72
73
if ( ! defined( 'YITH_WCAS_FREE_INIT' ) ) {
plugin-fw/assets/js/multisite-updater.js CHANGED
@@ -43,7 +43,7 @@
43
var plugin = registered[ init ];
44
for ( var headers in plugin ) {
45
46
- if ( headers == 'slug' || version_compare( plugin[ headers ].Version, plugin[ headers ].Latest, '>=' ) ) {
47
continue;
48
}
49
@@ -60,7 +60,7 @@
60
61
var html = '<tr class="plugin-update-tr">' +
62
'<td colspan="3" class="plugin-update colspanchange">' +
63
- '<div class="update-message">' + localize.strings.new_version.replace( '%plugin_name%', name ) +
64
'<a class="thickbox open-plugin-details-modal" href="' + localize.details_url[ init ] + '">' + localize.strings.latest.replace( '%latest%', plugin[ headers ].Latest ) + '</a>';
65
66
if ( typeof activated[ init ] == "undefined" ) {
@@ -73,6 +73,10 @@
73
'. <a href="' + localize.update_url[ init ] + '">' + localize.strings.update_now + '</a>';
74
}
75
76
html = html +
77
'</div>' +
78
'</td>' +
43
var plugin = registered[ init ];
44
for ( var headers in plugin ) {
45
46
+ if ( headers == 'slug' || version_compare( plugin[ headers ].Version, plugin[ headers ].Latest, '=' ) ) {
47
continue;
48
}
49
60
61
var html = '<tr class="plugin-update-tr">' +
62
'<td colspan="3" class="plugin-update colspanchange">' +
63
+ '<div class="update-message notice inline notice-warning notice-alt">' + localize.strings.new_version.replace( '%plugin_name%', name ) +
64
'<a class="thickbox open-plugin-details-modal" href="' + localize.details_url[ init ] + '">' + localize.strings.latest.replace( '%latest%', plugin[ headers ].Latest ) + '</a>';
65
66
if ( typeof activated[ init ] == "undefined" ) {
73
'. <a href="' + localize.update_url[ init ] + '">' + localize.strings.update_now + '</a>';
74
}
75
76
+ if( version_compare( plugin[ headers ].Version, plugin[ headers ].Latest, '>' ) ){
77
+ html = html + localize.strings.version_issue
78
+ }
79
+
80
html = html +
81
'</div>' +
82
'</td>' +
plugin-fw/assets/js/multisite-updater.min.js CHANGED
@@ -1,7 +1,4 @@
1
- var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,f,b){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e<d;e++){var h=a[e];if(f.call(b,h,e,a))return{i:e,v:h}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,f,b){a!=Array.prototype&&a!=Object.prototype&&(a[f]=b.value)};
2
- $jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.polyfill=function(a,f,b,d){if(f){b=$jscomp.global;a=a.split(".");for(d=0;d<a.length-1;d++){var e=a[d];e in b||(b[e]={});b=b[e]}a=a[a.length-1];d=b[a];f=f(d);f!=d&&null!=f&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:f})}};
3
- $jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,b){return $jscomp.findInternal(this,a,b).v}},"es6","es3");
4
- (function(a){function f(a,b,d){this.php_js=this.php_js||{};this.php_js.ENV=this.php_js.ENV||{};var c=0,f=0,g=0,e={dev:-6,alpha:-5,a:-5,beta:-4,b:-4,RC:-3,rc:-3,"#":-2,p:1,pl:1};c=function(a){a=(""+a).replace(/[_\-+]/g,".");a=a.replace(/([^.\d]+)/g,".$1.").replace(/\.{2,}/g,".");return a.length?a.split("."):[-8]};numVersion=function(a){return a?isNaN(a)?e[a]||-7:parseInt(a,10):0};a=c(a);b=c(b);f=Math.max(a.length,b.length);for(c=0;c<f;c++)if(a[c]!=b[c])if(a[c]=numVersion(a[c]),b[c]=numVersion(b[c]),
5
- a[c]<b[c]){g=-1;break}else if(a[c]>b[c]){g=1;break}if(!d)return g;switch(d){case ">":case "gt":return 0<g;case ">=":case "ge":return 0<=g;case "<=":case "le":return 0>=g;case "==":case "=":case "eq":return 0===g;case "<>":case "!=":case "ne":return 0!==g;case "":case "<":case "lt":return 0>g;default:return null}}var b=a("#menu-plugins"),d=b.find(".update-plugins").find(".update-count").text(),e=plugins.registered,h=plugins.activated;if(0==d||""==d)d=0,b.find(".wp-menu-name").append('<span class="update-plugins"><span class="plugin-count"></span></span>');
6
- (function(b,d,e,c){for(var h in b){var g=b[h],k;for(k in g)if("slug"!=k&&!f(g[k].Version,g[k].Latest,">=")){e=parseInt(e)+1;a(".plugin-count").empty().html(e);var m=""+g[k].Name,n='*[data-slug="'+m.replace(/ /g,"-").trim().toLowerCase()+'"]';a(n).addClass("update");var l='<tr class="plugin-update-tr"><td colspan="3" class="plugin-update colspanchange"><div class="update-message">'+c.strings.new_version.replace("%plugin_name%",m)+'<a class="thickbox open-plugin-details-modal" href="'+c.details_url[h]+
7
- '">'+c.strings.latest.replace("%latest%",g[k].Latest)+"</a>";l="undefined"==typeof d[h]?l+" <em>"+c.strings.unavailable+"</em>"+c.strings.activate.replace("%activate_link%",c.licence_activation_url).replace("%plugin_name%",m):l+'. <a href="'+c.update_url[h]+'">'+c.strings.update_now+"</a>";l+="</div></td></tr>";a(l).insertAfter(n)}}})(e,h,d,plugins);a("body").on("click",".yit-changelog-button",function(){a("#TB_window").remove()})})(jQuery);
1
+ (function(f){function n(c,d,f){this.php_js=this.php_js||{};this.php_js.ENV=this.php_js.ENV||{};var a=0,h=0,b=0,e={dev:-6,alpha:-5,a:-5,beta:-4,b:-4,RC:-3,rc:-3,"#":-2,p:1,pl:1};a=function(a){a=(""+a).replace(/[_\-+]/g,".");a=a.replace(/([^.\d]+)/g,".$1.").replace(/\.{2,}/g,".");return a.length?a.split("."):[-8]};numVersion=function(a){return a?isNaN(a)?e[a]||-7:parseInt(a,10):0};c=a(c);d=a(d);h=Math.max(c.length,d.length);for(a=0;a<h;a++)if(c[a]!=d[a])if(c[a]=numVersion(c[a]),d[a]=numVersion(d[a]),
2
+ c[a]<d[a]){b=-1;break}else if(c[a]>d[a]){b=1;break}if(!f)return b;switch(f){case ">":case "gt":return 0<b;case ">=":case "ge":return 0<=b;case "<=":case "le":return 0>=b;case "==":case "=":case "eq":return 0===b;case "<>":case "!=":case "ne":return 0!==b;case "":case "<":case "lt":return 0>b;default:return null}}var l=f("#menu-plugins"),g=l.find(".update-plugins").find(".update-count").text(),p=plugins.registered,q=plugins.activated;if(0==g||""==g)g=0,l.find(".wp-menu-name").append('<span class="update-plugins"><span class="plugin-count"></span></span>');
3
+ (function(c,d,g,a){for(var h in c){var b=c[h],e;for(e in b)if("slug"!=e&&!n(b[e].Version,b[e].Latest,"=")){g=parseInt(g)+1;f(".plugin-count").empty().html(g);var m=""+b[e].Name,l='*[data-slug="'+m.replace(RegExp(" ","g"),"-").trim().toLowerCase()+'"]';f(l).addClass("update");var k='<tr class="plugin-update-tr"><td colspan="3" class="plugin-update colspanchange"><div class="update-message notice inline notice-warning notice-alt">'+a.strings.new_version.replace("%plugin_name%",m)+'<a class="thickbox open-plugin-details-modal" href="'+
4
+ a.details_url[h]+'">'+a.strings.latest.replace("%latest%",b[e].Latest)+"</a>";k="undefined"==typeof d[h]?k+" <em>"+a.strings.unavailable+"</em>"+a.strings.activate.replace("%activate_link%",a.licence_activation_url).replace("%plugin_name%",m):k+'. <a href="'+a.update_url[h]+'">'+a.strings.update_now+"</a>";n(b[e].Version,b[e].Latest,">")&&(k+=a.strings.version_issue);k+="</div></td></tr>";f(k).insertAfter(l)}}})(p,q,g,plugins);f("body").on("click",".yit-changelog-button",function(){f("#TB_window").remove()})})(jQuery);
plugin-fw/assets/js/yith-gutenberg.js CHANGED
@@ -62,6 +62,7 @@
62
if (callback == 'edit' && props.do_shortcode != false) {
63
do_shortcode = (function (block_id) {
64
var ajax_call_date = null;
65
$.ajax({
66
async: true,
67
url: yith_gutenberg_ajax.ajaxurl,
@@ -69,12 +70,13 @@
69
data: {action: 'yith_plugin_fw_gutenberg_do_shortcode', shortcode: sc},
70
success: function (data) {
71
ajax_call_date = data;
72
-
73
if (ajax_call_date != '') {
74
$('.yith_block_' + block_id).html(ajax_call_date);
75
}
76
}
77
});
78
return ajax_call_date;
79
})(block_id);
80
}
62
if (callback == 'edit' && props.do_shortcode != false) {
63
do_shortcode = (function (block_id) {
64
var ajax_call_date = null;
65
+ $(document).trigger( 'yith_plugin_fw_gutenberg_before_do_shortcode', [sc, block_id] );
66
$.ajax({
67
async: true,
68
url: yith_gutenberg_ajax.ajaxurl,
70
data: {action: 'yith_plugin_fw_gutenberg_do_shortcode', shortcode: sc},
71
success: function (data) {
72
ajax_call_date = data;
73
if (ajax_call_date != '') {
74
$('.yith_block_' + block_id).html(ajax_call_date);
75
+ $(document).trigger( 'yith_plugin_fw_gutenberg_success_do_shortcode', [sc, block_id, ajax_call_date] );
76
}
77
}
78
});
79
+ $(document).trigger( 'yith_plugin_fw_gutenberg_after_do_shortcode', [sc, block_id, ajax_call_date] );
80
return ajax_call_date;
81
})(block_id);
82
}
plugin-fw/assets/js/yith-gutenberg.min.js CHANGED
@@ -1,6 +1,6 @@
1
- (function(g){function k(d,c,e){var f="";f="";if("undefined"!=typeof c.callback&&"function"==typeof g[c.callback])f=g[c.callback](d,c);else{var a="["+c.shortcode_name;g.each(d.attributes,function(b,l){"className"!=b&&(a+=" "+b+"=",a=1==c.attributes[b].remove_quotes?a+l:a+('"'+l+'"'))});a+="]";d=md5(a);f='<span class="yith_block_'+d+'">'+a+"</span>";"edit"==e&&0!=c.do_shortcode&&function(c){var b=null;g.ajax({async:!0,url:yith_gutenberg_ajax.ajaxurl,method:"post",data:{action:"yith_plugin_fw_gutenberg_do_shortcode",
2
- shortcode:a},success:function(a){b=a;""!=b&&g(".yith_block_"+c).html(b)}});return b}(d);f=h(n,null,f)}return f}function m(d,c,e,f){var a={};if("colorpicker"==f||"color"==f)d=d.hex;a[c]=d;e.setAttributes(a);return e}var h=wp.element.createElement,p=wp.element.Fragment,q=wp.blocks.registerBlockType,r=wp.editor.InspectorControls,n=wp.element.RawHTML,t=wp.components.SelectControl,u=wp.components.ToggleControl,v=wp.components.CheckboxControl,w=wp.components.RangeControl,x=wp.components.ColorPicker,y=wp.components.RadioControl,
3
- z=wp.components.TextControl,A=wp.components.TextareaControl,B=h("svg",{width:22,height:22},h("path",{d:"M 18.24 7.628 C 17.291 8.284 16.076 8.971 14.587 9.688 C 15.344 7.186 15.765 4.851 15.849 2.684 C 15.912 0.939 15.133 0.045 13.514 0.003 C 11.558 -0.06 10.275 1.033 9.665 3.284 C 10.007 3.137 10.359 3.063 10.723 3.063 C 11.021 3.063 11.267 3.184 11.459 3.426 C 11.651 3.668 11.736 3.947 11.715 4.262 C 11.695 5.082 11.276 5.961 10.46 6.896 C 9.644 7.833 8.918 8.3 8.282 8.3 C 7.837 8.3 7.625 7.922 7.646 7.165 C 7.667 6.765 7.804 5.955 8.056 4.735 C 8.287 3.579 8.403 2.801 8.403 2.401 C 8.403 1.707 8.224 1.144 7.867 0.713 C 7.509 0.282 6.994 0.098 6.321 0.161 C 5.858 0.203 5.175 0.624 4.27 1.422 C 3.596 2.035 2.923 2.644 2.25 3.254 L 2.976 4.106 C 3.564 3.664 3.922 3.443 4.048 3.443 C 4.448 3.443 4.637 3.717 4.617 4.263 C 4.617 4.306 4.427 4.968 4.049 6.251 C 3.671 7.534 3.471 8.491 3.449 9.122 C 3.407 9.985 3.565 10.647 3.924 11.109 C 4.367 11.677 5.106 11.919 6.142 11.835 C 7.366 11.751 8.591 11.298 9.816 10.479 C 10.323 10.142 10.808 9.753 11.273 9.311 C 11.105 10.153 10.905 10.868 10.673 11.457 C 8.402 12.487 6.762 13.37 5.752 14.107 C 4.321 15.137 3.554 16.241 3.449 17.419 C 3.259 19.459 4.29 20.479 6.541 20.479 C 8.055 20.479 9.517 19.554 10.926 17.703 C 12.125 16.126 13.166 14.022 14.049 11.394 C 15.578 10.635 16.87 9.892 17.928 9.164 C 17.894 9.409 18.319 7.308 18.24 7.628 Z M 7.393 16.095 C 7.056 16.095 6.898 15.947 6.919 15.653 C 6.961 15.106 7.908 14.38 9.759 13.476 C 8.791 15.221 8.002 16.095 7.393 16.095 Z"}));
4
- g.each(yith_gutenberg,function(d,c){q("yith/"+d,{title:c.title,description:c.description,category:c.category,attributes:c.attributes,icon:"undefined"!=typeof c.icon?c.icon:B,keywords:c.keywords,edit:function(e){var f=[];g.each(c.attributes,function(c,b){var a=null,d=b.blocktype;if("undefined"!=typeof d){switch(d){case "select":a=t;break;case "text":a=z;break;case "textarea":a=A;break;case "toggle":a=u;break;case "checkbox":a=v;break;case "number":case "range":a=w;break;case "color":case "colorpicker":a=
5
- x;break;case "radio":a=y}if(null!=a){var g=helpMessageUncheked="";"undefined"!=typeof b.helps&&"undefined"!=typeof b.helps.checked&&"undefined"!=typeof b.helps.unchecked?(g=b.helps.checked,helpMessageUncheked=b.helps.unchecked):"undefined"!=typeof b.help&&(g=helpMessageUncheked=b.help);f.push(h(a,{value:e.attributes[c],options:b.options,label:b.label,checked:e.attributes[c],selected:e.attributes[c],help:e.attributes[c]?g:helpMessageUncheked,disableAlpha:b.disableAlpha,min:b.min,max:b.max,multiple:b.multiple,
6
- onChange:function(a,b){b=void 0===b?c:b;e=m(a,b,e,d)},onChangeComplete:function(b,a){a=void 0===a?c:a;e=m(b,a,e,d)}}))}}});sc=k(e,c,"edit");return[h(p,null,h(r,null,f),sc)]},save:function(d){return k(d,c,"save")}})})})(jQuery);
1
+ (function(f){function k(e,a,d){var g="";g="";if("undefined"!=typeof a.callback&&"function"==typeof f[a.callback])g=f[a.callback](e,a);else{var b="["+a.shortcode_name;f.each(e.attributes,function(c,l){"className"!=c&&(b+=" "+c+"=",b=1==a.attributes[c].remove_quotes?b+l:b+('"'+l+'"'))});b+="]";e=md5(b);g='<span class="yith_block_'+e+'">'+b+"</span>";"edit"==d&&0!=a.do_shortcode&&function(c){var a=null;f(document).trigger("yith_plugin_fw_gutenberg_before_do_shortcode",[b,c]);f.ajax({async:!0,url:yith_gutenberg_ajax.ajaxurl,
2
+ method:"post",data:{action:"yith_plugin_fw_gutenberg_do_shortcode",shortcode:b},success:function(d){a=d;""!=a&&(f(".yith_block_"+c).html(a),f(document).trigger("yith_plugin_fw_gutenberg_success_do_shortcode",[b,c,a]))}});f(document).trigger("yith_plugin_fw_gutenberg_after_do_shortcode",[b,c,a]);return a}(e);g=h(n,null,g)}return g}function m(e,a,d,g){var b={};if("colorpicker"==g||"color"==g)e=e.hex;b[a]=e;d.setAttributes(b);return d}var h=wp.element.createElement,p=wp.element.Fragment,q=wp.blocks.registerBlockType,
3
+ r=wp.editor.InspectorControls,n=wp.element.RawHTML,t=wp.components.SelectControl,u=wp.components.ToggleControl,v=wp.components.CheckboxControl,w=wp.components.RangeControl,x=wp.components.ColorPicker,y=wp.components.RadioControl,z=wp.components.TextControl,A=wp.components.TextareaControl,B=h("svg",{width:22,height:22},h("path",{d:"M 18.24 7.628 C 17.291 8.284 16.076 8.971 14.587 9.688 C 15.344 7.186 15.765 4.851 15.849 2.684 C 15.912 0.939 15.133 0.045 13.514 0.003 C 11.558 -0.06 10.275 1.033 9.665 3.284 C 10.007 3.137 10.359 3.063 10.723 3.063 C 11.021 3.063 11.267 3.184 11.459 3.426 C 11.651 3.668 11.736 3.947 11.715 4.262 C 11.695 5.082 11.276 5.961 10.46 6.896 C 9.644 7.833 8.918 8.3 8.282 8.3 C 7.837 8.3 7.625 7.922 7.646 7.165 C 7.667 6.765 7.804 5.955 8.056 4.735 C 8.287 3.579 8.403 2.801 8.403 2.401 C 8.403 1.707 8.224 1.144 7.867 0.713 C 7.509 0.282 6.994 0.098 6.321 0.161 C 5.858 0.203 5.175 0.624 4.27 1.422 C 3.596 2.035 2.923 2.644 2.25 3.254 L 2.976 4.106 C 3.564 3.664 3.922 3.443 4.048 3.443 C 4.448 3.443 4.637 3.717 4.617 4.263 C 4.617 4.306 4.427 4.968 4.049 6.251 C 3.671 7.534 3.471 8.491 3.449 9.122 C 3.407 9.985 3.565 10.647 3.924 11.109 C 4.367 11.677 5.106 11.919 6.142 11.835 C 7.366 11.751 8.591 11.298 9.816 10.479 C 10.323 10.142 10.808 9.753 11.273 9.311 C 11.105 10.153 10.905 10.868 10.673 11.457 C 8.402 12.487 6.762 13.37 5.752 14.107 C 4.321 15.137 3.554 16.241 3.449 17.419 C 3.259 19.459 4.29 20.479 6.541 20.479 C 8.055 20.479 9.517 19.554 10.926 17.703 C 12.125 16.126 13.166 14.022 14.049 11.394 C 15.578 10.635 16.87 9.892 17.928 9.164 C 17.894 9.409 18.319 7.308 18.24 7.628 Z M 7.393 16.095 C 7.056 16.095 6.898 15.947 6.919 15.653 C 6.961 15.106 7.908 14.38 9.759 13.476 C 8.791 15.221 8.002 16.095 7.393 16.095 Z"}));
4
+ f.each(yith_gutenberg,function(e,a){q("yith/"+e,{title:a.title,description:a.description,category:a.category,attributes:a.attributes,icon:"undefined"!=typeof a.icon?a.icon:B,keywords:a.keywords,edit:function(d){var g=[];f.each(a.attributes,function(a,c){var b=null,e=c.blocktype;if("undefined"!=typeof e){switch(e){case "select":b=t;break;case "text":b=z;break;case "textarea":b=A;break;case "toggle":b=u;break;case "checkbox":b=v;break;case "number":case "range":b=w;break;case "color":case "colorpicker":b=
5
+ x;break;case "radio":b=y}if(null!=b){var f=helpMessageUncheked="";"undefined"!=typeof c.helps&&"undefined"!=typeof c.helps.checked&&"undefined"!=typeof c.helps.unchecked?(f=c.helps.checked,helpMessageUncheked=c.helps.unchecked):"undefined"!=typeof c.help&&(f=helpMessageUncheked=c.help);g.push(h(b,{value:d.attributes[a],options:c.options,label:c.label,checked:d.attributes[a],selected:d.attributes[a],help:d.attributes[a]?f:helpMessageUncheked,disableAlpha:c.disableAlpha,min:c.min,max:c.max,multiple:c.multiple,
6
+ onChange:function(b,c){c=void 0===c?a:c;d=m(b,c,d,e)},onChangeComplete:function(c,b){b=void 0===b?a:b;d=m(c,b,d,e)}}))}}});sc=k(d,a,"edit");return[h(p,null,h(r,null,g),sc)]},save:function(d){return k(d,a,"save")}})})})(jQuery);
plugin-fw/init.php CHANGED
@@ -1,13 +1,13 @@
1
<?php
2
/**
3
* Framework Name: YIT Plugin Framework
4
- * Version: 3.1.5
5
* Author: YITHEMES
6
* Text Domain: yith-plugin-fw
7
* Domain Path: /languages/
8
*
9
* @author Your Inspiration Themes
10
- * @version 3.1.5
11
*/
12
/**
13
* This file belongs to the YIT Plugin Framework.
1
<?php
2
/**
3
* Framework Name: YIT Plugin Framework
4
+ * Version: 3.1.15
5
* Author: YITHEMES
6
* Text Domain: yith-plugin-fw
7
* Domain Path: /languages/
8
*
9
* @author Your Inspiration Themes
10
+ * @version 3.1.14
11
*/
12
/**
13
* This file belongs to the YIT Plugin Framework.
plugin-fw/lib/promo/yith-promo.php CHANGED
@@ -17,7 +17,7 @@ add_action( 'admin_enqueue_scripts', 'yith_plugin_fw_notice_dismiss', 20 );
17
18
if( ! function_exists( 'yith_plugin_fw_promo_notices' ) ){
19
function yith_plugin_fw_promo_notices(){
20
- $base_url = apply_filters( 'yith_plugin_fw_promo_base_url', 'https://update.yithemes.com/promo/hotlink-ok' );
21
$xml = apply_filters( 'yith_plugin_fw_promo_xml_url', $base_url . 'yith-promo.xml' );
22
$transient = "yith_promo_message";
23
$remote_data = get_site_transient( $transient );
@@ -38,7 +38,8 @@ if( ! function_exists( 'yith_plugin_fw_promo_notices' ) ){
38
$license = YIT_Plugin_Licence()->get_licence();
39
$xml_expiry_date = '';
40
41
- if( is_array( $license ) ){
42
foreach( $license as $plugin => $data ){
43
if( ! empty( $data['is_membership'] ) ){
44
$is_membership_user = true;
@@ -61,10 +62,30 @@ if( ! function_exists( 'yith_plugin_fw_promo_notices' ) ){
61
$now = strtotime( current_time( 'mysql' ) );
62
63
foreach ($promo_data->promo as $promo ){
64
$start_date = isset( $promo->start_date ) ? $promo->start_date : '';
65
$end_date = isset( $promo->end_date ) ? $promo->end_date : '';
66
67
- if( ! empty( $start_date ) && ! empty( $end_date ) ){
68
$start_date = strtotime( $start_date );
69
$end_date = strtotime( $end_date );
70
@@ -96,7 +117,7 @@ if( ! function_exists( 'yith_plugin_fw_promo_notices' ) ){
96
97
if( ! empty( $title ) ) {
98
$promo_id .= $title;
99
- $title = sprintf( '<strong>%s</strong>: ', $title );
100
$show_notice = true;
101
}
102
17
18
if( ! function_exists( 'yith_plugin_fw_promo_notices' ) ){
19
function yith_plugin_fw_promo_notices(){
20
+ $base_url = apply_filters( 'yith_plugin_fw_promo_base_url', 'https://update.yithemes.com/promo/hotlink-ok/' );
21
$xml = apply_filters( 'yith_plugin_fw_promo_xml_url', $base_url . 'yith-promo.xml' );
22
$transient = "yith_promo_message";
23
$remote_data = get_site_transient( $transient );
38
$license = YIT_Plugin_Licence()->get_licence();
39
$xml_expiry_date = '';
40
41
+ if( is_array( $license ) && apply_filters( 'yith_plugin_fw_check_for_membership_user', true ) ){
42
+ /* === Check is the user have the YITH Club === */
43
foreach( $license as $plugin => $data ){
44
if( ! empty( $data['is_membership'] ) ){
45
$is_membership_user = true;
62
$now = strtotime( current_time( 'mysql' ) );
63
64
foreach ($promo_data->promo as $promo ){
65
+ $show_promo = true;
66
+ /* === Check for Special Promo === */
67
+ if ( ! empty( $promo->show_promo_in ) ) {
68
+ $show_promo_in = explode( ',', $promo->show_promo_in );
69
+ $show_promo_in = array_map( 'trim', $show_promo_in );
70
+ if ( ! empty( $show_promo_in ) ) {
71
+ $show_promo = false;
72
+ foreach ( $show_promo_in as $plugin ) {
73
+ if ( defined( $plugin ) ) {
74
+ $plugin_slug = constant( $plugin );
75
+ $plugin_is_activated = ! empty( $license[ $plugin_slug ]['activated'] );
76
+ if ( defined( $plugin ) && ! apply_filters( 'yith_plugin_fw_promo_plugin_is_activated', $plugin_is_activated ) ) {
77
+ $show_promo = true;
78
+ break;
79
+ }
80
+ }
81
+ }
82
+ }
83
+ }
84
+
85
$start_date = isset( $promo->start_date ) ? $promo->start_date : '';
86
$end_date = isset( $promo->end_date ) ? $promo->end_date : '';
87
88
+ if( $show_promo && ! empty( $start_date ) && ! empty( $end_date ) ){
89
$start_date = strtotime( $start_date );
90
$end_date = strtotime( $end_date );
91
117
118
if( ! empty( $title ) ) {
119
$promo_id .= $title;
120
+ $title = sprintf( '%s: ', $title );
121
$show_notice = true;
122
}
123
plugin-fw/lib/yit-icons.php CHANGED
@@ -1136,8 +1136,10 @@ if ( !class_exists( 'YIT_Icons' ) ) {
1136
1137
}
1138
}
1139
- function YIT_Icons() {
1140
- return YIT_Icons::get_instance();
1141
}
1142
1143
YIT_Icons();
1136
1137
}
1138
}
1139
+ if( ! function_exists( 'YIT_Icons' ) ){
1140
+ function YIT_Icons() {
1141
+ return YIT_Icons::get_instance();
1142
+ }
1143
}
1144
1145
YIT_Icons();
plugin-fw/lib/yit-plugin-panel.php CHANGED
@@ -328,22 +328,19 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
328
* @author Andrea Grillo <andrea.grillo@yithemes.com>
329
*/
330
public function add_premium_version_upgrade_to_menu() {
331
- global $submenu;
332
333
- if ( apply_filters( 'yit_show_upgrade_to_premium_version', isset( $submenu[ 'yith_plugin_panel' ] ) && !isset( $submenu[ 'yith_plugin_panel' ][ 'how_to' ] ) ) ) {
334
$submenu[ 'yith_plugin_panel' ][ 'how_to' ] = array(
335
sprintf( '%s%s%s', '<span id="yith-how-to-premium">', __( 'How to install premium version', 'yith-plugin-fw' ), '</span>' ),
336
'install_plugins',
337
'//support.yithemes.com/hc/en-us/articles/217840988',
338
__( 'How to install premium version', 'yith-plugin-fw' ),
339
);
340
-
341
- $submenu[ 'yith_plugin_panel' ][ 'frequently_license_issues' ] = array(
342
- sprintf( '%s%s%s', '<span id="yith-license-issues-premium">', __( 'Frequently license issues', 'yith-plugin-fw' ), '</span>' ),
343
- 'install_plugins',
344
- '//support.yithemes.com/hc/en-us/articles/360012568594-License-activation-issues',
345
- __( 'Frequently license issues', 'yith-plugin-fw' ),
346
- );
347
}
348
}
349
328
* @author Andrea Grillo <andrea.grillo@yithemes.com>
329
*/
330
public function add_premium_version_upgrade_to_menu() {
331
+ /* === Add the How To menu item only if the customer haven't a premium version enabled === */
332
+ if( function_exists( 'YIT_Plugin_Licence' ) && ! empty( YIT_Plugin_Licence()->get_products() ) ){
333
+ return false;
334
+ }
335
336
+ global $submenu;
337
+ if ( apply_filters( 'yit_show_upgrade_to_premium_version', isset( $submenu[ 'yith_plugin_panel' ] ) ) ) {
338
$submenu[ 'yith_plugin_panel' ][ 'how_to' ] = array(
339
sprintf( '%s%s%s', '<span id="yith-how-to-premium">', __( 'How to install premium version', 'yith-plugin-fw' ), '</span>' ),
340
'install_plugins',
341
'//support.yithemes.com/hc/en-us/articles/217840988',
342
__( 'How to install premium version', 'yith-plugin-fw' ),
343
);
344
}
345
}
346
plugin-fw/lib/yit-upgrade.php CHANGED
@@ -183,16 +183,22 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
183
*
184
* @since 1.0
185
* @author Andrea Grillo <andrea.grillo@yithemes.com>
186
*/
187
public function multisite_updater_script() {
188
- $update_url = $changelogs = $details_url = array();
189
- $strings = array(
190
- 'new_version' => __( 'There is a new version of %plugin_name% available.', 'yith-plugin-fw' ),
191
- 'latest' => __( 'View version %latest% details.', 'yith-plugin-fw' ),
192
- 'unavailable' => __( 'Automatic update is unavailable for this plugin,', 'yith-plugin-fw' ),
193
- 'activate' => __( 'please <a href="%activate_link%">activate</a> your copy of %plugin_name%.', 'yith-plugin-fw' ),
194
- 'update_now' => __( 'Update now.', 'yith-plugin-fw' )
195
196
);
197
198
foreach ( $this->_plugins as $init => $info ) {
@@ -209,14 +215,17 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
209
'strings' => $strings,
210
);
211
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
212
- yit_enqueue_script( 'yit-multisite-updater', YIT_CORE_PLUGIN_URL . '/assets/js/multisite-updater' . $suffix . '.js', array( 'jquery' ), false, true );
213
214
wp_localize_script( 'yit-multisite-updater', 'plugins', $localize_script_args );
215
}
216
217
public function admin_enqueue_scripts() {
218
global $pagenow;
219
- if ( 'plugins.php' === $pagenow ) {
220
wp_enqueue_style( 'yit-upgrader', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrader.css' );
221
}
222
}
@@ -236,6 +245,11 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
236
* @author Andrea Grillo <andrea.grillo@yithemes.com>
237
*/
238
public function upgrader_pre_download( $reply, $package, $upgrader ) {
239
$plugin = false;
240
$is_bulk = $upgrader->skin instanceof Bulk_Plugin_Upgrader_Skin;
241
$is_bulk_ajax = $upgrader->skin instanceof WP_Ajax_Upgrader_Skin;
@@ -286,7 +300,7 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
286
$product_id = $plugin_info['product_id'];
287
288
if( empty( $licence[ $product_id ] ) ){
289
- return new WP_Error( 'license_not_valid', __( 'You have to activate the plugin to benefit from automatic updates.', '[Update Plugin Message: License not enabled]', 'yith-plugin-fw' ) );
290
}
291
292
$args = array(
@@ -315,7 +329,7 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
315
/**
316
* Regenerate update_plugins transient
317
*/
318
- $this->force_regenerate_update_transient();
319
320
if ( is_wp_error( $download_file ) ) {
321
return new WP_Error( 'download_failed', $upgrader->strings['download_failed'], $download_file->get_error_message() );
@@ -325,7 +339,7 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
325
}
326
327
/**
328
- * Retrive the temp filename
329
*
330
* @param string $url The package url
331
* @param string $body The post data fields
@@ -411,6 +425,7 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
411
* @since 1.0
412
* @see update_plugins transient and pre_set_site_transient_update_plugins hooks
413
* @author Andrea Grillo <andrea.grillo@yithemes.com>
414
*/
415
public function force_regenerate_update_transient() {
416
delete_site_transient( 'update_plugins' );
@@ -442,8 +457,10 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
442
$plugin_remote_info = @simplexml_load_string( $remote_xml['body'] );
443
444
if ( $plugin_remote_info ) {
445
446
- if ( version_compare( $plugin_remote_info->latest, $plugin['info']['Version'], '>' ) && ! isset( $transient->response[ $init ] ) ) {
447
448
$package = YIT_Plugin_Licence()->check( $init ) ? $this->_package_url : null;
449
@@ -517,42 +534,51 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
517
*/
518
$wp_list_table = _get_list_table( 'WP_MS_Themes_List_Table' );
519
520
- if ( is_network_admin() || ! is_multisite() || true ) {
521
- global $wp_version;
522
- $is_wp_4_6 = version_compare( $wp_version, '4.6', '>=' );
523
524
- echo '<tr class="plugin-update-tr' . ( is_plugin_active( $init ) ? ' active' : '' ) . '"><td colspan="' . $wp_list_table->get_column_count() . '" class="plugin-update colspanchange">';
525
526
- echo '<div class="update-message' . ( $is_wp_4_6 ? ' notice inline notice-warning notice-alt' : '' ) . '">';
527
528
- echo( $is_wp_4_6 ? '<p>' : '' );
529
530
- if ( ! current_user_can( 'update_plugins' ) ) {
531
- printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button open-plugin-details-modal" title="%3$s">View version %4$s details</a>.', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version );
532
- } elseif ( is_plugin_active_for_network( $init ) ) {
533
- printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button open-plugin-details-modal" title="%3$s">View version %4$s details</a>. <em>You have to activate the plugin on a single site of the network to benefit from automatic updates.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version );
534
- } elseif ( empty( $r->package ) ) {
535
- printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button open-plugin-details-modal" title="%3$s">View version %4$s details</a>. <em>Automatic update is unavailable for this plugin, please <a href="%5$s" title="License activation">activate</a> your copy of %6s.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, YIT_Plugin_Licence()->get_licence_activation_page_url(), $this->_plugins[ $init ]['info']['Name'] );
536
- } else {
537
- printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button open-plugin-details-modal" title="%3$s">View version %4$s details</a> or <a href="%5$s">update now</a>.', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $init, 'upgrade-plugin_' . $init ) );
538
- }
539
540
- echo( $is_wp_4_6 ? '</p>' : '' );
541
542
- /**
543
- * Fires at the end of the update message container in each
544
- * row of the themes list table.
545
- *
546
- * The dynamic portion of the hook name, `$theme_key`, refers to
547
- * the theme slug as found in the WordPress.org themes repository.
548
- *
549
- * @since Wordpress 3.1.0
550
- * }
551
- */
552
- do_action( "in_theme_update_message-{$init}", $this->_plugins[ $init ], $r->changelog, $changelog_id );
553
554
- echo '</div></td></tr>';
555
}
556
}
557
558
/**
@@ -571,7 +597,6 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
571
foreach ( $this->_plugins as $init => $plugin ) {
572
remove_action( "after_plugin_row_{$init}", 'wp_plugin_update_row', 10 );
573
add_action( "after_plugin_row_{$init}", array( $this, 'plugin_update_row' ) );
574
- //add_action( "in_theme_update_message-{$init}", array( $this, 'in_theme_update_message' ), 10, 3 );
575
}
576
}
577
183
*
184
* @since 1.0
185
* @author Andrea Grillo <andrea.grillo@yithemes.com>
186
+ * @return bool
187
*/
188
public function multisite_updater_script() {
189
+ /* === If class YIT_Plugin_Licence doesn't exists, no YITH plugins enabled === */
190
+ if( ! function_exists( 'YIT_Plugin_Licence' ) ){
191
+ return false;
192
+ }
193
194
+ $update_url = $changelogs = $details_url = array();
195
+ $strings = array(
196
+ 'new_version' => __( 'There is a new version of %plugin_name% available.', 'yith-plugin-fw' ),
197
+ 'latest' => __( 'View version %latest% details.', 'yith-plugin-fw' ),
198
+ 'unavailable' => __( 'Automatic update is unavailable for this plugin,', 'yith-plugin-fw' ),
199
+ 'activate' => __( 'please <a href="%activate_link%">activate</a> your copy of %plugin_name%.', 'yith-plugin-fw' ),
200
+ 'update_now' => __( 'Update now.', 'yith-plugin-fw' ),
201
+ 'version_issue' => __( '<br/><b>Please note:</b> You are using a higher version than the latest available one. </em>Please, make sure you\'ve downloaded the latest version of <em>%1$s</em> from the only <a href="https://yithemes.com" target="_blank">YITH official website</a>, specifically, from your <a href="https://yithemes.com/my-account/recent-downloads/" target="_blank">Downloads page</a>. This is the only way to be sure the version you are using is 100% malware-free.', 'yith-plugin-fw' ),
202
);
203
204
foreach ( $this->_plugins as $init => $info ) {
215
'strings' => $strings,
216
);
217
$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
218
+
219
+ if( defined( 'YIT_CORE_PLUGIN_URL' ) ){
220
+ yit_enqueue_script( 'yit-multisite-updater', YIT_CORE_PLUGIN_URL . '/assets/js/multisite-updater' . $suffix . '.js', array( 'jquery' ), false, true );
221
+ }
222
223
wp_localize_script( 'yit-multisite-updater', 'plugins', $localize_script_args );
224
}
225
226
public function admin_enqueue_scripts() {
227
global $pagenow;
228
+ if ( 'plugins.php' === $pagenow && defined( 'YIT_CORE_PLUGIN_URL' ) ) {
229
wp_enqueue_style( 'yit-upgrader', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrader.css' );
230
}
231
}
245
* @author Andrea Grillo <andrea.grillo@yithemes.com>
246
*/
247
public function upgrader_pre_download( $reply, $package, $upgrader ) {
248
+ /* === If class YIT_Plugin_Licence doesn't exists, no YITH plugins enabled === */
249
+ if( ! function_exists( 'YIT_Plugin_Licence' ) ){
250
+ return $reply;
251
+ }
252
+
253
$plugin = false;
254
$is_bulk = $upgrader->skin instanceof Bulk_Plugin_Upgrader_Skin;
255
$is_bulk_ajax = $upgrader->skin instanceof WP_Ajax_Upgrader_Skin;
300
$product_id = $plugin_info['product_id'];
301
302
if( empty( $licence[ $product_id ] ) ){
303
+ return new WP_Error( 'license_not_valid', _x( 'You have to activate the plugin to benefit from automatic updates.', '[Update Plugin Message: License not enabled]', 'yith-plugin-fw' ) );
304
}
305
306
$args = array(
329
/**
330
* Regenerate update_plugins transient
331
*/
332
+ yith_plugin_fw_force_regenerate_plugin_update_transient();
333
334
if ( is_wp_error( $download_file ) ) {
335
return new WP_Error( 'download_failed', $upgrader->strings['download_failed'], $download_file->get_error_message() );
339
}
340
341
/**
342
+ * Retrieve the temp filename
343
*
344
* @param string $url The package url
345
* @param string $body The post data fields
425
* @since 1.0
426
* @see update_plugins transient and pre_set_site_transient_update_plugins hooks
427
* @author Andrea Grillo <andrea.grillo@yithemes.com>
428
+ * @deprecated From version 3.1.12
429
*/
430
public function force_regenerate_update_transient() {
431
delete_site_transient( 'update_plugins' );
457
$plugin_remote_info = @simplexml_load_string( $remote_xml['body'] );
458
459
if ( $plugin_remote_info ) {
460
+ $wrong_current_version_check = version_compare( $plugin['info']['Version'], $plugin_remote_info->latest, '>' );
461
+ $update_available = version_compare( $plugin_remote_info->latest, $plugin['info']['Version'], '>' );
462
463
+ if ( ( $update_available || $wrong_current_version_check ) && ! isset( $transient->response[ $init ] ) ) {
464
465
$package = YIT_Plugin_Licence()->check( $init ) ? $this->_package_url : null;
466
534
*/
535
$wp_list_table = _get_list_table( 'WP_MS_Themes_List_Table' );
536
537
+ global $wp_version;
538
+ $is_wp_4_6 = version_compare( $wp_version, '4.6', '>=' );
539
540
+ echo '<tr class="plugin-update-tr active' . ( is_plugin_active( $init ) ? ' active' : '' ) . '"><td colspan="' . $wp_list_table->get_column_count() . '" class="plugin-update colspanchange">';
541
542
+ echo '<div class="update-message' . ( $is_wp_4_6 ? ' notice inline notice-warning notice-alt' : '' ) . '">';
543
544
+ echo( $is_wp_4_6 ? '<p>' : '' );
545
546
+ if ( ! current_user_can( 'update_plugins' ) ) {
547
+ printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button open-plugin-details-modal" title="%3$s">View version %4$s details</a>.', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version );
548
+ }
549
+
550
+ elseif ( is_plugin_active_for_network( $init ) ) {
551
+ printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button open-plugin-details-modal" title="%3$s">View version %4$s details</a>. <em>You have to activate the plugin on a single site of the network to benefit from automatic updates.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version );
552
+ }
553
554
+ elseif ( empty( $r->package ) ) {
555
+ printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button open-plugin-details-modal" title="%3$s">View version %4$s details</a>. <em>Automatic update is unavailable for this plugin, please <a href="%5$s" title="License activation">activate</a> your copy of %6s.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, YIT_Plugin_Licence()->get_licence_activation_page_url(), $this->_plugins[ $init ]['info']['Name'] );
556
+ }
557
558
+ else {
559
+ printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button open-plugin-details-modal" title="%3$s">View version %4$s details</a> or <a href="%5$s">update now</a>.', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $init, 'upgrade-plugin_' . $init ) );
560
+ }
561
562
+ if( version_compare( $this->_plugins[ $init ]['info']['Version'] , $r->new_version, '>' ) ){
563
+ printf( __( '<br/><b>Please note:</b> You are using a higher version than the latest available one. </em>Please, make sure you\'ve downloaded the latest version of <em>%1$s</em> from the only <a href="https://yithemes.com" target="_blank">YITH official website</a>, specifically, from your <a href="https://yithemes.com/my-account/recent-downloads/" target="_blank">Downloads page</a>. This is the only way to be sure the version you are using is 100%% malware-free.', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, YIT_Plugin_Licence()->get_licence_activation_page_url(), $this->_plugins[ $init ]['info']['Name'] );
564
}
565
+
566
+
567
+ echo( $is_wp_4_6 ? '</p>' : '' );
568
+
569
+ /**
570
+ * Fires at the end of the update message container in each
571
+ * row of the themes list table.
572
+ *
573
+ * The dynamic portion of the hook name, `$theme_key`, refers to
574
+ * the theme slug as found in the WordPress.org themes repository.
575
+ *
576
+ * @since Wordpress 3.1.0
577
+ * }
578
+ */
579
+ do_action( "in_theme_update_message-{$init}", $this->_plugins[ $init ], $r->changelog, $changelog_id );
580
+
581
+ echo '</div></td></tr>';
582
}
583
584
/**
597
foreach ( $this->_plugins as $init => $plugin ) {
598
remove_action( "after_plugin_row_{$init}", 'wp_plugin_update_row', 10 );
599
add_action( "after_plugin_row_{$init}", array( $this, 'plugin_update_row' ) );
600
}
601
}
602
plugin-fw/lib/yith-dashboard.php ADDED
@@ -0,0 +1,74 @@
1
+ <?php
2
+ /**
3
+ * YITH
4
+ *
5
+ * @package WordPress
6
+ * @subpackage YITH
7
+ * @author YITH <plugins@yithemes.com>
8
+ *
9
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
10
+ * that is bundled with this package in the file LICENSE.txt.
11
+ * It is also available through the world-wide-web at this URL:
12
+ * http://www.gnu.org/licenses/gpl-3.0.txt
13
+ */
14
+
15
+ if( ! class_exists( 'YITH_Dashboard' ) ){
16
+ /**
17
+ * Wordpress Admin Dashboard Management
18
+ *
19
+ * @since 1.0.0
20
+ */
21
+ class YITH_Dashboard {
22
+ /**
23
+ * Products URL
24
+ *
25
+ * @var string
26
+ * @access protected
27
+ * @since 1.0.0
28
+ */
29
+ static protected $_products_feed = 'https://yithemes.com/feed/?post_type=product';
30
+ static protected $_blog_feed = 'https://yithemes.com/feed/';
31
+
32
+ /**
33
+ * Dashboard widget setup
34
+ *
35
+ * @return void
36
+ * @since 1.0.0
37
+ * @access public
38
+ */
39
+ public static function dashboard_widget_setup() {
40
+ wp_add_dashboard_widget( 'yith_dashboard_products_news', __( 'New YITH products' , 'yith-plugin-fw' ), 'YITH_Dashboard::dashboard_products_news' );
41
+ wp_add_dashboard_widget( 'yith_dashboard_blog_news', __( 'News from the YITH Blog' , 'yith-plugin-fw' ), 'YITH_Dashboard::dashboard_blog_news' );
42
+ }
43
+
44
+
45
+ /**
46
+ * Product news Widget
47
+ *
48
+ * @return void
49
+ * @since 1.0.0
50
+ * @access public
51
+ */
52
+ public static function dashboard_products_news() {
53
+ $args = array( 'show_author' => 0, 'show_date' => 1, 'show_summary' => 1, 'items'=> 3 );
54
+ wp_widget_rss_output( static::$_products_feed, $args );
55
+ }
56
+
57
+
58
+ /**
59
+ * Blog news Widget
60
+ *
61
+ * @return void
62
+ * @since 1.0.0
63
+ * @access public
64
+ */
65
+ public static function dashboard_blog_news() {
66
+ $args = array( 'show_author' => 0, 'show_date' => 1, 'show_summary' => 1, 'items'=> 3 );
67
+ wp_widget_rss_output( static::$_blog_feed, $args );
68
+ }
69
+ }
70
+ if( apply_filters( 'yith_plugin_fw_show_dashboard_widgets', true ) ){
71
+ add_action( 'wp_dashboard_setup', 'YITH_Dashboard::dashboard_widget_setup' );
72
+ }
73
+ }
74
+
plugin-fw/lib/yith-gutenberg.php CHANGED
@@ -1,321 +1,333 @@
1
- <?php
2
- /**
3
- * This file belongs to the YIT Framework.
4
- *
5
- * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
- * that is bundled with this package in the file LICENSE.txt.
7
- * It is also available through the world-wide-web at this URL:
8
- * http://www.gnu.org/licenses/gpl-3.0.txt
9
- */
10
-
11
- /**
12
- * Text Domain: yith-plugin-fw
13
- */
14
-
15
- if ( ! defined( 'ABSPATH' ) ) {
16
- exit;
17
- } // Exit if accessed directly
18
-
19
- if( ! class_exists( 'YITH_Gutenberg' ) ){
20
-
21
- class YITH_Gutenberg{
22
- /**
23
- * @var array Registered blocks
24
- */
25
- private $_registered_blocks = array();
26
-
27
- /**
28
- * @var array Blocks to register
29
- */
30
- private $_to_register_blocks = array();
31
-
32
- /**
33
- * @var array Blocks args
34
- */
35
- private $_blocks_args = array();
36
-
37
- /**
38
- * @var string Block category slug
39
- */
40
- private $_category_slug = 'yith-blocks';
41
-
42
- /**
43
- * @var YIT_Upgrade The main instance
44
- */
45
- protected static $_instance;
46
-
47
- /**
48
- * Main plugin Instance
49
- *
50
- * @static
51
- * @return object Main instance
52
- *
53
- * @since 1.0
54
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
55
- */
56
- public static function instance() {
57
- if ( is_null( self::$_instance ) ) {
58
- self::$_instance = new self();
59
- }
60
-
61
- return self::$_instance;
62
- }
63
-
64
- /**
65
- * YITH_Gutenberg constructor.
66
- */
67
- private function __construct() {
68
- add_action( 'init', array( $this, 'register_blocks' ), 30 );
69
- add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ) );
70
- add_action( 'wp_ajax_yith_plugin_fw_gutenberg_do_shortcode', array( $this, 'do_shortcode' ) );
71
- add_action( 'wc_ajax_yith_plugin_fw_gutenberg_do_shortcode', array( $this, 'do_shortcode' ) );
72
- }
73
-
74
- /**
75
- * Enqueue scripts for gutenberg
76
- */
77
- public function enqueue_block_editor_assets() {
78
- $ajax_url = function_exists( 'WC' ) ? add_query_arg( 'wc-ajax', 'yith_plugin_fw_gutenberg_do_shortcode', trailingslashit( site_url() ) ) : admin_url( 'admin-ajax.php' );
79
- $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
80
- $deps = apply_filters( 'yith_plugin_fw_gutenberg_script_deps', array(
81
- 'wp-blocks',
82
- 'wp-element',
83
- 'yith-js-md5'
84
- ) );
85
- wp_register_script( 'yith-js-md5', YIT_CORE_PLUGIN_URL . '/assets/js/javascript-md5/md5.min.js', array(), '2.10.0', true );
86
- wp_enqueue_script( 'yith-gutenberg', YIT_CORE_PLUGIN_URL . '/assets/js/yith-gutenberg' . $suffix . '.js', $deps, yith_plugin_fw_get_version(), true );
87
- wp_localize_script( 'yith-gutenberg', 'yith_gutenberg', $this->_blocks_args );
88
- wp_localize_script( 'yith-gutenberg', 'yith_gutenberg_ajax', array( 'ajaxurl' => $ajax_url ) );
89
- }
90
-
91
- /**
92
- * Add blocks to gutenberg editor
93
- *
94
- * @return void
95
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
96
- */
97
- public function register_blocks(){
98
- foreach ( $this->_to_register_blocks as $block => $args ){
99
- $block_style = isset( $args['style'] ) ? array( 'style' => $args['style'] ) : array();
100
- if( register_block_type( "yith/{$block}", $block_style ) ){
101
- $this->_registered_blocks[] = $block;
102
- }
103
- }
104
-
105
- if( ! empty( $this->_registered_blocks ) ){
106
- add_filter( 'block_categories', array( $this, 'block_category' ), 10, 2 );
107
- }
108
- }
109
-
110
- /**
111
- * Add block category
112
- *
113
- * @param $categories array block categories array
114
- * @param $post WP_Post current post
115
- *
116
- * @return array block categories
117
- *
118
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
119
- */
120
- public function block_category( $categories, $post ){
121
- return array_merge(
122
- $categories,
123
- array(
124
- array(
125
- 'slug' => 'yith-blocks',
126
- 'title' => _x( 'YITH', '[gutenberg]: Category Name', 'yith-plugin-fw' ),
127
- ),
128
- )
129
- );
130
- }
131
-
132
- /**
133
- * Add new blocks to Gutenberg
134
- *
135
- * @param $blocks string|array new blocks
136
- * @return bool true if add a new blocks, false otherwise
137
- *
138
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
139
- */
140
- public function add_blocks( $blocks ){
141
- $added = false;
142
- if( ! empty( $blocks ) ){
143
- $added = true;
144
- if( is_array( $blocks ) ){
145
- $this->_to_register_blocks = array_merge( $this->_to_register_blocks, $blocks );
146
- }
147
-
148
- else {
149
- $this->_to_register_blocks[] = $blocks;
150
- }
151
- }
152
-
153
- return $added;
154
- }
155
-
156
- /**
157
- * Return an array with the registered blocks
158
- *
159
- * @return array
160
- */
161
- public function get_registered_blocks(){
162
- return $this->_registered_blocks;
163
- }
164
-
165
- /**
166
- * Return an array with the blocks to register
167
- *
168
- * @return array
169
- */
170
- public function get_to_register_blocks(){
171
- return $this->_to_register_blocks;
172
- }
173
-
174
- /**
175
- * Return an array with the block(s) arguments
176
- *
177
- * @return array
178
- */
179
- public function get_block_args( $block = 'all' ){
180
- if( 'all' == $block ){
181
- return $this->_blocks_args;
182
- }
183
-
184
- elseif( isset( $this->_blocks_args[ $block ] ) ){
185
- return $this->_blocks_args[ $block ];
186
- }
187
-
188
- return false;
189
- }
190
-
191
- /**
192
- * @return string Default block cateogyr slug
193
- */
194
- public function get_default_blocks_category_slug(){
195
- return $this->_category_slug;
196
- }
197
-
198
- /**
199
- * Set the block arguments
200
- *
201
- * @param $args array The block argument
202
- */
203
- public function set_block_args( $args ){
204
- foreach( $args as $block => $block_args ){
205
-
206
- /* === Add Default Keywords === */
207
- $default_keywords = array( 'yith' );
208
- if( ! empty( $block_args['shortcode_name'] ) ){
209
- $default_keywords[] = $block_args['shortcode_name'];
210
- }
211
-
212
- $args[ $block ]['keywords'] = ! empty( $args[ $block ]['keywords'] ) ? array_merge( $args[ $block ]['keywords'], $default_keywords ) : $default_keywords;
213
-
214
- if( count( $args[ $block ]['keywords'] ) > 3 ){
215
- $args[ $block ]['keywords'] = array_slice($args[ $block ]['keywords'], 0, 3);
216
- }
217
-
218
- if( empty( $block_args['category'] ) ){
219
- //Add YITH block category
220
- $args[ $block ]['category'] = $this->get_default_blocks_category_slug();
221
- }
222
-
223
- if( isset( $block_args['attributes'] ) ){
224
- foreach( $block_args['attributes'] as $attr_name => $attributes ){
225
- // Set the do_shortcode args
226
- if( ! empty( $attributes['do_shortcode'] ) ){
227
- $args[ $block ]['attributes'][ $attr_name ] = true;
228
- }
229
-
230
- if( ! empty( $attributes['options'] ) && is_array( $attributes['options'] ) ){
231
- $options = array();
232
- foreach( $attributes['options'] AS $v => $l ){
233
- //Prepare options array for react component
234
- $options[] = array(
235
- 'label' => $l,
236
- 'value' => $v,
237
- );
238
- }
239
- $args[ $block ]['attributes'][ $attr_name ]['options'] = $options;
240
- }
241
-
242
- if( empty( $attributes['remove_quotes'] ) ){
243
- $args[ $block ]['attributes'][ $attr_name ]['remove_quotes'] = false;
244
- }
245
-
246
- /* === Special Requirements for Block Type === */
247
- if( ! empty( $attributes['type'] ) ) {
248
- $args[ $block ]['attributes'][ $attr_name ]['blocktype'] = $attributes['type'];
249
- $args[ $block ]['attributes'][ $attr_name ]['type'] = 'string';
250
-
251
- switch( $attributes['type'] ){
252
- case 'select':
253
- //Add default value for multiple
254
- if( ! isset( $attributes['multiple'] ) ) {
255
- $args[ $block ]['attributes'][ $attr_name ]['multiple'] = false;
256
- }
257
- break;
258
-
259
- case 'color':
260
- case 'colorpicker':
261
- if( ! isset( $attributes['disableAlpha'] ) ){
262
- //Disable alpha gradient for color picker
263
- $args[ $block ]['attributes'][ $attr_name ]['disableAlpha'] = true;
264
- }
265
- break;
266
-
267
- case 'number':
268
- $args[ $block ]['attributes'][ $attr_name ]['type'] = 'integer';
269
- break;
270
-
271
- case 'toggle':
272
- case 'checkbox':
273
- $args[ $block ]['attributes'][ $attr_name ]['type'] = 'boolean';
274
- break;
275
- }
276
- }
277
- }
278
- }
279
- }
280
-
281
- $this->_blocks_args = array_merge( $this->_blocks_args, $args );
282
- }
283
-
284
- /**
285
- * Get a do_shortcode in ajax call to show block preview
286
- *
287
- * @param $args array The block argument
288
- */
289
- public function do_shortcode(){
290
- $current_action = current_action();
291
- $sc = ! empty( $_POST['shortcode'] ) ? $_POST['shortcode'] : '';
292
-
293
- if( ! apply_filters( 'yith_plugin_fw_gutenberg_skip_shortcode_sanitize', false ) ){
294
- $sc = sanitize_text_field( stripslashes( $sc ) );
295
- }
296
-
297
- do_action( 'yith_plugin_fw_gutenberg_before_do_shortcode', $sc, $current_action );
298
- echo do_shortcode( apply_filters( 'yith_plugin_fw_gutenberg_shortcode', $sc, $current_action ) );
299
- do_action( 'yith_plugin_fw_gutenberg_after_do_shortcode', $sc, $current_action );
300
-
301
- if( is_ajax() ){
302
- die();
303
- }
304
- }
305
- }
306
- }
307
-
308
- if ( ! function_exists( 'YITH_Gutenberg' ) ) {
309
- /**
310
- * Main instance of plugin
311
- *
312
- * @return YITH_Gutenberg
313
- * @since 1.0
314
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
315
- */
316
- function YITH_Gutenberg() {
317
- return YITH_Gutenberg::instance();
318
- }
319
- }
320
-
321
YITH_Gutenberg();
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Framework.
4
+ *
5
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
+ * that is bundled with this package in the file LICENSE.txt.
7
+ * It is also available through the world-wide-web at this URL:
8
+ * http://www.gnu.org/licenses/gpl-3.0.txt
9
+ */
10
+
11
+ /**
12
+ * Text Domain: yith-plugin-fw
13
+ */
14
+
15
+ if ( ! defined( 'ABSPATH' ) ) {
16
+ exit;
17
+ } // Exit if accessed directly
18
+
19
+ if( ! class_exists( 'YITH_Gutenberg' ) ){
20
+
21
+ class YITH_Gutenberg{
22
+ /**
23
+ * @var array Registered blocks
24
+ */
25
+ private $_registered_blocks = array();
26
+
27
+ /**
28
+ * @var array Blocks to register
29
+ */
30
+ private $_to_register_blocks = array();
31
+
32
+ /**
33
+ * @var array Blocks args
34
+ */
35
+ private $_blocks_args = array();
36
+
37
+ /**
38
+ * @var string Block category slug
39
+ */
40
+ private $_category_slug = 'yith-blocks';
41
+
42
+ /**
43
+ * @var YIT_Upgrade The main instance
44
+ */
45
+ protected static $_instance;
46
+
47
+ /**
48
+ * Main plugin Instance
49
+ *
50
+ * @static
51
+ * @return object Main instance
52
+ *
53
+ * @since 1.0
54
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
55
+ */
56
+ public static function instance() {
57
+ if ( is_null( self::$_instance ) ) {
58
+ self::$_instance = new self();
59
+ }
60
+
61
+ return self::$_instance;
62
+ }
63
+
64
+ /**
65
+ * YITH_Gutenberg constructor.
66
+ */
67
+ private function __construct() {
68
+ add_action( 'init', array( $this, 'register_blocks' ), 30 );
69
+ add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ) );
70
+ add_action( 'wp_ajax_yith_plugin_fw_gutenberg_do_shortcode', array( $this, 'do_shortcode' ) );
71
+ add_action( 'wc_ajax_yith_plugin_fw_gutenberg_do_shortcode', array( $this, 'do_shortcode' ) );
72
+ }
73
+
74
+ /**
75
+ * Enqueue scripts for gutenberg
76
+ */
77
+ public function enqueue_block_editor_assets() {
78
+ $ajax_url = function_exists( 'WC' ) ? add_query_arg( 'wc-ajax', 'yith_plugin_fw_gutenberg_do_shortcode', trailingslashit( site_url() ) ) : admin_url( 'admin-ajax.php' );
79
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
80
+ $deps = apply_filters( 'yith_plugin_fw_gutenberg_script_deps', array(
81
+ 'wp-blocks',
82
+ 'wp-element',
83
+ 'yith-js-md5'
84
+ ) );
85
+ wp_register_script( 'yith-js-md5', YIT_CORE_PLUGIN_URL . '/assets/js/javascript-md5/md5.min.js', array(), '2.10.0', true );
86
+ wp_enqueue_script( 'yith-gutenberg', YIT_CORE_PLUGIN_URL . '/assets/js/yith-gutenberg' . $suffix . '.js', $deps, yith_plugin_fw_get_version(), true );
87
+ wp_localize_script( 'yith-gutenberg', 'yith_gutenberg', $this->_blocks_args );
88
+ wp_localize_script( 'yith-gutenberg', 'yith_gutenberg_ajax', array( 'ajaxurl' => $ajax_url ) );
89
+ }
90
+
91
+ /**
92
+ * Add blocks to gutenberg editor
93
+ *
94
+ * @return void
95
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
96
+ */
97
+ public function register_blocks(){
98
+ $block_args = array();
99
+ foreach ( $this->_to_register_blocks as $block => $args ){
100
+ if( isset( $args['style'] ) ){
101
+ $block_args['style'] = $args['style'];
102
+ }
103
+
104
+ if( isset( $args['script'] ) ){
105
+ $block_args['script'] = $args['script'];
106
+ }
107
+
108
+ if( register_block_type( "yith/{$block}", $block_args ) ){
109
+ $this->_registered_blocks[] = $block;
110
+ }
111
+ }
112
+
113
+ if( ! empty( $this->_registered_blocks ) ){
114
+ add_filter( 'block_categories', array( $this, 'block_category' ), 10, 2 );
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Add block category
120
+ *
121
+ * @param $categories array block categories array
122
+ * @param $post WP_Post current post
123
+ *
124
+ * @return array block categories
125
+ *
126
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
127
+ */
128
+ public function block_category( $categories, $post ){
129
+ return array_merge(
130
+ $categories,
131
+ array(
132
+ array(
133
+ 'slug' => 'yith-blocks',
134
+ 'title' => _x( 'YITH', '[gutenberg]: Category Name', 'yith-plugin-fw' ),
135
+ ),
136
+ )
137
+ );
138
+ }
139
+
140
+ /**
141
+ * Add new blocks to Gutenberg
142
+ *
143
+ * @param $blocks string|array new blocks
144
+ * @return bool true if add a new blocks, false otherwise
145
+ *
146
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
147
+ */
148
+ public function add_blocks( $blocks ){
149
+ $added = false;
150
+ if( ! empty( $blocks ) ){
151
+ $added = true;
152
+ if( is_array( $blocks ) ){
153
+ $this->_to_register_blocks = array_merge( $this->_to_register_blocks, $blocks );
154
+ }
155
+
156
+ else {
157
+ $this->_to_register_blocks[] = $blocks;
158
+ }
159
+ }
160
+
161
+ return $added;
162
+ }
163
+
164
+ /**
165
+ * Return an array with the registered blocks
166
+ *
167
+ * @return array
168
+ */
169
+ public function get_registered_blocks(){
170
+ return $this->_registered_blocks;
171
+ }
172
+
173
+ /**
174
+ * Return an array with the blocks to register
175
+ *
176
+ * @return array
177
+ */
178
+ public function get_to_register_blocks(){
179
+ return $this->_to_register_blocks;
180
+ }
181
+
182
+ /**
183
+ * Return an array with the block(s) arguments
184
+ *
185
+ * @return array
186
+ */
187
+ public function get_block_args( $block = 'all' ){
188
+ if( 'all' == $block ){
189
+ return $this->_blocks_args;
190
+ }
191
+
192
+ elseif( isset( $this->_blocks_args[ $block ] ) ){
193
+ return $this->_blocks_args[ $block ];
194
+ }
195
+
196
+ return false;
197
+ }
198
+
199
+ /**
200
+ * @return string Default block cateogyr slug
201
+ */
202
+ public function get_default_blocks_category_slug(){
203
+ return $this->_category_slug;
204
+ }
205
+
206
+ /**
207
+ * Set the block arguments
208
+ *
209
+ * @param $args array The block argument
210
+ */
211
+ public function set_block_args( $args ){
212
+ foreach( $args as $block => $block_args ){
213
+
214
+ /* === Add Default Keywords === */
215
+ $default_keywords = array( 'yith' );
216
+ if( ! empty( $block_args['shortcode_name'] ) ){
217
+ $default_keywords[] = $block_args['shortcode_name'];
218
+ }
219
+
220
+ $args[ $block ]['keywords'] = ! empty( $args[ $block ]['keywords'] ) ? array_merge( $args[ $block ]['keywords'], $default_keywords ) : $default_keywords;
221
+
222
+ if( count( $args[ $block ]['keywords'] ) > 3 ){
223
+ $args[ $block ]['keywords'] = array_slice($args[ $block ]['keywords'], 0, 3);
224
+ }
225
+
226
+ if( empty( $block_args['category'] ) ){
227
+ //Add YITH block category
228
+ $args[ $block ]['category'] = $this->get_default_blocks_category_slug();
229
+ }
230
+
231
+ if( isset( $block_args['attributes'] ) ){
232
+ foreach( $block_args['attributes'] as $attr_name => $attributes ){
233
+ // Set the do_shortcode args
234
+ if( ! empty( $attributes['do_shortcode'] ) ){
235
+ $args[ $block ]['attributes'][ $attr_name ] = true;
236
+ }
237
+
238
+ if( ! empty( $attributes['options'] ) && is_array( $attributes['options'] ) ){
239
+ $options = array();
240
+ foreach( $attributes['options'] AS $v => $l ){
241
+ //Prepare options array for react component
242
+ $options[] = array(
243
+ 'label' => $l,
244
+ 'value' => $v,
245
+ );
246
+ }
247
+ $args[ $block ]['attributes'][ $attr_name ]['options'] = $options;
248
+ }
249
+
250
+ if( empty( $attributes['remove_quotes'] ) ){
251
+ $args[ $block ]['attributes'][ $attr_name ]['remove_quotes'] = false;
252
+ }
253
+
254
+ /* === Special Requirements for Block Type === */
255
+ if( ! empty( $attributes['type'] ) ) {
256
+ $args[ $block ]['attributes'][ $attr_name ]['blocktype'] = $attributes['type'];
257
+ $args[ $block ]['attributes'][ $attr_name ]['type'] = 'string';
258
+
259
+ switch( $attributes['type'] ){
260
+ case 'select':
261
+ //Add default value for multiple
262
+ if( ! isset( $attributes['multiple'] ) ) {
263
+ $args[ $block ]['attributes'][ $attr_name ]['multiple'] = false;
264
+ }
265
+
266
+ if( ! empty( $attributes['multiple'] ) ){
267
+ $args[ $block ]['attributes'][ $attr_name ]['type'] = 'array';
268
+ }
269
+ break;
270
+
271
+ case 'color':
272
+ case 'colorpicker':
273
+ if( ! isset( $attributes['disableAlpha'] ) ){
274
+ //Disable alpha gradient for color picker
275
+ $args[ $block ]['attributes'][ $attr_name ]['disableAlpha'] = true;
276
+ }
277
+ break;
278
+
279
+ case 'number':
280
+ $args[ $block ]['attributes'][ $attr_name ]['type'] = 'integer';
281
+ break;
282
+
283
+ case 'toggle':
284
+ case 'checkbox':
285
+ $args[ $block ]['attributes'][ $attr_name ]['type'] = 'boolean';
286
+ break;
287
+ }
288
+ }
289
+ }
290
+ }
291
+ }
292
+
293
+ $this->_blocks_args = array_merge( $this->_blocks_args, $args );
294
+ }
295
+
296
+ /**
297
+ * Get a do_shortcode in ajax call to show block preview
298
+ *
299
+ * @param $args array The block argument
300
+ */
301
+ public function do_shortcode(){
302
+ $current_action = current_action();
303
+ $sc = ! empty( $_POST['shortcode'] ) ? $_POST['shortcode'] : '';
304
+
305
+ if( ! apply_filters( 'yith_plugin_fw_gutenberg_skip_shortcode_sanitize', false ) ){
306
+ $sc = sanitize_text_field( stripslashes( $sc ) );
307
+ }
308
+
309
+ do_action( 'yith_plugin_fw_gutenberg_before_do_shortcode', $sc, $current_action );
310
+ echo do_shortcode( apply_filters( 'yith_plugin_fw_gutenberg_shortcode', $sc, $current_action ) );
311
+ do_action( 'yith_plugin_fw_gutenberg_after_do_shortcode', $sc, $current_action );
312
+
313
+ if( is_ajax() ){
314
+ die();
315
+ }
316
+ }
317
+ }
318
+ }
319
+
320
+ if ( ! function_exists( 'YITH_Gutenberg' ) ) {
321
+ /**
322
+ * Main instance of plugin
323
+ *
324
+ * @return YITH_Gutenberg
325
+ * @since 1.0
326
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
327
+ */
328
+ function YITH_Gutenberg() {
329
+ return YITH_Gutenberg::instance();
330
+ }
331
+ }
332
+
333
YITH_Gutenberg();
plugin-fw/licence/assets/css/yit-licence.css CHANGED
@@ -134,13 +134,17 @@
134
}
135
136
.yit-container.product-licence-activation .licence-check-section{
137
- margin-bottom: 60px;
138
}
139
140
.yit-container.product-licence-activation span.licence-label {
141
font-weight: 500;
142
color: #606060;
143
- margin-bottom: 30px;
144
}
145
146
.yit-container.product-licence-activation .button-licence {
@@ -214,6 +218,11 @@
214
border-right: 1px solid #dcdcdc;
215
}
216
217
.yit-container.product-licence-activation table td:last-child,
218
.yit-container.product-licence-activation table th:last-child {
219
border-right: 0;
@@ -354,12 +363,23 @@
354
margin-left: 0;
355
visibility: hidden;
356
min-height: 38px;
357
}
358
359
#yith-licence-notice.visible {
360
visibility: visible;
361
}
362
363
/* === Responsive === */
364
365
@media (max-width: 767px) {
134
}
135
136
.yit-container.product-licence-activation .licence-check-section{
137
+ margin-bottom: 20px;
138
+ margin-top: 20px;
139
+ background-color: #ffffff;
140
+ padding: 10px;
141
+ max-width: 670px;
142
}
143
144
.yit-container.product-licence-activation span.licence-label {
145
font-weight: 500;
146
color: #606060;
147
+ margin-bottom: 20px;
148
}
149
150
.yit-container.product-licence-activation .button-licence {
218
border-right: 1px solid #dcdcdc;
219
}
220
221
+ .yit-container.product-licence-activation table:not(.to-active-table) th{
222
+ color: #808a97;
223
+ font-weight: bold;
224
+ }
225
+
226
.yit-container.product-licence-activation table td:last-child,
227
.yit-container.product-licence-activation table th:last-child {
228
border-right: 0;
363
margin-left: 0;
364
visibility: hidden;
365
min-height: 38px;
366
+ max-width: 660px;
367
}
368
369
#yith-licence-notice.visible {
370
visibility: visible;
371
}
372
373
+ #yith-licence-issue-how-to{
374
+ margin: 20px 10px 20px 0;
375
+ font-weight: 500;
376
+ color: #606060;
377
+ }
378
+
379
+ #yith-licence-actions span.dashicons{
380
+ line-height: 60px;
381
+ }
382
+
383
/* === Responsive === */
384
385
@media (max-width: 767px) {
plugin-fw/licence/lib/yit-licence.php CHANGED
@@ -87,15 +87,9 @@ if ( !class_exists( 'YIT_Licence' ) ) {
87
//show extra info and renew button in debug mode
88
$this->show_extra_info = $this->show_renew_button = true;
89
} else {
90
- $this->show_extra_info = defined( 'YIT_SHOW_EXTRA_LICENCE_INFO' ) && YIT_SHOW_EXTRA_LICENCE_INFO;
91
$this->show_renew_button = !( defined( 'YIT_HIDE_LICENCE_RENEW_BUTTON' ) && YIT_HIDE_LICENCE_RENEW_BUTTON );
92
}
93
-
94
- /* Update Licence Information */
95
- //@TODO: Removed for performance
96
- // add_action( 'core_upgrade_preamble', array( $this, 'check_all' ) );
97
- // add_action( 'wp_maybe_auto_update', array( $this, 'check_all' ) );
98
-
99
}
100
101
/**
@@ -258,7 +252,7 @@ if ( !class_exists( 'YIT_Licence' ) ) {
258
update_option( $this->_licence_option, $options );
259
260
/* === Update Plugin Licence Information === */
261
- YIT_Upgrade()->force_regenerate_update_transient();
262
263
/* === Licence Activation Template === */
264
$body[ 'template' ] = $this->show_activation_panel( $this->get_response_code_message( 200 ) );
@@ -328,7 +322,7 @@ if ( !class_exists( 'YIT_Licence' ) ) {
328
$options[ $product[ 'product_id' ] ] = $option[ $product[ 'product_id' ] ];
329
330
/* === Update Plugin Licence Information === */
331
- YIT_Upgrade()->force_regenerate_update_transient();
332
333
update_option( $this->_licence_option, $options );
334
@@ -493,7 +487,7 @@ if ( !class_exists( 'YIT_Licence' ) ) {
493
494
/* === Update Plugin Licence Information === */
495
if ( $regenerate_transient ) {
496
- YIT_Upgrade()->force_regenerate_update_transient();
497
}
498
}
499
@@ -531,7 +525,7 @@ if ( !class_exists( 'YIT_Licence' ) ) {
531
$this->check_all();
532
533
/* === Regenerate Update Plugins Transient === */
534
- YIT_Upgrade()->force_regenerate_update_transient();
535
536
do_action( 'yit_licence_after_check' );
537
@@ -743,7 +737,7 @@ if ( !class_exists( 'YIT_Licence' ) ) {
743
'107' => __( 'License key has been banned', 'yith-plugin-fw' ),
744
'108' => __( 'Current product is not included in your YITH Club Subscription key', 'yith-plugin-fw' ),
745
'200' => sprintf( '<strong>%s</strong>! %s', __( 'Great', 'yith-plugin-fw' ), __( 'License successfully activated', 'yith-plugin-fw' ) ),
746
- 'deactivated' => sprintf( '%s <strong>%s</strong>', __( 'License key deactivated for website', 'woocommerce-software-add-on' ), isset( $instance ) ? $instance : '' )
747
);
748
749
return isset( $messages[ $code ] ) ? $messages[ $code ] : false;
87
//show extra info and renew button in debug mode
88
$this->show_extra_info = $this->show_renew_button = true;
89
} else {
90
+ $this->show_extra_info = ( defined( 'YIT_SHOW_EXTRA_LICENCE_INFO' ) && YIT_SHOW_EXTRA_LICENCE_INFO ) || ( ! empty( $_GET['yith_show_extra_license_info'] ) && 'yes' == $_GET['yith_show_extra_license_info'] );
91
$this->show_renew_button = !( defined( 'YIT_HIDE_LICENCE_RENEW_BUTTON' ) && YIT_HIDE_LICENCE_RENEW_BUTTON );
92
}
93
}
94
95
/**
252
update_option( $this->_licence_option, $options );
253
254
/* === Update Plugin Licence Information === */
255
+ yith_plugin_fw_force_regenerate_plugin_update_transient();
256
257
/* === Licence Activation Template === */
258
$body[ 'template' ] = $this->show_activation_panel( $this->get_response_code_message( 200 ) );
322
$options[ $product[ 'product_id' ] ] = $option[ $product[ 'product_id' ] ];
323
324
/* === Update Plugin Licence Information === */
325
+ yith_plugin_fw_force_regenerate_plugin_update_transient();
326
327
update_option( $this->_licence_option, $options );
328
487
488
/* === Update Plugin Licence Information === */
489
if ( $regenerate_transient ) {
490
+ yith_plugin_fw_force_regenerate_plugin_update_transient();
491
}
492
}
493
525
$this->check_all();
526
527
/* === Regenerate Update Plugins Transient === */
528
+ yith_plugin_fw_force_regenerate_plugin_update_transient();
529
530
do_action( 'yit_licence_after_check' );
531
737
'107' => __( 'License key has been banned', 'yith-plugin-fw' ),
738
'108' => __( 'Current product is not included in your YITH Club Subscription key', 'yith-plugin-fw' ),
739
'200' => sprintf( '<strong>%s</strong>! %s', __( 'Great', 'yith-plugin-fw' ), __( 'License successfully activated', 'yith-plugin-fw' ) ),
740
+ 'deactivated' => sprintf( '%s <strong>%s</strong>', __( 'License key deactivated for website', 'yith-plugin-fw' ), isset( $instance ) ? $instance : '' )
741
);
742
743
return isset( $messages[ $code ] ) ? $messages[ $code ] : false;
plugin-fw/licence/lib/yit-plugin-licence.php CHANGED
@@ -74,7 +74,7 @@ if ( !class_exists( 'YIT_Plugin_Licence' ) ) {
74
add_action( "wp_ajax_yith_activate-{$this->_product_type}", array( $this, 'activate' ) );
75
add_action( "wp_ajax_yith_deactivate-{$this->_product_type}", array( $this, 'deactivate' ) );
76
add_action( "wp_ajax_yith_update_licence_information-{$this->_product_type}", array( $this, 'update_licence_information' ) );
77
- add_action( 'yit_licence_after_check', array( $this, 'licence_after_check' ) );
78
79
/** @since 3.0.0 */
80
if( version_compare( PHP_VERSION, '7.0', '>=' ) ) {
@@ -148,11 +148,6 @@ if ( !class_exists( 'YIT_Plugin_Licence' ) ) {
148
}
149
}
150
151
- public function licence_after_check() {
152
- /* === Regenerate Update Plugins Transient === */
153
- YIT_Upgrade()->force_regenerate_update_transient();
154
- }
155
-
156
/**
157
* Main plugin Instance
158
*
74
add_action( "wp_ajax_yith_activate-{$this->_product_type}", array( $this, 'activate' ) );
75
add_action( "wp_ajax_yith_deactivate-{$this->_product_type}", array( $this, 'deactivate' ) );
76
add_action( "wp_ajax_yith_update_licence_information-{$this->_product_type}", array( $this, 'update_licence_information' ) );
77
+ add_action( 'yit_licence_after_check', 'yith_plugin_fw_force_regenerate_plugin_update_transient' );
78
79
/** @since 3.0.0 */
80
if( version_compare( PHP_VERSION, '7.0', '>=' ) ) {
148
}
149
}
150
151
/**
152
* Main plugin Instance
153
*
plugin-fw/licence/templates/panel/activation/activation-panel.php CHANGED
@@ -22,15 +22,19 @@ $debug = isset( $_REQUEST[ 'yith-license-debug' ] ) ? $_
22
23
<div class="yit-container product-licence-activation">
24
<h2><?php _e( 'YITH License Activation', 'yith-plugin-fw' ) ?></h2>
25
-
26
<div class="licence-check-section">
27
<form method="post" id="licence-check-update" action="<?php echo admin_url( 'admin-ajax.php' ) ?>">
28
- <span class="licence-label" style="display: block;"><?php _e( 'Have you updated your licenses? Have you asked for an extension? Update information concerning your products.', 'yith-plugin-fw' ); ?></span>
29
<input type="hidden" name="action" value="yith_update_licence_information-<?php echo $this->get_product_type(); ?>"/>
30
- <input type="submit" name="submit" value="<?php _e( 'Update license information', 'yith-plugin-fw' ) ?>" class="button-licence licence-check"/>
31
<div class="spinner"></div>
32
</form>
33
</div>
34
35
<div id="yith-licence-notice" class="<?php echo $notice_class ?>">
36
<p class="yith-licence-notice-message"><?php echo $notice ?></p>
@@ -43,6 +47,7 @@ $debug = isset( $_REQUEST[ 'yith-license-debug' ] ) ? $_
43
<?php echo _n( 'Product to activate', 'Products to activate', $to_activate_check, 'yith-plugin-fw' ) ?>
44
<span class="spinner"></span>
45
</h3>
46
<div class="to-active-wrapper">
47
<?php foreach ( $to_active_products as $init => $info ) : ?>
48
<form class="to-active-form" method="post" id="<?php echo $info[ 'product_id' ] ?>" action="<?php echo admin_url( 'admin-ajax.php' ) ?>">
@@ -102,7 +107,7 @@ $debug = isset( $_REQUEST[ 'yith-license-debug' ] ) ? $_
102
<?php endif; ?>
103
<?php endif; ?>
104
105
- <th><?php _e( 'License Actions', 'yith-plugin-fw' ) ?></th>
106
</tr>
107
</thead>
108
<tbody>
22
23
<div class="yit-container product-licence-activation">
24
<h2><?php _e( 'YITH License Activation', 'yith-plugin-fw' ) ?></h2>
25
+ <?php if ( !empty( $activated_products ) ) : ?>
26
<div class="licence-check-section">
27
+ <h3><?php _e( 'License expiry date', 'yith-plugin-fw' ); ?></h3>
28
<form method="post" id="licence-check-update" action="<?php echo admin_url( 'admin-ajax.php' ) ?>">
29
+ <span class="licence-label" style="display: block;">
30
+ <?php _e( 'If you have renewed your product license key and the expiry date does not appear up-to-date, please, click on the button <em>Check Expiry Date</em> below and it will update.', 'yith-plugin-fw' ); ?>
31
+ </span>
32
<input type="hidden" name="action" value="yith_update_licence_information-<?php echo $this->get_product_type(); ?>"/>
33
+ <input type="submit" name="submit" value="<?php _e( 'Check expiry date', 'yith-plugin-fw' ) ?>" class="button-licence licence-check"/>
34
<div class="spinner"></div>
35
</form>
36
</div>
37
+ <?php endif; ?>
38
39
<div id="yith-licence-notice" class="<?php echo $notice_class ?>">
40
<p class="yith-licence-notice-message"><?php echo $notice ?></p>
47
<?php echo _n( 'Product to activate', 'Products to activate', $to_activate_check, 'yith-plugin-fw' ) ?>
48
<span class="spinner"></span>
49
</h3>
50
+ <p id="yith-licence-issue-how-to"><?php printf( '%s <a href="%s" target="_blank">%s</a>.', __( 'Are you having issues with the license activation?', 'yith-plugin-fw' ), '//support.yithemes.com/hc/en-us/articles/360012568594-License-activation-issues', __( 'Read this article', '[Part of]: Are you having issues with the license activation? Read this article', 'yith-plugin-fw' ) )?></p>
51
<div class="to-active-wrapper">
52
<?php foreach ( $to_active_products as $init => $info ) : ?>
53
<form class="to-active-form" method="post" id="<?php echo $info[ 'product_id' ] ?>" action="<?php echo admin_url( 'admin-ajax.php' ) ?>">
107
<?php endif; ?>
108
<?php endif; ?>
109
110
+ <th id="yith-licence-actions"><span class="dashicons dashicons-admin-generic"></span></th>
111
</tr>
112
</thead>
113
<tbody>
plugin-fw/templates/metaboxes/tab.php CHANGED
@@ -20,11 +20,11 @@ do_action( 'yit_before_metaboxes_tab' ) ?>
20
<ul class="metaboxes-tabs clearfix"<?php if ( count( $tabs ) <= 1 ) : ?> style="display:none;"<?php endif; ?>>
21
<?php
22
$i = 0;
23
- foreach ( $tabs as $tab ) :
24
if ( !isset( $tab[ 'fields' ] ) || empty( $tab[ 'fields' ] ) ) {
25
continue;
26
}
27
- $anchor_id = 'yith-plugin-fw-metabox-tab-' . urldecode( sanitize_title( $tab[ 'label' ] ) ) . '-anchor';
28
29
// parse deps for the tab visibility
30
if ( isset( $tab[ 'deps' ] ) ) {
@@ -38,30 +38,30 @@ do_action( 'yit_before_metaboxes_tab' ) ?>
38
}
39
?>
40
<li id="<?php echo $anchor_id ?>" <?php if ( !$i ) : ?>class="tabs"<?php endif ?> <?php echo yith_field_deps_data( $tab ); ?>>
41
- <a href="#<?php echo urldecode( sanitize_title( $tab[ 'label' ] ) ) ?>"><?php echo $tab[ 'label' ] ?></a></li><?php
42
$i++;
43
endforeach;
44
?>
45
</ul>
46
<?php do_action( 'yit_after_metaboxes_labels' ) ?>
47
<?php if ( isset( $tab[ 'label' ] ) ) : ?>
48
- <?php do_action( 'yit_before_metabox_option_' . urldecode( sanitize_title( $tab[ 'label' ] ) ) ); ?>
49
<?php endif ?>
50
51
<?php
52
// Use nonce for verification
53
wp_nonce_field( 'metaboxes-fields-nonce', 'yit_metaboxes_nonce' );
54
?>
55
- <?php foreach ( $tabs as $tab ) :
56
57
?>
58
- <div class="tabs-panel" id="<?php echo urldecode( sanitize_title( $tab[ 'label' ] ) ) ?>">
59
<?php
60
if ( !isset( $tab[ 'fields' ] ) ) {
61
continue;
62
}
63
64
- $tab[ 'fields' ] = apply_filters( 'yit_metabox_' . sanitize_title( $tab[ 'label' ] ) . '_tab_fields', $tab[ 'fields' ] );
65
66
foreach ( $tab[ 'fields' ] as $id_tab => $field ) :
67
$field_name = $field[ 'name' ];
20
<ul class="metaboxes-tabs clearfix"<?php if ( count( $tabs ) <= 1 ) : ?> style="display:none;"<?php endif; ?>>
21
<?php
22
$i = 0;
23
+ foreach ( $tabs as $key=>$tab ) :
24
if ( !isset( $tab[ 'fields' ] ) || empty( $tab[ 'fields' ] ) ) {
25
continue;
26
}
27
+ $anchor_id = 'yith-plugin-fw-metabox-tab-' . urldecode( $key ) . '-anchor';
28
29
// parse deps for the tab visibility
30
if ( isset( $tab[ 'deps' ] ) ) {
38
}
39
?>
40
<li id="<?php echo $anchor_id ?>" <?php if ( !$i ) : ?>class="tabs"<?php endif ?> <?php echo yith_field_deps_data( $tab ); ?>>
41
+ <a href="#<?php echo urldecode( $key ) ?>"><?php echo $tab[ 'label' ] ?></a></li><?php
42
$i++;
43
endforeach;
44
?>
45
</ul>
46
<?php do_action( 'yit_after_metaboxes_labels' ) ?>
47
<?php if ( isset( $tab[ 'label' ] ) ) : ?>
48
+ <?php do_action( 'yit_before_metabox_option_' . urldecode( $key ) ); ?>
49
<?php endif ?>
50
51
<?php
52
// Use nonce for verification
53
wp_nonce_field( 'metaboxes-fields-nonce', 'yit_metaboxes_nonce' );
54
?>
55
+ <?php foreach ( $tabs as $key=> $tab ) :
56
57
?>
58
+ <div class="tabs-panel" id="<?php echo urldecode( $key ) ?>">
59
<?php
60
if ( !isset( $tab[ 'fields' ] ) ) {
61
continue;
62
}
63
64
+ $tab[ 'fields' ] = apply_filters( 'yit_metabox_' . $key . '_tab_fields', $tab[ 'fields' ] );
65
66
foreach ( $tab[ 'fields' ] as $id_tab => $field ) :
67
$field_name = $field[ 'name' ];
plugin-fw/templates/panel/woocommerce/woocommerce-option-row.php CHANGED
@@ -13,8 +13,11 @@ $field = wp_parse_args( $field, $default_field );
13
$display_row = !in_array( $field[ 'type' ], array( 'hidden', 'html', 'sep', 'simple-text', 'title' ) );
14
$display_row = isset( $field[ 'yith-display-row' ] ) ? !!$field[ 'yith-display-row' ] : $display_row;
15
16
?>
17
- <tr valign="top" class="yith-plugin-fw-panel-wc-row <?php echo $field[ 'type' ] ?>" <?php echo yith_field_deps_data( $field ) ?>>
18
<?php if ( $display_row ) : ?>
19
<th scope="row" class="titledesc">
20
<label for="<?php echo esc_attr( $field[ 'id' ] ); ?>"><?php echo esc_html( $field[ 'title' ] ); ?></label>
13
$display_row = !in_array( $field[ 'type' ], array( 'hidden', 'html', 'sep', 'simple-text', 'title' ) );
14
$display_row = isset( $field[ 'yith-display-row' ] ) ? !!$field[ 'yith-display-row' ] : $display_row;
15
16
+ $extra_row_classes = apply_filters( 'yith_plugin_fw_panel_wc_extra_row_classes', array(), $field );
17
+ $extra_row_classes = is_array( $extra_row_classes ) ? implode( ' ', $extra_row_classes ) : '';
18
+
19
?>
20
+ <tr valign="top" class="yith-plugin-fw-panel-wc-row <?php echo $field[ 'type' ] ?> <?php echo $extra_row_classes ?>" <?php echo yith_field_deps_data( $field ) ?>>
21
<?php if ( $display_row ) : ?>
22
<th scope="row" class="titledesc">
23
<label for="<?php echo esc_attr( $field[ 'id' ] ); ?>"><?php echo esc_html( $field[ 'title' ] ); ?></label>
plugin-fw/yit-functions.php CHANGED
@@ -401,7 +401,6 @@ if ( !function_exists( 'yit_string' ) ) {
401
}
402
}
403
404
-
405
if ( !function_exists( 'yit_pagination' ) ) {
406
/**
407
* Print pagination
@@ -598,7 +597,6 @@ if ( !function_exists( 'yit_get_excluded_categories' ) ) {
598
}
599
}
600
601
-
602
if ( !function_exists( 'yit_add_extra_theme_headers' ) ) {
603
add_filter( 'extra_theme_headers', 'yit_add_extra_theme_headers' );
604
@@ -891,7 +889,6 @@ if ( !function_exists( 'yit_wpml_object_id' ) ) {
891
892
}
893
894
-
895
if ( !function_exists( 'yith_get_formatted_price' ) ) {
896
/**
897
* Format the price with a currency symbol.
@@ -1062,6 +1059,7 @@ if ( !function_exists( 'yith_plugin_fw_html_data_to_string' ) ) {
1062
return $html_data;
1063
}
1064
}
1065
if ( !function_exists( 'yith_plugin_fw_get_icon' ) ) {
1066
function yith_plugin_fw_get_icon( $icon = '', $args = array() ) {
1067
return YIT_Icons()->get_icon( $icon, $args );
@@ -1070,11 +1068,10 @@ if ( !function_exists( 'yith_plugin_fw_get_icon' ) ) {
1070
1071
if ( !function_exists( 'yith_plugin_fw_is_true' ) ) {
1072
function yith_plugin_fw_is_true( $value ) {
1073
- return true === $value || 1 === $value || '1' === $value || 'yes' === $value;
1074
}
1075
}
1076
1077
-
1078
if ( !function_exists( 'yith_plugin_fw_enqueue_enhanced_select' ) ) {
1079
function yith_plugin_fw_enqueue_enhanced_select() {
1080
wp_enqueue_script( 'yith-enhanced-select' );
@@ -1162,6 +1159,21 @@ if ( !function_exists( 'yith_plugin_fw_is_panel' ) ) {
1162
}
1163
}
1164
1165
/* === Gutenberg Support === */
1166
1167
if( ! function_exists( 'yith_plugin_fw_is_gutenberg_enabled' ) ){
@@ -1170,7 +1182,7 @@ if( ! function_exists( 'yith_plugin_fw_is_gutenberg_enabled' ) ){
1170
}
1171
}
1172
1173
- if( ! function_exists( 'yith_plugin_fw_gutenberg_add_block' ) ){
1174
/**
1175
* Add new blocks to Gutenberg
1176
*
401
}
402
}
403
404
if ( !function_exists( 'yit_pagination' ) ) {
405
/**
406
* Print pagination
597
}
598
}
599
600
if ( !function_exists( 'yit_add_extra_theme_headers' ) ) {
601
add_filter( 'extra_theme_headers', 'yit_add_extra_theme_headers' );
602
889
890
}
891
892
if ( !function_exists( 'yith_get_formatted_price' ) ) {
893
/**
894
* Format the price with a currency symbol.
1059
return $html_data;
1060
}
1061
}
1062
+
1063
if ( !function_exists( 'yith_plugin_fw_get_icon' ) ) {
1064
function yith_plugin_fw_get_icon( $icon = '', $args = array() ) {
1065
return YIT_Icons()->get_icon( $icon, $args );
1068
1069
if ( !function_exists( 'yith_plugin_fw_is_true' ) ) {
1070
function yith_plugin_fw_is_true( $value ) {
1071
+ return true === $value || 1 === $value || '1' === $value || 'yes' === $value || 'true' === $value;
1072
}
1073
}
1074
1075
if ( !function_exists( 'yith_plugin_fw_enqueue_enhanced_select' ) ) {
1076
function yith_plugin_fw_enqueue_enhanced_select() {
1077
wp_enqueue_script( 'yith-enhanced-select' );
1159
}
1160
}
1161
1162
+ if( ! function_exists( 'yith_plugin_fw_force_regenerate_plugin_update_transient' ) ){
1163
+ /**
1164
+ * Delete the update plugins transient
1165
+ *
1166
+ * @return void
1167
+ *
1168
+ * @since 1.0
1169
+ * @see update_plugins transient and pre_set_site_transient_update_plugins hooks
1170
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
1171
+ */
1172
+ function yith_plugin_fw_force_regenerate_plugin_update_transient() {
1173
+ delete_site_transient( 'update_plugins' );
1174
+ }
1175
+ }
1176
+
1177
/* === Gutenberg Support === */
1178
1179
if( ! function_exists( 'yith_plugin_fw_is_gutenberg_enabled' ) ){
1182
}
1183
}
1184
1185
+ if( ! function_exists( 'yith_plugin_fw_gutenberg_add_blocks' ) ){
1186
/**
1187
* Add new blocks to Gutenberg
1188
*
plugin-fw/yit-plugin.php CHANGED
@@ -37,6 +37,7 @@ include_once( 'lib/yit-pointers.php');
37
include_once( 'lib/yit-icons.php');
38
include_once( 'lib/yit-assets.php');
39
include_once( 'lib/yit-debug.php');
40
include_once( 'lib/privacy/yit-privacy.php' );
41
include_once( 'lib/privacy/yit-privacy-plugin-abstract.php' );
42
include_once( 'lib/promo/yith-promo.php' );
37
include_once( 'lib/yit-icons.php');
38
include_once( 'lib/yit-assets.php');
39
include_once( 'lib/yit-debug.php');
40
+ include_once( 'lib/yith-dashboard.php' );
41
include_once( 'lib/privacy/yit-privacy.php' );
42
include_once( 'lib/privacy/yit-privacy-plugin-abstract.php' );
43
include_once( 'lib/promo/yith-promo.php' );