YITH WooCommerce Catalog Mode - Version 1.6.0

Version Description

Last Stable Tag 1.6.0

Download this release

Release Info

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

Code changes from version 1.5.9 to 1.6.0

init.php CHANGED
@@ -5,10 +5,10 @@
5
  * Description: YITH WooCommerce Catalog Mode allows you to disable shop functions.
6
  * Author: YITHEMES
7
  * Text Domain: yith-woocommerce-catalog-mode
8
- * Version: 1.5.9
9
  * Author URI: http://yithemes.com/
10
- * WC requires at least: 3.0.0
11
- * WC tested up to: 3.3.0 RC2
12
  */
13
 
14
  if ( ! defined( 'ABSPATH' ) ) {
@@ -36,7 +36,7 @@ function ywctm_install_free_admin_notice() {
36
  }
37
 
38
  if ( ! defined( 'YWCTM_VERSION' ) ) {
39
- define( 'YWCTM_VERSION', '1.5.9' );
40
  }
41
 
42
  if ( ! defined( 'YWCTM_FREE_INIT' ) ) {
5
  * Description: YITH WooCommerce Catalog Mode allows you to disable shop functions.
6
  * Author: YITHEMES
7
  * Text Domain: yith-woocommerce-catalog-mode
8
+ * Version: 1.6.0
9
  * Author URI: http://yithemes.com/
10
+ * WC requires at least: 3.2.0
11
+ * WC tested up to: 3.4.x
12
  */
13
 
14
  if ( ! defined( 'ABSPATH' ) ) {
36
  }
37
 
38
  if ( ! defined( 'YWCTM_VERSION' ) ) {
39
+ define( 'YWCTM_VERSION', '1.6.0' );
40
  }
41
 
42
  if ( ! defined( 'YWCTM_FREE_INIT' ) ) {
plugin-fw/assets/css/yit-plugin-panel.css CHANGED
@@ -46,72 +46,8 @@
46
  }
47
 
48
  #plugin-fw-wc h3, #yith-plugin-fw-panel h3 {
49
- padding : 0px 10px 10px;
50
- border-bottom : 1px solid #eee;
51
- }
52
-
53
- /* === VIDEO BOX === */
54
- .yith-videobox-wrapper {
55
- padding-top : 20px;
56
- }
57
-
58
- .yith-videobox-wrapper h3 {
59
- padding : 0px 10px 10px;
60
- border-bottom : 1px solid #eee;
61
- }
62
-
63
- .yith-videobox-wrapper .postbox {
64
- display : inline-block;
65
- }
66
-
67
- .yith-videobox-wrapper .yith_videobox .column {
68
- width : 45%;
69
- float : left;
70
- padding-right : 2.5%;
71
- border-right : 1px solid #ebebeb;
72
- padding-bottom : 2em;
73
- }
74
-
75
- .yith-videobox-wrapper .yith_videobox .column.two {
76
- margin-right : 0;
77
- padding-right : 0;
78
- padding-left : 2.5%;
79
- border : 0;
80
- max-width : 49%;
81
- }
82
-
83
- .yith-videobox-wrapper .yith_videobox h2 {
84
- font-size : 16px;
85
- margin-bottom : 20px;
86
- }
87
-
88
- .yith-videobox-wrapper .yith-video-link {
89
- width : 100%;
90
- max-width : 200px;
91
- float : left;
92
- margin : 0 1.5em 1.5em 0;
93
- }
94
-
95
- .yith-videobox-wrapper .yith-video-link {
96
- width : 100%;
97
- max-width : 200px;
98
- float : left;
99
- margin : 0 1.5em 1.5em 0;
100
- }
101
-
102
- .yith-videobox-wrapper .yith-image-frame img {
103
- max-width : 100%;
104
- height : auto;
105
- }
106
-
107
- .yith-videobox-wrapper .yith-video-link img {
108
- max-width : 100%;
109
- height : auto;
110
- }
111
-
112
- .yith-videobox-wrapper .yith-video-iframe {
113
- display : none;
114
-
115
  }
116
 
117
  /* === Plugins Upgrader === */
46
  }
47
 
48
  #plugin-fw-wc h3, #yith-plugin-fw-panel h3 {
49
+ padding : 0 0 0 10px;
50
+ margin : 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  }
52
 
53
  /* === Plugins Upgrader === */
plugin-fw/assets/css/yith-fields.css CHANGED
@@ -7,6 +7,11 @@
7
  clear : both;
8
  }
9
 
 
 
 
 
 
10
  .yith-disabled {
11
  opacity : 0.3;
12
  pointer-events : none;
@@ -32,8 +37,11 @@
32
 
33
  .yith-plugin-fw input[type=email],
34
  .yith-plugin-fw input[type=number],
35
- .yith-plugin-fw input[type=text]:not(.select2-search__field):not(.wp-color-picker),
36
  .yith-plugin-fw select,
 
 
 
37
  .woocommerce .yith-plugin-fw table.form-table select {
38
  width : 400px;
39
  max-width : 100%;
@@ -41,14 +49,29 @@
41
  padding : 5px;
42
  }
43
 
 
 
 
 
 
 
 
 
 
 
44
  .woocommerce .yith-plugin-fw table.form-table input[type=text].colorpick,
45
  .yith-plugin-fw input[type=text].colorpick {
46
- width : 6em;
 
 
 
47
  }
48
 
49
- .woocommerce .yith-plugin-fw input[type=text].select2-search__field {
50
- margin : 10px 0 0 2px;
51
- padding : 0;
 
 
52
  }
53
 
54
  .yith-plugin-fw textarea {
@@ -57,12 +80,6 @@
57
  padding : 5px;
58
  }
59
 
60
- .yith-plugin-fw input[type=email],
61
- .yith-plugin-fw input[type=number],
62
- .yith-plugin-fw input[type=text]:not(.select2-search__field) {
63
- padding : 5px 10px;
64
- }
65
-
66
  /* ------------- ICONS ------------- */
67
  .yit-icons-manager-wrapper {
68
  width : 100%;
@@ -175,6 +192,10 @@ ul.yit-icons-manager-list li.active {
175
  }
176
 
177
  /* ------- OnOff ------- */
 
 
 
 
178
  .yith-plugin-fw-onoff-container input {
179
  display : none;
180
  }
@@ -218,6 +239,15 @@ ul.yit-icons-manager-list li.active {
218
  max-height : 200px;
219
  }
220
 
 
 
 
 
 
 
 
 
 
221
  /* ------- Sidebar Layout ------- */
222
  .yith-plugin-fw-sidebar-layout input[type="radio"] {
223
  display : none;
@@ -324,7 +354,7 @@ ul.yit-icons-manager-list li.active {
324
  }
325
 
326
  .yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area,
327
- .woocommerce table.form-table .yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area{
328
  width : 100%;
329
  }
330
 
7
  clear : both;
8
  }
9
 
10
+ .yith-plugin-fw span.description.inline {
11
+ display : inline-block;
12
+ margin : 0 0 0 5px;
13
+ }
14
+
15
  .yith-disabled {
16
  opacity : 0.3;
17
  pointer-events : none;
37
 
38
  .yith-plugin-fw input[type=email],
39
  .yith-plugin-fw input[type=number],
40
+ .yith-plugin-fw input[type=text]:not(.select2-search__field),
41
  .yith-plugin-fw select,
42
+ .woocommerce .yith-plugin-fw table.form-table input[type=email],
43
+ .woocommerce .yith-plugin-fw table.form-table input[type=number],
44
+ .woocommerce .yith-plugin-fw table.form-table input[type=text]:not(.select2-search__field),
45
  .woocommerce .yith-plugin-fw table.form-table select {
46
  width : 400px;
47
  max-width : 100%;
49
  padding : 5px;
50
  }
51
 
52
+ .woocommerce .yith-plugin-fw table.form-table input[type=text].wp-color-picker,
53
+ .woocommerce .yith-plugin-fw table.form-table input[type=text].yith-plugin-fw-colorpicker,
54
+ .yith-plugin-fw input[type=text].wp-color-picker,
55
+ .yith-plugin-fw input[type=text].yith-plugin-fw-colorpicker {
56
+ width : 6em;
57
+ max-width : none;
58
+ height : auto;
59
+ padding : 3px 5px;
60
+ }
61
+
62
  .woocommerce .yith-plugin-fw table.form-table input[type=text].colorpick,
63
  .yith-plugin-fw input[type=text].colorpick {
64
+ width : 6em;
65
+ max-width : none;
66
+ height : auto;
67
+ padding : 6px;
68
  }
69
 
70
+ .yith-plugin-fw input.select2-search__field,
71
+ .yith-plugin-fw .select2-container .select2-search--inline .select2-search__field,
72
+ .woocommerce .yith-plugin-fw input.select2-search__field,
73
+ .woocommerce .yith-plugin-fw table.form-table input.select2-search__field {
74
+ padding : 3px;
75
  }
76
 
77
  .yith-plugin-fw textarea {
80
  padding : 5px;
81
  }
82
 
 
 
 
 
 
 
83
  /* ------------- ICONS ------------- */
84
  .yit-icons-manager-wrapper {
85
  width : 100%;
192
  }
193
 
194
  /* ------- OnOff ------- */
195
+ .yith-plugin-fw-onoff-container {
196
+ display : inline-block;
197
+ }
198
+
199
  .yith-plugin-fw-onoff-container input {
200
  display : none;
201
  }
239
  max-height : 200px;
240
  }
241
 
242
+ /* ------- Radio ------- */
243
+ .yith-plugin-fw-radio input[type=radio] {
244
+ margin : 0 3px 0 0;
245
+ }
246
+
247
+ .yith-plugin-fw-radio__row {
248
+ margin-bottom : 8px;
249
+ }
250
+
251
  /* ------- Sidebar Layout ------- */
252
  .yith-plugin-fw-sidebar-layout input[type="radio"] {
253
  display : none;
354
  }
355
 
356
  .yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area,
357
+ .woocommerce table.form-table .yith-plugin-fw-textarea-editor-field-wrapper textarea.wp-editor-area {
358
  width : 100%;
359
  }
360
 
plugin-fw/assets/js/multisite-updater.js CHANGED
@@ -6,18 +6,18 @@
6
  * It is also available through the world-wide-web at this URL:
7
  * http://www.gnu.org/licenses/gpl-3.0.txt
8
  */
9
- (function ($) {
10
 
11
- var plugins_menu_item = $( '#menu-plugins' ),
12
- update = plugins_menu_item.find('.update-plugins'),
13
- count = update.find(".update-count").text(),
14
- registered = plugins.registered,
15
- activated = plugins.activated;
16
 
17
- if( count == 0 || count == ''){
18
  var update_row = '<span class="update-plugins"><span class="plugin-count"></span></span>';
19
- count = 0;
20
- plugins_menu_item.find( '.wp-menu-name').append( update_row );
21
  }
22
 
23
  /**
@@ -38,51 +38,47 @@
38
  *
39
  * @return void
40
  */
41
- function update_plugins_row( registered, activated, count, localize ){
42
- for( var init in registered ){
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
 
50
- count = parseInt(count) + 1;
51
- $(".plugin-count").empty().html(count);
52
 
53
- var regex = new RegExp(' ', 'g'),
54
- info = plugin[headers],
55
- name = '' + info.Name,
56
- id = name.replace(regex, '-').trim(),
57
- row = '*[data-slug="' + id.toLowerCase() +'"]';
58
 
59
- $(row).addClass("update");
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" href="' + localize.details_url[init] + '">' + localize.strings.latest.replace( '%latest%', plugin[headers].Latest ) + '</a>';
65
 
66
- if( typeof activated[init] == "undefined" ) {
67
 
68
  html = html +
69
- ' <em>' + localize.strings.unavailable + '</em>' +
70
- localize.strings.activate.replace( '%activate_link%', localize.licence_activation_url ).replace( '%plugin_name%', name );
71
  } else {
72
  html = html +
73
- '. <a href="' + localize.update_url[init] + '">' + localize.strings.update_now + '</a>';
74
- }
75
-
76
- if( typeof localize.changelogs[init] != 'undefined' ){
77
- html = html + localize.changelogs[init];
78
  }
79
 
80
  html = html +
81
- '</div>' +
82
- '</td>' +
83
- '</tr>';
84
 
85
- $(html).insertAfter(row);
86
  }
87
  }
88
  }
@@ -96,7 +92,7 @@
96
  *
97
  * @see php.js library http://phpjs.org/
98
  */
99
- function version_compare(v1, v2, operator) {
100
  // discuss at: http://phpjs.org/functions/version_compare/
101
  // original by: Philippe Jausions (http://pear.php.net/user/jausions)
102
  // original by: Aidan Lister (http://aidanlister.com/)
@@ -113,21 +109,21 @@
113
  // example 4: version_compare('4.1.0.52','4.01.0.51');
114
  // returns 4: 1
115
 
116
- this.php_js = this.php_js || {};
117
  this.php_js.ENV = this.php_js.ENV || {};
118
  // END REDUNDANT
119
  // Important: compare must be initialized at 0.
120
- var i = 0,
121
- x = 0,
122
- compare = 0,
123
- // vm maps textual PHP versions to negatives so they're less than 0.
124
- // PHP currently defines these as CASE-SENSITIVE. It is important to
125
- // leave these as negatives so that they can come before numerical versions
126
- // and as if no letters were there to begin with.
127
- // (1alpha is < 1 and < 1.1 but > 1dev1)
128
- // If a non-numerical value can't be mapped to this table, it receives
129
- // -7 as its value.
130
- vm = {
131
  'dev' : -6,
132
  'alpha': -5,
133
  'a' : -5,
@@ -139,54 +135,54 @@
139
  'p' : 1,
140
  'pl' : 1
141
  },
142
- // This function will be called to prepare each version argument.
143
- // It replaces every _, -, and + with a dot.
144
- // It surrounds any nonsequence of numbers/dots with dots.
145
- // It replaces sequences of dots with a single dot.
146
- // version_compare('4..0', '4.0') == 0
147
- // Important: A string of 0 length needs to be converted into a value
148
- // even less than an unexisting value in vm (-7), hence [-8].
149
- // It's also important to not strip spaces because of this.
150
- // version_compare('', ' ') == 1
151
- prepVersion = function (v) {
152
  v = ('' + v)
153
- .replace(/[_\-+]/g, '.');
154
- v = v.replace(/([^.\d]+)/g, '.$1.')
155
- .replace(/\.{2,}/g, '.');
156
- return (!v.length ? [-8] : v.split('.'));
157
  };
158
  // This converts a version component to a number.
159
  // Empty component becomes 0.
160
  // Non-numerical component becomes a negative number.
161
  // Numerical component becomes itself as an integer.
162
- numVersion = function (v) {
163
- return !v ? 0 : (isNaN(v) ? vm[v] || -7 : parseInt(v, 10));
164
  };
165
- v1 = prepVersion(v1);
166
- v2 = prepVersion(v2);
167
- x = Math.max(v1.length, v2.length);
168
- for (i = 0; i < x; i++) {
169
- if (v1[i] == v2[i]) {
170
  continue;
171
  }
172
- v1[i] = numVersion(v1[i]);
173
- v2[i] = numVersion(v2[i]);
174
- if (v1[i] < v2[i]) {
175
  compare = -1;
176
  break;
177
- } else if (v1[i] > v2[i]) {
178
  compare = 1;
179
  break;
180
  }
181
  }
182
- if (!operator) {
183
  return compare;
184
  }
185
 
186
  // Important: operator is CASE-SENSITIVE.
187
  // "No operator" seems to be treated as "<."
188
  // Any other values seem to make the function return null.
189
- switch (operator) {
190
  case '>':
191
  case 'gt':
192
  return (compare > 0);
@@ -217,6 +213,6 @@
217
  $( 'body' ).on( 'click', '.yit-changelog-button', function () {
218
  $( '#TB_window' ).remove();
219
  } );
220
-
221
 
222
- })(jQuery);
 
6
  * It is also available through the world-wide-web at this URL:
7
  * http://www.gnu.org/licenses/gpl-3.0.txt
8
  */
9
+ (function ( $ ) {
10
 
11
+ var plugins_menu_item = $( '#menu-plugins' ),
12
+ update = plugins_menu_item.find( '.update-plugins' ),
13
+ count = update.find( ".update-count" ).text(),
14
+ registered = plugins.registered,
15
+ activated = plugins.activated;
16
 
17
+ if ( count == 0 || count == '' ) {
18
  var update_row = '<span class="update-plugins"><span class="plugin-count"></span></span>';
19
+ count = 0;
20
+ plugins_menu_item.find( '.wp-menu-name' ).append( update_row );
21
  }
22
 
23
  /**
38
  *
39
  * @return void
40
  */
41
+ function update_plugins_row( registered, activated, count, localize ) {
42
+ for ( var init in registered ) {
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
 
50
+ count = parseInt( count ) + 1;
51
+ $( ".plugin-count" ).empty().html( count );
52
 
53
+ var regex = new RegExp( ' ', 'g' ),
54
+ info = plugin[ headers ],
55
+ name = '' + info.Name,
56
+ id = name.replace( regex, '-' ).trim(),
57
+ row = '*[data-slug="' + id.toLowerCase() + '"]';
58
 
59
+ $( row ).addClass( "update" );
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" ) {
67
 
68
  html = html +
69
+ ' <em>' + localize.strings.unavailable + '</em>' +
70
+ localize.strings.activate.replace( '%activate_link%', localize.licence_activation_url ).replace( '%plugin_name%', name );
71
  } else {
72
  html = html +
73
+ '. <a href="' + localize.update_url[ init ] + '">' + localize.strings.update_now + '</a>';
 
 
 
 
74
  }
75
 
76
  html = html +
77
+ '</div>' +
78
+ '</td>' +
79
+ '</tr>';
80
 
81
+ $( html ).insertAfter( row );
82
  }
83
  }
84
  }
92
  *
93
  * @see php.js library http://phpjs.org/
94
  */
95
+ function version_compare( v1, v2, operator ) {
96
  // discuss at: http://phpjs.org/functions/version_compare/
97
  // original by: Philippe Jausions (http://pear.php.net/user/jausions)
98
  // original by: Aidan Lister (http://aidanlister.com/)
109
  // example 4: version_compare('4.1.0.52','4.01.0.51');
110
  // returns 4: 1
111
 
112
+ this.php_js = this.php_js || {};
113
  this.php_js.ENV = this.php_js.ENV || {};
114
  // END REDUNDANT
115
  // Important: compare must be initialized at 0.
116
+ var i = 0,
117
+ x = 0,
118
+ compare = 0,
119
+ // vm maps textual PHP versions to negatives so they're less than 0.
120
+ // PHP currently defines these as CASE-SENSITIVE. It is important to
121
+ // leave these as negatives so that they can come before numerical versions
122
+ // and as if no letters were there to begin with.
123
+ // (1alpha is < 1 and < 1.1 but > 1dev1)
124
+ // If a non-numerical value can't be mapped to this table, it receives
125
+ // -7 as its value.
126
+ vm = {
127
  'dev' : -6,
128
  'alpha': -5,
129
  'a' : -5,
135
  'p' : 1,
136
  'pl' : 1
137
  },
138
+ // This function will be called to prepare each version argument.
139
+ // It replaces every _, -, and + with a dot.
140
+ // It surrounds any nonsequence of numbers/dots with dots.
141
+ // It replaces sequences of dots with a single dot.
142
+ // version_compare('4..0', '4.0') == 0
143
+ // Important: A string of 0 length needs to be converted into a value
144
+ // even less than an unexisting value in vm (-7), hence [-8].
145
+ // It's also important to not strip spaces because of this.
146
+ // version_compare('', ' ') == 1
147
+ prepVersion = function ( v ) {
148
  v = ('' + v)
149
+ .replace( /[_\-+]/g, '.' );
150
+ v = v.replace( /([^.\d]+)/g, '.$1.' )
151
+ .replace( /\.{2,}/g, '.' );
152
+ return (!v.length ? [ -8 ] : v.split( '.' ));
153
  };
154
  // This converts a version component to a number.
155
  // Empty component becomes 0.
156
  // Non-numerical component becomes a negative number.
157
  // Numerical component becomes itself as an integer.
158
+ numVersion = function ( v ) {
159
+ return !v ? 0 : (isNaN( v ) ? vm[ v ] || -7 : parseInt( v, 10 ));
160
  };
161
+ v1 = prepVersion( v1 );
162
+ v2 = prepVersion( v2 );
163
+ x = Math.max( v1.length, v2.length );
164
+ for ( i = 0; i < x; i++ ) {
165
+ if ( v1[ i ] == v2[ i ] ) {
166
  continue;
167
  }
168
+ v1[ i ] = numVersion( v1[ i ] );
169
+ v2[ i ] = numVersion( v2[ i ] );
170
+ if ( v1[ i ] < v2[ i ] ) {
171
  compare = -1;
172
  break;
173
+ } else if ( v1[ i ] > v2[ i ] ) {
174
  compare = 1;
175
  break;
176
  }
177
  }
178
+ if ( !operator ) {
179
  return compare;
180
  }
181
 
182
  // Important: operator is CASE-SENSITIVE.
183
  // "No operator" seems to be treated as "<."
184
  // Any other values seem to make the function return null.
185
+ switch ( operator ) {
186
  case '>':
187
  case 'gt':
188
  return (compare > 0);
213
  $( 'body' ).on( 'click', '.yit-changelog-button', function () {
214
  $( '#TB_window' ).remove();
215
  } );
 
216
 
217
+
218
+ })( jQuery );
plugin-fw/assets/js/multisite-updater.min.js CHANGED
@@ -1,4 +1,7 @@
1
- (function(e){function n(c,d,e){this.php_js=this.php_js||{};this.php_js.ENV=this.php_js.ENV||{};var a=0,f=0,b=0,g={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)?g[a]||-7:parseInt(a,10):0};c=a(c);d=a(d);f=Math.max(c.length,d.length);for(a=0;a<f;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(!e)return b;switch(e){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=e("#menu-plugins"),h=l.find(".update-plugins").find(".update-count").text(),p=plugins.registered,q=plugins.activated;if(0==h||""==h)h=0,l.find(".wp-menu-name").append('<span class="update-plugins"><span class="plugin-count"></span></span>');
3
- (function(c,d,h,a){for(var f in c){var b=c[f],g;for(g in b)if("slug"!=g&&!n(b[g].Version,b[g].Latest,">=")){h=parseInt(h)+1;e(".plugin-count").empty().html(h);var m=""+b[g].Name,l='*[data-slug="'+m.replace(RegExp(" ","g"),"-").trim().toLowerCase()+'"]';e(l).addClass("update");var k='<tr class="plugin-update-tr"><td colspan="3" class="plugin-update colspanchange"><div class="update-message">'+a.strings.new_version.replace("%plugin_name%",m)+'<a class="thickbox" href="'+a.details_url[f]+'">'+a.strings.latest.replace("%latest%",
4
- b[g].Latest)+"</a>",k="undefined"==typeof d[f]?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[f]+'">'+a.strings.update_now+"</a>";"undefined"!=typeof a.changelogs[f]&&(k+=a.changelogs[f]);k+="</div></td></tr>";e(k).insertAfter(l)}}})(p,q,h,plugins);e("body").on("click",".yit-changelog-button",function(){e("#TB_window").remove()})})(jQuery);
 
 
 
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);
plugin-fw/assets/js/yit-plugin-panel.js CHANGED
@@ -125,37 +125,6 @@
125
  } ).disableSelection();
126
  } );
127
 
128
- $( document ).ready( function () {
129
-
130
- $( '.yith-video-link' ).click( function ( event ) {
131
- event.preventDefault();
132
- var target = $( this ).data( 'video-id' );
133
-
134
- $( '.' + target ).dialog( {
135
- dialogClass : 'wp-dialog yit-dialog yit-video-dialog',
136
- modal : true,
137
- closeOnEscape: true,
138
- width : 'auto',
139
- resizable : false,
140
- draggable : false,
141
- create : function ( event, ui ) {
142
- $( this ).css( "maxWidth", "853px" );
143
- },
144
- open : function ( event, ui ) {
145
-
146
- $( '.ui-widget-overlay' ).bind( 'click', function () {
147
- $( this ).siblings( '.ui-dialog' ).find( '.ui-dialog-content' ).dialog( 'close' );
148
- } );
149
-
150
- }
151
-
152
- } );
153
-
154
- $( '.ui-dialog :button' ).blur();
155
-
156
- } );
157
- } );
158
-
159
  //google analytics generation
160
  $( document ).ready( function () {
161
  $( '.google-analytic-generate' ).click( function () {
125
  } ).disableSelection();
126
  } );
127
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  //google analytics generation
129
  $( document ).ready( function () {
130
  $( '.google-analytic-generate' ).click( function () {
plugin-fw/assets/js/yit-plugin-panel.min.js CHANGED
@@ -1,5 +1,7 @@
1
- (function(a){function h(b,d,c,f){var e=!0;if("string"==typeof d){":radio"==d.substr(0,6)&&(d+=":checked");var g=a(d).val();"checkbox"==a(d).attr("type")&&(g=a(d).is(":checked")?"yes":"no");c=c.split(",");for(d=0;d<c.length;d++)if(g!=c[d])e=!1;else{e=!0;break}}c=a(b);b=a(b+"-container").closest("tr");1>b.length&&(b=c.closest(".yith-plugin-fw-panel-wc-row"));f=f.split("-");for(var h in f)if(g=f[h],e)switch(g){case "disable":b.removeClass("yith-disabled");c.attr("disabled",!1);break;case "hideme":c.show();
2
- break;default:b.show()}else switch(g){case "disable":b.addClass("yith-disabled");c.attr("disabled",!0);break;case "hideme":c.hide();break;default:b.hide()}}a("[data-dep-target]").each(function(){var b=a(this),d="#"+b.data("dep-target"),c="#"+b.data("dep-id"),f=b.data("dep-value"),e=b.data("dep-type");h(d,c,f.toString(),e);a(c).on("change",function(){h(d,c,f.toString(),e)}).change()});a(".rm_connectedlist").each(function(){var b=a(this).find("ul"),d=a(this).find(":hidden");b.sortable({connectWith:b,
3
- update:function(c,f){var e={};b.each(function(){var b={};a(this).children().each(function(){b[a(this).data("option")]=a(this).text()});e[a(this).data("list")]=b});d.val(JSON.stringify(e).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()});a(document).ready(function(){a(".yith-video-link").click(function(b){b.preventDefault();b=a(this).data("video-id");a("."+b).dialog({dialogClass:"wp-dialog yit-dialog yit-video-dialog",modal:!0,closeOnEscape:!0,width:"auto",resizable:!1,draggable:!1,
4
- create:function(b,c){a(this).css("maxWidth","853px")},open:function(b,c){a(".ui-widget-overlay").bind("click",function(){a(this).siblings(".ui-dialog").find(".ui-dialog-content").dialog("close")})}});a(".ui-dialog :button").blur()})});a(document).ready(function(){a(".google-analytic-generate").click(function(){var b=a("#"+a(this).data("textarea")).data("codemirrorInstance"),d=a("#"+a(this).data("input")).val(),c=a(this).data("basename");b.replaceRange("(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\nm=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n"+
5
- ("ga('create', '"+d+"', '"+c+"');\n")+"ga('send', 'pageview');\n",b.getCursor("start"),b.getCursor("end"))})});a(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper")})(jQuery);
 
 
1
+ var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,e,b){a instanceof String&&(a=String(a));for(var c=a.length,d=0;d<c;d++){var g=a[d];if(e.call(b,g,d,a))return{i:d,v:g}}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,e,b){a!=Array.prototype&&a!=Object.prototype&&(a[e]=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,e,b,c){if(e){b=$jscomp.global;a=a.split(".");for(c=0;c<a.length-1;c++){var d=a[c];d in b||(b[d]={});b=b[d]}a=a[a.length-1];c=b[a];e=e(c);e!=c&&null!=e&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:e})}};
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 e(b,c,d,e){var f=!0;if("string"==typeof c){":radio"==c.substr(0,6)&&(c+=":checked");var h=a(c).val();"checkbox"==a(c).attr("type")&&(h=a(c).is(":checked")?"yes":"no");d=d.split(",");for(c=0;c<d.length;c++)if(h!=d[c])f=!1;else{f=!0;break}}d=a(b);b=a(b+"-container").closest("tr");1>b.length&&(b=d.closest(".yith-plugin-fw-panel-wc-row"));e=e.split("-");for(var g in e)if(h=e[g],f)switch(h){case "disable":b.removeClass("yith-disabled");d.attr("disabled",!1);break;case "hideme":d.show();
5
+ break;default:b.show()}else switch(h){case "disable":b.addClass("yith-disabled");d.attr("disabled",!0);break;case "hideme":d.hide();break;default:b.hide()}}a("[data-dep-target]").each(function(){var b=a(this),c="#"+b.data("dep-target"),d="#"+b.data("dep-id"),g=b.data("dep-value"),f=b.data("dep-type");e(c,d,g.toString(),f);a(d).on("change",function(){e(c,d,g.toString(),f)}).change()});a(".rm_connectedlist").each(function(){var b=a(this).find("ul"),c=a(this).find(":hidden");b.sortable({connectWith:b,
6
+ update:function(d,e){var f={};b.each(function(){var b={};a(this).children().each(function(){b[a(this).data("option")]=a(this).text()});f[a(this).data("list")]=b});c.val(JSON.stringify(f).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()});a(document).ready(function(){a(".google-analytic-generate").click(function(){var b=a("#"+a(this).data("textarea")).data("codemirrorInstance"),c=a("#"+a(this).data("input")).val(),d=a(this).data("basename");b.replaceRange("(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\nm=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n"+
7
+ ("ga('create', '"+c+"', '"+d+"');\n")+"ga('send', 'pageview');\n",b.getCursor("start"),b.getCursor("end"))})});a(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper")})(jQuery);
plugin-fw/init.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
- * Version: 3.0.10
5
  * Author: Yithemes
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author Your Inspiration Themes
10
- * @version 3.0.10
11
  */
12
  /**
13
  * This file belongs to the YIT Plugin Framework.
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
+ * Version: 3.0.16
5
  * Author: Yithemes
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author Your Inspiration Themes
10
+ * @version 3.0.16
11
  */
12
  /**
13
  * This file belongs to the YIT Plugin Framework.
plugin-fw/lib/privacy/yit-privacy-plugin-abstract.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ !defined( 'ABSPATH' ) && exit; // Exit if accessed directly
3
+
4
+ if ( !class_exists( 'YITH_Privacy_Plugin_Abstract' ) ) {
5
+ class YITH_Privacy_Plugin_Abstract {
6
+ private $_name;
7
+
8
+ public function __construct( $name ) {
9
+ $this->_name = $name;
10
+ $this->init();
11
+ }
12
+
13
+ protected function init() {
14
+ add_filter( 'yith_plugin_fw_privacy_guide_content', array( $this, 'add_message_in_section' ), 10, 2 );
15
+ }
16
+
17
+ public function add_message_in_section( $html, $section ) {
18
+ if ( $message = $this->get_privacy_message( $section ) ) {
19
+ $html .= "<p class='privacy-policy-tutorial'><strong>{$this->_name}</strong></p>";
20
+ $html .= $message;
21
+ }
22
+ return $html;
23
+ }
24
+
25
+ public function get_privacy_message( $section ) {
26
+ return '';
27
+ }
28
+ }
29
+ }
plugin-fw/lib/privacy/yit-privacy.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ !defined( 'ABSPATH' ) && exit; // Exit if accessed directly
3
+
4
+ if ( !class_exists( 'YITH_Privacy' ) ) {
5
+ /**
6
+ * Class YITH_Privacy
7
+ * Privacy Class
8
+ *
9
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
10
+ */
11
+ class YITH_Privacy {
12
+ private static $_instance;
13
+
14
+ private $_title;
15
+
16
+ public static function get_instance() {
17
+ return !is_null( self::$_instance ) ? self::$_instance : self::$_instance = new self();
18
+ }
19
+
20
+ /**
21
+ * YITH_Privacy constructor.
22
+ */
23
+ private function __construct() {
24
+ $this->_title = apply_filters( 'yith_plugin_fw_privacy_policy_guide_title', _x( 'YITH Plugins', 'Privacy Policy Guide Title', 'yith-plugin-fw' ) );
25
+ add_action( 'admin_init', array( $this, 'add_privacy_message' ) );
26
+ }
27
+
28
+ /**
29
+ * Adds the privacy message on YITH privacy page.
30
+ */
31
+ public function add_privacy_message() {
32
+ if ( function_exists( 'wp_add_privacy_policy_content' ) ) {
33
+ $content = $this->get_privacy_message();
34
+
35
+ if ( $content ) {
36
+ wp_add_privacy_policy_content( $this->_title, $this->get_privacy_message() );
37
+ }
38
+ }
39
+ }
40
+
41
+ /**
42
+ * get the privacy message
43
+ *
44
+ * @return string
45
+ */
46
+ public function get_privacy_message() {
47
+ $privacy_content_path = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/privacy/html-policy-content.php';
48
+ ob_start();
49
+ $sections = $this->get_sections();
50
+ if ( file_exists( $privacy_content_path ) )
51
+ include $privacy_content_path;
52
+
53
+ return apply_filters( 'yith_wcbk_privacy_policy_content', ob_get_clean() );
54
+ }
55
+
56
+ public function get_sections() {
57
+ return apply_filters( 'yith_wcbk_privacy_policy_content_sections', array(
58
+ 'general' => array(
59
+ 'tutorial' => _x( 'This sample language includes the basics around what personal data your store may be collecting, storing and sharing, as well as who may have access to that data. Depending on what settings are enabled and which additional plugins are used, the specific information shared by your store will vary. We recommend consulting with a lawyer when deciding what information to disclose on your privacy policy.', 'Privacy Policy Content', 'yith-plugin-fw' ),
60
+ 'description' => '',
61
+ ),
62
+ 'collect_and_store' => array(
63
+ 'title' => _x( 'What we collect and store', 'Privacy Policy Content', 'yith-plugin-fw' )
64
+ ),
65
+ 'has_access' => array(
66
+ 'title' => _x( 'Who on our team has access', 'Privacy Policy Content', 'yith-plugin-fw' )
67
+ ),
68
+ 'share' => array(
69
+ 'title' => _x( 'What we share with others', 'Privacy Policy Content', 'yith-plugin-fw' ),
70
+ ),
71
+ 'payments' => array(
72
+ 'title' => _x( 'Payments', 'Privacy Policy Content', 'yith-plugin-fw' )
73
+ ),
74
+ ) );
75
+ }
76
+ }
77
+ }
78
+
79
+ YITH_Privacy::get_instance();
plugin-fw/lib/yit-debug.php CHANGED
@@ -234,7 +234,8 @@ if ( !class_exists( 'YITH_Debug' ) ) {
234
  * @return string
235
  */
236
  public function get_plugin_framework_info() {
237
- $plugin_fw_version = get_file_data( trailingslashit( YIT_CORE_PLUGIN_PATH ) . 'init.php', array( 'Version' => 'Version' ) )[ 'Version' ];
 
238
  $plugin_fw_loaded_by = basename( dirname( YIT_CORE_PLUGIN_PATH ) );
239
 
240
  return "$plugin_fw_version (by $plugin_fw_loaded_by)";
234
  * @return string
235
  */
236
  public function get_plugin_framework_info() {
237
+ $plugin_fw_data = get_file_data( trailingslashit( YIT_CORE_PLUGIN_PATH ) . 'init.php', array( 'Version' => 'Version' ) );
238
+ $plugin_fw_version = $plugin_fw_data[ 'Version' ];
239
  $plugin_fw_loaded_by = basename( dirname( YIT_CORE_PLUGIN_PATH ) );
240
 
241
  return "$plugin_fw_version (by $plugin_fw_loaded_by)";
plugin-fw/lib/yit-metabox.php CHANGED
@@ -520,7 +520,11 @@ if ( !class_exists( 'YIT_Metabox' ) ) {
520
  if ( in_array( $field[ 'type' ], array( 'onoff', 'checkbox' ) ) ) {
521
  update_post_meta( $post_id, $field[ 'id' ], '1' );
522
  } else {
523
- add_post_meta( $post_id, $field[ 'id' ], $_POST[ 'yit_metaboxes' ][ $field[ 'id' ] ], true ) || update_post_meta( $post_id, $field[ 'id' ], $_POST[ 'yit_metaboxes' ][ $field[ 'id' ] ] );
 
 
 
 
524
  }
525
  } elseif ( in_array( $field[ 'type' ], array( 'onoff', 'checkbox' ) ) ) {
526
  update_post_meta( $post_id, $field[ 'id' ], '0' );
520
  if ( in_array( $field[ 'type' ], array( 'onoff', 'checkbox' ) ) ) {
521
  update_post_meta( $post_id, $field[ 'id' ], '1' );
522
  } else {
523
+ $value = $_POST[ 'yit_metaboxes' ][ $field[ 'id' ] ];
524
+ if ( !empty( $field[ 'yith-sanitize-callback' ] ) && is_callable( $field[ 'yith-sanitize-callback' ] ) ) {
525
+ $value = call_user_func( $field[ 'yith-sanitize-callback' ], $value );
526
+ }
527
+ add_post_meta( $post_id, $field[ 'id' ], $value, true ) || update_post_meta( $post_id, $field[ 'id' ], $value );
528
  }
529
  } elseif ( in_array( $field[ 'type' ], array( 'onoff', 'checkbox' ) ) ) {
530
  update_post_meta( $post_id, $field[ 'id' ], '0' );
plugin-fw/lib/yit-plugin-panel-wc.php CHANGED
@@ -93,7 +93,6 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
93
  if ( !static::$_actions_initialized ) {
94
  /* Add VideoBox and InfoBox */
95
  add_action( 'woocommerce_admin_field_boxinfo', array( __CLASS__, 'add_infobox' ), 10, 1 );
96
- add_action( 'woocommerce_admin_field_videobox', array( __CLASS__, 'add_videobox' ), 10, 1 );
97
 
98
  /* Add YITH Fields */
99
  add_action( 'woocommerce_admin_field_yith-field', array( __CLASS__, 'add_yith_field' ), 10, 1 );
@@ -521,9 +520,13 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
521
  $value = yith_plugin_fw_is_true( $raw_value ) ? 'yes' : 'no';
522
  }
523
 
524
- if ( isset( $option[ 'yith-type' ] ) && in_array( $option[ 'yith-type' ], array( 'textarea-editor', 'textarea-codemirror' ) ) ) {
525
  $value = $raw_value;
526
  }
 
 
 
 
527
  }
528
 
529
  return $value;
93
  if ( !static::$_actions_initialized ) {
94
  /* Add VideoBox and InfoBox */
95
  add_action( 'woocommerce_admin_field_boxinfo', array( __CLASS__, 'add_infobox' ), 10, 1 );
 
96
 
97
  /* Add YITH Fields */
98
  add_action( 'woocommerce_admin_field_yith-field', array( __CLASS__, 'add_yith_field' ), 10, 1 );
520
  $value = yith_plugin_fw_is_true( $raw_value ) ? 'yes' : 'no';
521
  }
522
 
523
+ if ( isset( $option[ 'yith-type' ] ) && in_array( $option[ 'yith-type' ], array( 'textarea', 'textarea-editor', 'textarea-codemirror' ) ) ) {
524
  $value = $raw_value;
525
  }
526
+
527
+ if ( !empty( $option[ 'yith-sanitize-callback' ] ) && is_callable( $option[ 'yith-sanitize-callback' ] ) ) {
528
+ $value = call_user_func( $option[ 'yith-sanitize-callback' ], $value );
529
+ }
530
  }
531
 
532
  return $value;
plugin-fw/lib/yit-plugin-panel.php CHANGED
@@ -274,6 +274,11 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
274
  if ( isset( $option[ 'type' ] ) && in_array( $option[ 'type' ], array( 'checkbox', 'onoff' ) ) ) {
275
  $value = yith_plugin_fw_is_true( $value ) ? 'yes' : 'no';
276
  }
 
 
 
 
 
277
  $valid_input[ $option[ 'id' ] ] = $value;
278
  }
279
  }
@@ -363,7 +368,6 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
363
  return;
364
  }
365
  ?>
366
- <?php $this->print_video_box(); ?>
367
  <?php
368
  $panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
369
  ?>
@@ -605,8 +609,11 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
605
  return $this->_main_array_options;
606
  }
607
 
 
 
608
  foreach ( $this->settings[ 'admin-tabs' ] as $item => $v ) {
609
- $path = $this->settings[ 'options-path' ] . '/' . $item . '-options.php';
 
610
  if ( file_exists( $path ) ) {
611
  $this->_main_array_options = array_merge( $this->_main_array_options, include $path );
612
  }
@@ -854,36 +861,24 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
854
  /**
855
  * Show a box panel with specific content in two columns as a new woocommerce type
856
  *
 
 
857
  * @param array $args
858
  *
859
  * @return void
860
- * @since 1.0
861
- * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
862
  */
863
  public static function add_videobox( $args = array() ) {
864
- if ( !empty( $args ) ) {
865
- extract( $args );
866
- require_once( YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/videobox.php' );
867
- }
868
  }
869
 
870
  /**
871
  * Fire the action to print the custom tab
872
  *
 
873
  * @return void
874
- * @since 1.0
875
- * @author Antonino Scarfì <antonino.scarfi@yithemes.com>
876
  */
877
  public function print_video_box() {
878
- $file = $this->settings[ 'options-path' ] . '/video-box.php';
879
-
880
- if ( !file_exists( $file ) ) {
881
- return;
882
- }
883
-
884
- $args = include_once( $file );
885
 
886
- $this->add_videobox( $args );
887
  }
888
 
889
  /**
274
  if ( isset( $option[ 'type' ] ) && in_array( $option[ 'type' ], array( 'checkbox', 'onoff' ) ) ) {
275
  $value = yith_plugin_fw_is_true( $value ) ? 'yes' : 'no';
276
  }
277
+
278
+ if ( !empty( $option[ 'yith-sanitize-callback' ] ) && is_callable( $option[ 'yith-sanitize-callback' ] ) ) {
279
+ $value = call_user_func( $option[ 'yith-sanitize-callback' ], $value );
280
+ }
281
+
282
  $valid_input[ $option[ 'id' ] ] = $value;
283
  }
284
  }
368
  return;
369
  }
370
  ?>
 
371
  <?php
372
  $panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
373
  ?>
609
  return $this->_main_array_options;
610
  }
611
 
612
+ $options_path = $this->settings[ 'options-path' ];
613
+
614
  foreach ( $this->settings[ 'admin-tabs' ] as $item => $v ) {
615
+ $path = $options_path . '/' . $item . '-options.php';
616
+ $path = apply_filters( 'yith_plugin_panel_item_options_path', $path, $options_path, $item, $this );
617
  if ( file_exists( $path ) ) {
618
  $this->_main_array_options = array_merge( $this->_main_array_options, include $path );
619
  }
861
  /**
862
  * Show a box panel with specific content in two columns as a new woocommerce type
863
  *
864
+ * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
865
+ *
866
  * @param array $args
867
  *
868
  * @return void
 
 
869
  */
870
  public static function add_videobox( $args = array() ) {
871
+
 
 
 
872
  }
873
 
874
  /**
875
  * Fire the action to print the custom tab
876
  *
877
+ * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
878
  * @return void
 
 
879
  */
880
  public function print_video_box() {
 
 
 
 
 
 
 
881
 
 
882
  }
883
 
884
  /**
plugin-fw/lib/yit-plugin-subpanel.php CHANGED
@@ -139,7 +139,6 @@ if ( !class_exists( 'YIT_Plugin_SubPanel' ) ) {
139
  return;
140
  }
141
  ?>
142
- <?php $this->print_video_box(); ?>
143
  <?php
144
  $panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
145
  ?>
139
  return;
140
  }
141
  ?>
 
142
  <?php
143
  $panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
144
  ?>
plugin-fw/lib/yit-upgrade.php CHANGED
@@ -62,6 +62,40 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
62
  $this->_package_url = defined( 'YIT_LICENCE_DEBUG_LOCALHOST' ) ? YIT_LICENCE_DEBUG_LOCALHOST : 'http://dev.yithemes.com';
63
  add_filter( 'block_local_requests', '__return_false' );
64
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  }
66
 
67
  /**
@@ -89,36 +123,49 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
89
  'slug' => $plugin_slug,
90
  );
91
 
92
- /* === HOOKS === */
93
- if ( !is_multisite() || is_plugin_active_for_network( $plugin_init ) ) {
94
- add_action( 'load-plugins.php', array( $this, 'remove_wp_plugin_update_row' ), 25 );
95
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
96
- } else if ( is_multisite() && current_user_can( 'update_plugins' ) ) {
97
- $transient = 'yith_register_' . md5( $plugin_slug );
98
- if ( apply_filters( 'yith_register_delete_transient', false ) ) {
99
- delete_transient( $transient );
100
- }
101
- $info = get_transient( $transient );
102
- if ( false === $info || apply_filters( 'yith_register_delete_transient', false ) ) {
103
- $xml = str_replace( '%plugin_slug%', $plugin_slug, $this->_xml );
104
- $remote_xml = wp_remote_get( $xml );
105
-
106
- if ( !is_wp_error( $remote_xml ) && isset( $remote_xml[ 'response' ][ 'code' ] ) && '200' == $remote_xml[ 'response' ][ 'code' ] ) {
107
- $plugin_remote_info = @simplexml_load_string( $remote_xml[ 'body' ] );
108
- if ( $plugin_remote_info ) {
109
- $info[ 'Latest' ] = (string) $plugin_remote_info->latest;
110
- $info[ 'changelog' ] = (string) $plugin_remote_info->changelog;
111
  YIT_Plugin_Licence()->check( $plugin_slug, false );
112
- set_transient( $transient, $info, DAY_IN_SECONDS );
113
- } else {
114
- error_log( sprintf( 'SimpleXML error in %s:%s [plugin slug: %s]',
115
- __FILE__, __FUNCTION__, $plugin_slug ) );
116
  }
 
 
 
 
 
117
  }
 
 
118
  }
119
 
120
- $this->_plugins[ $plugin_init ][ 'info' ][ 'Latest' ] = $info[ 'Latest' ];
121
- $this->_plugins[ $plugin_init ][ 'info' ][ 'changelog' ] = $info[ 'changelog' ];
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  add_action( 'admin_enqueue_scripts', array( $this, 'multisite_updater_script' ) );
123
  }
124
  }
@@ -132,7 +179,6 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
132
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
133
  */
134
  public function multisite_updater_script() {
135
-
136
  $update_url = $changelogs = $details_url = array();
137
  $strings = array(
138
  'new_version' => __( 'There is a new version of %plugin_name% available.', 'yith-plugin-fw' ),
@@ -145,10 +191,7 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
145
 
146
  foreach ( $this->_plugins as $init => $info ) {
147
  $update_url[ $init ] = wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin-multisite&plugin=' ) . $init, 'upgrade-plugin-multisite_' . $init );
148
- $changelog_id = str_replace( array( '/', '.php', '.' ), array( '-', '', '-' ), $init );
149
- $details_url[ $init ] = '#TB_inline' . esc_url( add_query_arg( array( 'width' => 722, 'height' => 914, 'inlineId' => $changelog_id ), '' ) );
150
- $plugin_changelog = isset( $this->_plugins[ $init ][ 'info' ][ 'changelog' ] ) ? $this->_plugins[ $init ][ 'info' ][ 'changelog' ] : '';
151
- $changelogs[ $init ] = $this->in_theme_update_message( $this->_plugins[ $init ], $plugin_changelog, $changelog_id, false );
152
  }
153
 
154
  $localize_script_args = array(
@@ -158,7 +201,6 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
158
  'update_url' => $update_url,
159
  'details_url' => $details_url,
160
  'strings' => $strings,
161
- 'changelogs' => $changelogs
162
  );
163
  $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
164
  yit_enqueue_script( 'yit-multisite-updater', YIT_CORE_PLUGIN_URL . '/assets/js/multisite-updater' . $suffix . '.js', array( 'jquery' ), false, true );
@@ -432,7 +474,7 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
432
  $r = $current->response[ $init ];
433
 
434
  $changelog_id = str_replace( array( '/', '.php', '.' ), array( '-', '', '-' ), $init );
435
- $details_url = '#TB_inline' . esc_url( add_query_arg( array( 'width' => 722, 'height' => 914, 'inlineId' => $changelog_id ), '' ) );
436
 
437
  /**
438
  * @see wp_plugin_update_rows() in wp-single\wp-admin\includes\update.php
@@ -493,14 +535,12 @@ if ( !class_exists( 'YIT_Upgrade' ) ) {
493
  foreach ( $this->_plugins as $init => $plugin ) {
494
  remove_action( "after_plugin_row_{$init}", 'wp_plugin_update_row', 10 );
495
  add_action( "after_plugin_row_{$init}", array( $this, 'plugin_update_row' ) );
496
- add_action( "in_theme_update_message-{$init}", array( $this, 'in_theme_update_message' ), 10, 3 );
497
  }
498
  }
499
 
500
  public function in_theme_update_message( $plugin, $changelog, $changelog_id, $echo = true ) {
501
-
502
- $res
503
- = "<div id='{$changelog_id}' class='yit-plugin-changelog-wrapper'>
504
  <div class='yit-plugin-changelog'>
505
  <h2 class='yit-plugin-changelog-title'>{$plugin['info']['Name']} - Changelog</h2>
506
  <p>{$changelog}</p>
62
  $this->_package_url = defined( 'YIT_LICENCE_DEBUG_LOCALHOST' ) ? YIT_LICENCE_DEBUG_LOCALHOST : 'http://dev.yithemes.com';
63
  add_filter( 'block_local_requests', '__return_false' );
64
  }
65
+
66
+ add_action( 'install_plugins_pre_plugin-information', array( $this, 'show_changelog_for_premium_plugins' ) );
67
+ add_action( 'wp_ajax_yith_plugin_fw_get_premium_changelog', array( $this, 'show_changelog_for_premium_plugins' ) );
68
+ }
69
+
70
+ /**
71
+ * show changelog for premium plugins
72
+ *
73
+ * @since 3.0.14
74
+ */
75
+ public function show_changelog_for_premium_plugins() {
76
+ if ( isset( $_GET[ 'plugin' ] ) && isset( $_GET[ 'section' ] ) && 'changelog' === $_GET[ 'section' ] ) {
77
+ $plugin_init = $_GET[ 'plugin' ];
78
+ if ( isset( $this->_plugins[ $plugin_init ] ) ) {
79
+ // this is YITH Premium Plugin
80
+ if ( !empty( $this->_plugins[ $plugin_init ][ 'info' ][ 'changelog' ] ) ) {
81
+ $plugin_name = $this->_plugins[ $plugin_init ][ 'info' ][ 'Name' ];
82
+ $changelog = $this->_plugins[ $plugin_init ][ 'info' ][ 'changelog' ];
83
+ $template = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/upgrade/changelog.php';
84
+ if ( file_exists( $template ) ) {
85
+ include( $template );
86
+ }
87
+ die();
88
+ }
89
+ $error = __( 'An unexpected error occurred, please try again later. Thanks!', 'yith-plugin-fw' );
90
+ $template = YIT_CORE_PLUGIN_TEMPLATE_PATH . '/upgrade/error.php';
91
+ if ( file_exists( $template ) ) {
92
+ include( $template );
93
+ } else {
94
+ echo "<p>$error</p>";
95
+ }
96
+ die();
97
+ }
98
+ }
99
  }
100
 
101
  /**
123
  'slug' => $plugin_slug,
124
  );
125
 
126
+ $transient = 'yith_register_' . md5( $plugin_slug );
127
+ if ( apply_filters( 'yith_register_delete_transient', false ) ) {
128
+ delete_transient( $transient );
129
+ }
130
+ $info = get_transient( $transient );
131
+ if ( false === $info || apply_filters( 'yith_register_delete_transient', false ) ) {
132
+ $xml = str_replace( '%plugin_slug%', $plugin_slug, $this->_xml );
133
+ $remote_xml = wp_remote_get( $xml );
134
+
135
+ $error = false;
136
+ if ( !is_wp_error( $remote_xml ) && isset( $remote_xml[ 'response' ][ 'code' ] ) && '200' == $remote_xml[ 'response' ][ 'code' ] ) {
137
+ $plugin_remote_info = @simplexml_load_string( $remote_xml[ 'body' ] );
138
+ if ( $plugin_remote_info ) {
139
+ $info[ 'Latest' ] = (string) $plugin_remote_info->latest;
140
+ $info[ 'changelog' ] = (string) $plugin_remote_info->changelog;
141
+ if ( is_multisite() && current_user_can( 'update_plugins' ) ) {
 
 
 
142
  YIT_Plugin_Licence()->check( $plugin_slug, false );
 
 
 
 
143
  }
144
+ set_transient( $transient, $info, DAY_IN_SECONDS );
145
+ } else {
146
+ $error = true;
147
+ error_log( sprintf( 'SimpleXML error in %s:%s [plugin slug: %s]',
148
+ __FILE__, __FUNCTION__, $plugin_slug ) );
149
  }
150
+ } else {
151
+ $error = true;
152
  }
153
 
154
+ if ( $error ) {
155
+ // If error, set empty value in the transient to prevent multiple requests
156
+ $info = array( 'Latest' => '', 'changelog' => '' );
157
+ set_transient( $transient, $info, HOUR_IN_SECONDS );
158
+ }
159
+ }
160
+
161
+ $this->_plugins[ $plugin_init ][ 'info' ][ 'Latest' ] = $info[ 'Latest' ];
162
+ $this->_plugins[ $plugin_init ][ 'info' ][ 'changelog' ] = $info[ 'changelog' ];
163
+
164
+ /* === HOOKS === */
165
+ if ( !is_multisite() || is_plugin_active_for_network( $plugin_init ) ) {
166
+ add_action( 'load-plugins.php', array( $this, 'remove_wp_plugin_update_row' ), 25 );
167
+ add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
168
+ } else if ( is_multisite() && current_user_can( 'update_plugins' ) ) {
169
  add_action( 'admin_enqueue_scripts', array( $this, 'multisite_updater_script' ) );
170
  }
171
  }
179
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
180
  */
181
  public function multisite_updater_script() {
 
182
  $update_url = $changelogs = $details_url = array();
183
  $strings = array(
184
  'new_version' => __( 'There is a new version of %plugin_name% available.', 'yith-plugin-fw' ),
191
 
192
  foreach ( $this->_plugins as $init => $info ) {
193
  $update_url[ $init ] = wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin-multisite&plugin=' ) . $init, 'upgrade-plugin-multisite_' . $init );
194
+ $details_url[ $init ] = admin_url( 'admin-ajax.php?action=yith_plugin_fw_get_premium_changelog&tab=plugin-information&plugin=' . $init . '&section=changelog&TB_iframe=true&width=640&height=662' );
 
 
 
195
  }
196
 
197
  $localize_script_args = array(
201
  'update_url' => $update_url,
202
  'details_url' => $details_url,
203
  'strings' => $strings,
 
204
  );
205
  $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
206
  yit_enqueue_script( 'yit-multisite-updater', YIT_CORE_PLUGIN_URL . '/assets/js/multisite-updater' . $suffix . '.js', array( 'jquery' ), false, true );
474
  $r = $current->response[ $init ];
475
 
476
  $changelog_id = str_replace( array( '/', '.php', '.' ), array( '-', '', '-' ), $init );
477
+ $details_url = self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $init . '&section=changelog&TB_iframe=true&width=640&height=662' );
478
 
479
  /**
480
  * @see wp_plugin_update_rows() in wp-single\wp-admin\includes\update.php
535
  foreach ( $this->_plugins as $init => $plugin ) {
536
  remove_action( "after_plugin_row_{$init}", 'wp_plugin_update_row', 10 );
537
  add_action( "after_plugin_row_{$init}", array( $this, 'plugin_update_row' ) );
538
+ //add_action( "in_theme_update_message-{$init}", array( $this, 'in_theme_update_message' ), 10, 3 );
539
  }
540
  }
541
 
542
  public function in_theme_update_message( $plugin, $changelog, $changelog_id, $echo = true ) {
543
+ $res = "<div id='{$changelog_id}' class='yit-plugin-changelog-wrapper'>
 
 
544
  <div class='yit-plugin-changelog'>
545
  <h2 class='yit-plugin-changelog-title'>{$plugin['info']['Name']} - Changelog</h2>
546
  <p>{$changelog}</p>
plugin-fw/lib/yit-video.php CHANGED
@@ -135,6 +135,7 @@ if ( ! class_exists( 'YIT_Video' ) ) {
135
  public static function video_id_by_url( $url ) {
136
  $parsed = parse_url( esc_url( $url ) );
137
 
 
138
  if ( ! isset( $parsed['host'] ) ) {
139
  return false;
140
  }
@@ -150,7 +151,8 @@ if ( ! class_exists( 'YIT_Video' ) ) {
150
 
151
  case 'www.vimeo.com' :
152
  case 'vimeo.com' :
153
- preg_match( '/http(s)?:\/\/(\w+.)?vimeo\.com\/(.*)?(\/[0-9]+)/', $url, $matches );
 
154
  $id = trim( $matches[4], '/' );
155
  return "vimeo:$id";
156
 
135
  public static function video_id_by_url( $url ) {
136
  $parsed = parse_url( esc_url( $url ) );
137
 
138
+
139
  if ( ! isset( $parsed['host'] ) ) {
140
  return false;
141
  }
151
 
152
  case 'www.vimeo.com' :
153
  case 'vimeo.com' :
154
+ preg_match( '/http(s)?:\/\/(\w+.)?vimeo\.com\/(.*\/)?([0-9]+)/', $url, $matches );
155
+
156
  $id = trim( $matches[4], '/' );
157
  return "vimeo:$id";
158
 
plugin-fw/licence/lib/yit-licence.php CHANGED
@@ -198,8 +198,8 @@ if ( !class_exists( 'YIT_Licence' ) ) {
198
  )
199
  );
200
 
201
- /* Enqueue Scripts only in Licence Activation page */
202
- if ( strpos( get_current_screen()->id, 'yith_plugins_activation' ) !== false ) {
203
  wp_enqueue_script( 'yit-licence' );
204
  wp_enqueue_style( 'yit-theme-licence' );
205
  }
198
  )
199
  );
200
 
201
+ /* Enqueue Scripts only in Licence Activation page of plugins and themes */
202
+ if ( strpos( get_current_screen()->id, 'yith_plugins_activation' ) !== false || strpos( get_current_screen()->id, 'yit_panel_license' ) !== false ) {
203
  wp_enqueue_script( 'yit-licence' );
204
  wp_enqueue_style( 'yit-theme-licence' );
205
  }
plugin-fw/licence/lib/yit-plugin-licence.php CHANGED
@@ -105,7 +105,7 @@ if ( !class_exists( 'YIT_Plugin_Licence' ) ) {
105
  <div class="notice notice-error">
106
  <p><strong>Warning!</strong> You didn't set license key for the following products:
107
  <?php echo $product_list ?>
108
- which means you're missing out on updates and support. <a href='<?php echo $activation_url ?>'>Enter your license key</a></p>
109
  </div>
110
  <?php
111
  }
105
  <div class="notice notice-error">
106
  <p><strong>Warning!</strong> You didn't set license key for the following products:
107
  <?php echo $product_list ?>
108
+ which means you're missing out on updates and support. <a href='<?php echo $activation_url ?>'>Enter your license key</a>, please.</p>
109
  </div>
110
  <?php
111
  }
plugin-fw/templates/fields/onoff.php CHANGED
@@ -18,4 +18,9 @@ extract( $field );
18
  <div class="yith-plugin-fw-onoff-container">
19
  <input type="checkbox" id="<?php echo $id ?>" name="<?php echo $name ?>" value="<?php echo esc_attr( $value ) ?>" <?php checked( yith_plugin_fw_is_true( $value ) ) ?> class="on_off" <?php if ( isset( $std ) ) : ?>data-std="<?php echo $std ?>"<?php endif ?> />
20
  <span class="yith-plugin-fw-onoff">&nbsp;</span>
21
- </div>
 
 
 
 
 
18
  <div class="yith-plugin-fw-onoff-container">
19
  <input type="checkbox" id="<?php echo $id ?>" name="<?php echo $name ?>" value="<?php echo esc_attr( $value ) ?>" <?php checked( yith_plugin_fw_is_true( $value ) ) ?> class="on_off" <?php if ( isset( $std ) ) : ?>data-std="<?php echo $std ?>"<?php endif ?> />
20
  <span class="yith-plugin-fw-onoff">&nbsp;</span>
21
+ </div>
22
+ <?php
23
+ if ( isset( $field[ 'desc-inline' ] ) ) {
24
+ echo "<span class='description inline'>" . $field[ 'desc-inline' ] . "</span>";
25
+ }
26
+ ?>
plugin-fw/templates/fields/radio.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Plugin 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
+ * @var array $field
11
+ */
12
+
13
+ /** @since 3.0.13 */
14
+
15
+ !defined( 'ABSPATH' ) && exit; // Exit if accessed directly
16
+
17
+ extract( $field );
18
+
19
+ $class = isset( $class ) ? $class : '';
20
+ $class = 'yith-plugin-fw-radio ' . $class;
21
+ ?>
22
+ <div class="<?php echo $class ?>" id="<?php echo $id ?>"
23
+ <?php echo $custom_attributes ?>
24
+ <?php if ( isset( $data ) ) echo yith_plugin_fw_html_data_to_string( $data ); ?> value="<?php echo $value ?>">
25
+ <?php foreach ( $options as $key => $label ) :
26
+ $radio_id = sanitize_key( $id . '-' . $key );
27
+ ?>
28
+ <div class="yith-plugin-fw-radio__row">
29
+ <input type="radio" id="<?php echo $radio_id ?>" name="<?php echo $name ?>" value="<?php echo esc_attr( $key ) ?>" <?php checked( $key, $value ); ?> />
30
+ <label for="<?php echo $radio_id ?>"><?php echo $label ?></label>
31
+ </div>
32
+ <?php endforeach; ?>
33
+ </div>
plugin-fw/templates/panel/videobox.php DELETED
@@ -1,83 +0,0 @@
1
- <?php
2
- /**
3
- * This file belongs to the YIT Plugin 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
- if ( ! defined( 'ABSPATH' ) ) {
12
- exit;
13
- } // Exit if accessed directly
14
-
15
- /**
16
- * Example to call this template
17
- *
18
- * 'section_general_settings_videobox' => array(
19
- * 'name' => __( 'Title of box', 'yith-plugin-fw' ),
20
- * 'type' => 'videobox',
21
- * 'default' => array(
22
- * 'plugin_name' => __( 'Plugin Name', 'yith-plugin-fw' ),
23
- * 'title_first_column' => __( 'Title first column', 'yith-plugin-fw' ),
24
- * 'description_first_column' => __('Lorem ipsum ... ', 'yith-plugin-fw'),
25
- * 'video' => array(
26
- * 'video_id' => 'vimeo_code',
27
- * 'video_image_url' => '#',
28
- * 'video_description' => __( 'Lorem ipsum dolor sit amet....', 'yith-plugin-fw' ),
29
- * ),
30
- * 'title_second_column' => __( 'Title first column', 'yith-plugin-fw' ),
31
- * 'description_second_column' => __('Lorem ipsum dolor sit amet.... ', 'yith-plugin-fw'),
32
- * 'button' => array(
33
- * 'href' => 'http://www.yithemes.com',
34
- * 'title' => 'Get Support and Pro Features'
35
- * )
36
- * ),
37
- * 'id' => 'yith_wcas_general_videobox'
38
- * ),
39
- */
40
- ?>
41
- <div id="normal-sortables" class="meta-box-sortables yith-videobox-wrapper">
42
- <div id="<?php echo $id ?>" class="postbox">
43
- <h3><span><?php echo $name ?></span></h3>
44
- <div class="inside">
45
- <div class="yith_videobox">
46
- <div class="column"><h2><?php echo $default['title_first_column'] ?></h2>
47
- <?php if ( isset( $default['video'] ) && !empty( $default['video'] ) ): ?>
48
- <a class="yith-video-link" href="#" data-video-id="yith-video-iframe">
49
- <img src="<?php echo $default['video']['video_image_url'] ?>">
50
- </a>
51
-
52
- <p class="yit-video-description">
53
- <?php echo $default['video']['video_description'] ?>
54
- </p>
55
-
56
- <p class="yith-video-iframe">
57
- <iframe src="//player.vimeo.com/video/<?php echo $default['video']['video_id'] ?>?title=0&amp;byline=0&amp;portrait=0" width="853" height="480" frameborder="0"></iframe>
58
- </p>
59
- <?php endif ?>
60
- <?php if ( isset( $default['image'] ) && !empty( $default['image'] ) ): ?>
61
- <a href="<?php echo $default['image']['image_link'] ?>" target="_blank" class="yith-image-frame">
62
- <img src="<?php echo $default['image']['image_url'] ?>">
63
- </a>
64
- <?php endif ?>
65
- <?php if ( isset( $default['description_first_column'] ) && $default['description_first_column'] != '' ): ?>
66
- <p><?php echo $default['description_first_column'] ?></p>
67
- <?php endif ?>
68
- </div>
69
- <div class="column two">
70
- <h2><?php echo $default['title_second_column'] ?>?</h2>
71
-
72
- <p><?php echo $default['description_second_column'] ?></p>
73
-
74
- <?php if ( isset( $default['button'] ) && !empty( $default['button'] ) ): ?>
75
- <p>
76
- <a class="button-primary" href="<?php echo $default['button']['href'] ?>" target="_blank"><?php echo $default['button']['title'] ?></a>
77
- </p>
78
- <?php endif ?>
79
- </div>
80
- </div>
81
- </div>
82
- </div>
83
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/templates/privacy/html-policy-content.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @var array $sections
4
+ */
5
+ ?>
6
+ <div class="wp-suggested-text">
7
+ <?php do_action( 'yith_plugin_fw_privacy_guide_content_before' ); ?>
8
+
9
+ <?php
10
+ foreach ( $sections as $key => $section ) {
11
+ $action = "yith_plugin_fw_privacy_guide_content_{$key}";
12
+ $content = apply_filters( 'yith_plugin_fw_privacy_guide_content', '', $key );
13
+
14
+ if ( has_action( $action ) || !empty( $section[ 'tutorial' ] ) || !empty( $section[ 'description' ] ) || $content ) {
15
+ if ( !empty( $section[ 'title' ] ) ) {
16
+ echo "<h2>{$section['title']}</h2>";
17
+ }
18
+
19
+ if ( !empty( $section[ 'tutorial' ] ) ) {
20
+ echo "<p class='privacy-policy-tutorial'>{$section['tutorial']}</p>";
21
+ }
22
+
23
+ if ( !empty( $section[ 'description' ] ) ) {
24
+ echo "<p>{$section['description']}</p>";
25
+ }
26
+
27
+ if ( !empty( $content ) ) {
28
+ echo $content;
29
+ }
30
+ }
31
+
32
+ do_action( $action );
33
+ }
34
+ ?>
35
+
36
+ <?php do_action( 'yith_plugin_fw_privacy_guide_content_after' ); ?>
37
+ </div>
plugin-fw/templates/upgrade/changelog.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Plugin 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
+ * @var string $plugin_name
11
+ * @var string $changelog
12
+ *
13
+ */
14
+ ?>
15
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
16
+ <head>
17
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
18
+ <meta name="viewport" content="width=device-width">
19
+ <meta name="robots" content="noindex,follow">
20
+ <title><?php echo $plugin_name ?> - Changelog</title>
21
+ <style type="text/css">
22
+ body {
23
+ background : #ffffff;
24
+ color : #444;
25
+ font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
26
+ font-size : 13px;
27
+ line-height : 1.4em;
28
+ padding : 10px;
29
+ }
30
+
31
+ h2.yith-plugin-changelog-title {
32
+ text-transform : uppercase;
33
+ font-size : 17px;
34
+ }
35
+
36
+ ul {
37
+ list-style : none;
38
+ padding : 0;
39
+ }
40
+
41
+ li {
42
+ display : list-item;
43
+ margin-bottom : 6px;
44
+ }
45
+ </style>
46
+ </head>
47
+ <body>
48
+ <h2 class='yith-plugin-changelog-title'><?php echo $plugin_name ?> - Changelog</h2>
49
+ <div class='yith-plugin-changelog'><?php echo $changelog ?></div>
50
+ </body>
51
+ </html>
plugin-fw/templates/upgrade/error.php ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Plugin 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
+ * @var string $plugin_name
11
+ * @var string $changelog
12
+ *
13
+ */
14
+ ?>
15
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
16
+ <head>
17
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
18
+ <meta name="viewport" content="width=device-width">
19
+ <meta name="robots" content="noindex,follow">
20
+ <title>WordPress › Error</title>
21
+ <style type="text/css">
22
+ html {
23
+ background : #f1f1f1;
24
+ }
25
+
26
+ .container {
27
+ background : #fff;
28
+ color : #444;
29
+ font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
30
+ margin : 2em auto;
31
+ padding : 1em 2em;
32
+ max-width : 700px;
33
+ -webkit-box-shadow : 0 1px 3px rgba(0, 0, 0, 0.13);
34
+ box-shadow : 0 1px 3px rgba(0, 0, 0, 0.13);
35
+ }
36
+
37
+ h1 {
38
+ border-bottom : 1px solid #dadada;
39
+ clear : both;
40
+ color : #666;
41
+ font-size : 24px;
42
+ margin : 30px 0 0 0;
43
+ padding : 0;
44
+ padding-bottom : 7px;
45
+ }
46
+
47
+ #error {
48
+ margin-top : 50px;
49
+ }
50
+
51
+ #error p {
52
+ font-size : 14px;
53
+ line-height : 1.5;
54
+ margin : 25px 0 20px;
55
+ }
56
+
57
+ #error code {
58
+ font-family : Consolas, Monaco, monospace;
59
+ }
60
+
61
+ ul li {
62
+ margin-bottom : 10px;
63
+ font-size : 14px;
64
+ }
65
+
66
+ a {
67
+ color : #0073aa;
68
+ }
69
+
70
+ a:hover,
71
+ a:active {
72
+ color : #00a0d2;
73
+ }
74
+
75
+ a:focus {
76
+ color : #124964;
77
+ -webkit-box-shadow : 0 0 0 1px #5b9dd9,
78
+ 0 0 2px 1px rgba(30, 140, 190, .8);
79
+ box-shadow : 0 0 0 1px #5b9dd9,
80
+ 0 0 2px 1px rgba(30, 140, 190, .8);
81
+ outline : none;
82
+ }
83
+
84
+ .button {
85
+ background : #f7f7f7;
86
+ border : 1px solid #ccc;
87
+ color : #555;
88
+ display : inline-block;
89
+ text-decoration : none;
90
+ font-size : 13px;
91
+ line-height : 26px;
92
+ height : 28px;
93
+ margin : 0;
94
+ padding : 0 10px 1px;
95
+ cursor : pointer;
96
+ -webkit-border-radius : 3px;
97
+ -webkit-appearance : none;
98
+ border-radius : 3px;
99
+ white-space : nowrap;
100
+ -webkit-box-sizing : border-box;
101
+ -moz-box-sizing : border-box;
102
+ box-sizing : border-box;
103
+
104
+ -webkit-box-shadow : 0 1px 0 #ccc;
105
+ box-shadow : 0 1px 0 #ccc;
106
+ vertical-align : top;
107
+ }
108
+
109
+ .button.button-large {
110
+ height : 30px;
111
+ line-height : 28px;
112
+ padding : 0 12px 2px;
113
+ }
114
+
115
+ .button:hover,
116
+ .button:focus {
117
+ background : #fafafa;
118
+ border-color : #999;
119
+ color : #23282d;
120
+ }
121
+
122
+ .button:focus {
123
+ border-color : #5b9dd9;
124
+ -webkit-box-shadow : 0 0 3px rgba(0, 115, 170, .8);
125
+ box-shadow : 0 0 3px rgba(0, 115, 170, .8);
126
+ outline : none;
127
+ }
128
+
129
+ .button:active {
130
+ background : #eee;
131
+ border-color : #999;
132
+ -webkit-box-shadow : inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
133
+ box-shadow : inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
134
+ -webkit-transform : translateY(1px);
135
+ -ms-transform : translateY(1px);
136
+ transform : translateY(1px);
137
+ }
138
+
139
+ </style>
140
+ </head>
141
+ <body>
142
+ <div id="error" class="container">
143
+ <p><?php echo $error ?></p>
144
+ </div>
145
+
146
+ </body>
147
+ </html>
plugin-fw/yit-plugin.php CHANGED
@@ -37,6 +37,8 @@ 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
 
41
  // load from theme folder...
42
  load_textdomain( 'yith-plugin-fw', get_template_directory() . '/core/plugin-fw/yith-plugin-fw-' . apply_filters( 'plugin_locale', get_locale(), 'yith-plugin-fw' ) . '.mo' )
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
 
43
  // load from theme folder...
44
  load_textdomain( 'yith-plugin-fw', get_template_directory() . '/core/plugin-fw/yith-plugin-fw-' . apply_filters( 'plugin_locale', get_locale(), 'yith-plugin-fw' ) . '.mo' )
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: 4.0
6
  Tested up to: 4.9
7
- Stable tag: 1.5.9
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -113,6 +113,12 @@ yith-woocommerce-catalog-mode-<WORDPRESS LOCALE >.mo
113
 
114
  == Changelog ==
115
 
 
 
 
 
 
 
116
  = Version 1.5.9 - Released: Jan 29, 2018 =
117
 
118
  * New: Support to WooCommerce 3.3.0 RC2
@@ -247,7 +253,7 @@ yith-woocommerce-catalog-mode-<WORDPRESS LOCALE >.mo
247
 
248
  == Upgrade Notice ==
249
 
250
- Last Stable Tag 1.5.9
251
 
252
  == Suggestions ==
253
 
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: 4.0
6
  Tested up to: 4.9
7
+ Stable tag: 1.6.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
113
 
114
  == Changelog ==
115
 
116
+ = Version 1.6.0 - Released: May 24, 2018 =
117
+
118
+ * New: Support to Wordpress 4.9.6
119
+ * New: Support to WooCommerce 3.4.0
120
+ * Update: plugin framework
121
+
122
  = Version 1.5.9 - Released: Jan 29, 2018 =
123
 
124
  * New: Support to WooCommerce 3.3.0 RC2
253
 
254
  == Upgrade Notice ==
255
 
256
+ Last Stable Tag 1.6.0
257
 
258
  == Suggestions ==
259