YITH WooCommerce Compare - Version 2.3.23

Version Description

Released on 19 August 2020

  • New: Support for WooCommerce 4.4
  • New: Support for WordPress 5.5
  • Update: Plugin framework
Download this release

Release Info

Developer yithemes
Plugin Icon 128x128 YITH WooCommerce Compare
Version 2.3.23
Comparing to
See all releases

Code changes from version 2.3.22 to 2.3.23

Files changed (38) hide show
  1. README.txt +13 -6
  2. init.php +4 -4
  3. plugin-fw/.jshintrc +0 -26
  4. plugin-fw/Gruntfile.js +0 -96
  5. plugin-fw/assets/css/admin.css +111 -97
  6. plugin-fw/assets/css/yit-plugin-panel.css +148 -15
  7. plugin-fw/assets/css/yith-fields.css +101 -19
  8. plugin-fw/assets/fonts/yith-icon.eot +0 -0
  9. plugin-fw/assets/fonts/yith-icon.svg +0 -0
  10. plugin-fw/assets/fonts/yith-icon.ttf +0 -0
  11. plugin-fw/assets/fonts/yith-icon.woff +0 -0
  12. plugin-fw/assets/js/yit-plugin-panel.js +23 -0
  13. plugin-fw/assets/js/yit-plugin-panel.min.js +1 -5
  14. plugin-fw/assets/js/yith-fields.min.js +1 -30
  15. plugin-fw/assets/js/yith-gutenberg.js +210 -209
  16. plugin-fw/assets/js/yith-gutenberg.min.js +1 -1
  17. plugin-fw/assets/js/yith-system-info.js +17 -11
  18. plugin-fw/assets/js/yith-system-info.min.js +1 -1
  19. plugin-fw/init.php +2 -2
  20. plugin-fw/languages/yith-plugin-fw-el.mo +0 -0
  21. plugin-fw/languages/yith-plugin-fw-el.po +203 -135
  22. plugin-fw/languages/yith-plugin-fw-es_ES.po +201 -130
  23. plugin-fw/languages/yith-plugin-fw-it_IT.mo +0 -0
  24. plugin-fw/languages/yith-plugin-fw-it_IT.po +202 -142
  25. plugin-fw/languages/yith-plugin-fw-nl_NL.po +200 -127
  26. plugin-fw/languages/yith-plugin-fw.pot +165 -104
  27. plugin-fw/lib/yit-assets.php +105 -91
  28. plugin-fw/lib/yit-plugin-panel-wc.php +85 -21
  29. plugin-fw/lib/yit-plugin-panel.php +1174 -1158
  30. plugin-fw/lib/yith-system-status.php +286 -78
  31. plugin-fw/package.json +0 -21
  32. plugin-fw/templates/fields/inline-fields.php +60 -0
  33. plugin-fw/templates/fields/textarea-editor.php +3 -1
  34. plugin-fw/templates/fields/toggle-element.php +6 -1
  35. plugin-fw/templates/panel/woocommerce/woocommerce-form.php +4 -2
  36. plugin-fw/templates/privacy/html-policy-content.php +36 -36
  37. plugin-fw/templates/sysinfo/system-information-panel.php +147 -169
  38. plugin-fw/yit-functions.php +23 -10
README.txt CHANGED
@@ -3,13 +3,13 @@
3
  Contributors: yithemes
4
  Tags: yith, woocommerce compare, compare products, product compare, product comparison
5
  Requires at least: 4.0
6
- Tested up to: 5.4
7
- Stable tag: 2.3.22
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  YITH WooCommerce Compare allows you to compare more products of your shop in one complete table.
12
- WooCommerce Compatible up to 4.2
13
 
14
  == Description ==
15
 
@@ -19,7 +19,7 @@ set with the woocommerce attributes in the product configuration.
19
  You can also add a simple widget with the list of products the users have added, where you can manage them.
20
  Also you can simply customize the compare table with your style, by editing the specific template.
21
 
22
- Full documentation is available [here](http://yithemes.com/docs-plugins/yith-woocommerce-compare).
23
 
24
  This plugin is 100% compatible with [WPML](http://wpml.org/?aid=24889&affiliate_key=Qn1wDeBNTcZV)
25
 
@@ -66,6 +66,12 @@ yith-woocommerce-compare-<WORDPRESS LOCALE >.mo
66
 
67
  == Changelog ==
68
 
 
 
 
 
 
 
69
  = 2.3.22 = Released on 03 June 2020
70
 
71
  * New: Support for WooCommerce 4.2
@@ -396,7 +402,8 @@ Full documentation is available [here](http://yithemes.com/docs-plugins/yith-woo
396
 
397
  == Upgrade notice ==
398
 
399
- = 2.3.22 = Released on 03 June 2020
400
 
401
- * New: Support for WooCommerce 4.2
 
402
  * Update: Plugin framework
3
  Contributors: yithemes
4
  Tags: yith, woocommerce compare, compare products, product compare, product comparison
5
  Requires at least: 4.0
6
+ Tested up to: 5.5
7
+ Stable tag: 2.3.23
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  YITH WooCommerce Compare allows you to compare more products of your shop in one complete table.
12
+ WooCommerce Compatible up to 4.4
13
 
14
  == Description ==
15
 
19
  You can also add a simple widget with the list of products the users have added, where you can manage them.
20
  Also you can simply customize the compare table with your style, by editing the specific template.
21
 
22
+ Full documentation is available [here](https://yithemes.com/docs-plugins/yith-woocommerce-compare).
23
 
24
  This plugin is 100% compatible with [WPML](http://wpml.org/?aid=24889&affiliate_key=Qn1wDeBNTcZV)
25
 
66
 
67
  == Changelog ==
68
 
69
+ = 2.3.23 = Released on 19 August 2020
70
+
71
+ * New: Support for WooCommerce 4.4
72
+ * New: Support for WordPress 5.5
73
+ * Update: Plugin framework
74
+
75
  = 2.3.22 = Released on 03 June 2020
76
 
77
  * New: Support for WooCommerce 4.2
402
 
403
  == Upgrade notice ==
404
 
405
+ = 2.3.23 = Released on 19 August 2020
406
 
407
+ * New: Support for WooCommerce 4.4
408
+ * New: Support for WordPress 5.5
409
  * Update: Plugin framework
init.php CHANGED
@@ -3,17 +3,17 @@
3
  * Plugin Name: YITH WooCommerce Compare
4
  * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-compare/
5
  * Description: The <code><strong>YITH WooCommerce Compare</strong></code> plugin allow you to compare in a simple and efficient way products on sale in your shop and analyze their main features in a single table. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
- * Version: 2.3.22
7
  * Author: YITH
8
  * Author URI: https://yithemes.com/
9
  * Text Domain: yith-woocommerce-compare
10
  * Domain Path: /languages/
11
  * WC requires at least: 3.8
12
- * WC tested up to: 4.2
13
  *
14
  * @author YITH
15
  * @package YITH WooCommerce Compare
16
- * @version 2.3.22
17
  */
18
  /* Copyright 2020 Your Inspiration Themes (email : plugins@yithemes.com)
19
 
@@ -58,7 +58,7 @@ if ( ! function_exists( 'yith_plugin_registration_hook' ) ) {
58
  register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
59
 
60
  if ( ! defined( 'YITH_WOOCOMPARE_VERSION' ) ){
61
- define( 'YITH_WOOCOMPARE_VERSION', '2.3.22' );
62
  }
63
  if ( ! defined( 'YITH_WOOCOMPARE_FREE_INIT' ) ) {
64
  define( 'YITH_WOOCOMPARE_FREE_INIT', plugin_basename( __FILE__ ) );
3
  * Plugin Name: YITH WooCommerce Compare
4
  * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-compare/
5
  * Description: The <code><strong>YITH WooCommerce Compare</strong></code> plugin allow you to compare in a simple and efficient way products on sale in your shop and analyze their main features in a single table. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
+ * Version: 2.3.23
7
  * Author: YITH
8
  * Author URI: https://yithemes.com/
9
  * Text Domain: yith-woocommerce-compare
10
  * Domain Path: /languages/
11
  * WC requires at least: 3.8
12
+ * WC tested up to: 4.4
13
  *
14
  * @author YITH
15
  * @package YITH WooCommerce Compare
16
+ * @version 2.3.23
17
  */
18
  /* Copyright 2020 Your Inspiration Themes (email : plugins@yithemes.com)
19
 
58
  register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
59
 
60
  if ( ! defined( 'YITH_WOOCOMPARE_VERSION' ) ){
61
+ define( 'YITH_WOOCOMPARE_VERSION', '2.3.23' );
62
  }
63
  if ( ! defined( 'YITH_WOOCOMPARE_FREE_INIT' ) ) {
64
  define( 'YITH_WOOCOMPARE_FREE_INIT', plugin_basename( __FILE__ ) );
plugin-fw/.jshintrc DELETED
@@ -1,26 +0,0 @@
1
- {
2
- "boss": true,
3
- "curly": true,
4
- "eqeqeq": true,
5
- "eqnull": true,
6
- "es3": true,
7
- "expr": true,
8
- "immed": true,
9
- "noarg": true,
10
- "onevar": true,
11
- "trailing": true,
12
- "undef": true,
13
- "unused": true,
14
-
15
- "browser": true,
16
-
17
- "globals": {
18
- "_": false,
19
- "Backbone": false,
20
- "jQuery": true,
21
- "console": true,
22
- "alert": true,
23
- "JSON": false,
24
- "wp": false
25
- }
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/Gruntfile.js DELETED
@@ -1,96 +0,0 @@
1
- /**
2
- * in vagrant ssh, launch:
3
- * - npm install
4
- * - grunt (or use npm scripts in package.json)
5
- */
6
-
7
- const potInfo = {
8
- potFilename: 'yith-plugin-fw.pot',
9
- potHeaders : {
10
- poedit : true, // Includes common Poedit headers.
11
- 'x-poedit-keywordslist': true, // Include a list of all possible gettext functions.
12
- 'report-msgid-bugs-to' : 'YITH <plugins@yithemes.com>',
13
- 'language-team' : 'YITH <info@yithemes.com>'
14
- }
15
- };
16
-
17
- module.exports = function ( grunt ) {
18
- 'use strict';
19
-
20
- grunt.initConfig( {
21
- dirs: {
22
- css: 'assets/css',
23
- js : 'assets/js'
24
- },
25
-
26
- uglify: {
27
- options: {
28
- ie8 : true,
29
- parse : {
30
- strict: false
31
- },
32
- output: {
33
- comments: /@license|@preserve|^!/
34
- }
35
- },
36
- common : {
37
- files: [{
38
- expand: true,
39
- cwd : '<%= dirs.js %>/',
40
- src : ['*.js', '!*.min.js'],
41
- dest : '<%= dirs.js %>/',
42
- rename: function ( dst, src ) {
43
- // To keep the source js files and make new files as `*.min.js`:
44
- return dst + '/' + src.replace( '.js', '.min.js' );
45
- }
46
- }]
47
- }
48
- },
49
-
50
- jshint: {
51
- options: {
52
- jshintrc: '.jshintrc'
53
- },
54
- all : [
55
- '<%= dirs.js %>/*.js',
56
- '!<%= dirs.js %>/*.min.js'
57
- ]
58
- },
59
-
60
-
61
- makepot: {
62
- options: {
63
- type : 'wp-plugin',
64
- domainPath : 'languages',
65
- domain : 'yith-plugin-fw',
66
- potHeaders : potInfo.potHeaders,
67
- updatePoFiles: true
68
- },
69
- dist : {
70
- options: {
71
- potFilename: potInfo.potFilename,
72
- exclude : [
73
- 'node_modules/.*',
74
- 'tests/.*',
75
- 'tmp/.*'
76
- ]
77
- }
78
- }
79
- }
80
-
81
- } );
82
-
83
- // Load NPM tasks to be used here.
84
- grunt.loadNpmTasks( 'grunt-wp-i18n' );
85
-
86
- // Use uglify-es (instead of uglify) to uglify also JS for ES6.
87
- grunt.loadNpmTasks( 'grunt-contrib-uglify-es' );
88
-
89
- // Register tasks.
90
- grunt.registerTask( 'js', ['uglify'] );
91
- grunt.registerTask( 'i18n', ['makepot'] );
92
- grunt.registerTask( 'default', [
93
- 'js',
94
- 'i18n'
95
- ] );
96
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/assets/css/admin.css CHANGED
@@ -3,54 +3,54 @@
3
  ------------------------*/
4
  #wpadminbar .yith-debug-admin-bar div,
5
  #wpadminbar .yith-debug-admin-bar:hover div {
6
- background: #05789c !important;
7
- color: #fff !important;
8
  }
9
 
10
  #wpadminbar .yith-debug-admin-bar a,
11
  #wpadminbar .yith-debug-admin-bar strong {
12
- color: #fff !important;
13
  }
14
 
15
  #wpadminbar .yith-debug-admin-bar strong {
16
- font-weight: 600;
17
  }
18
 
19
  #wpadminbar .yith-debug-admin-bar-post-meta .ab-empty-item,
20
  #wpadminbar .yith-debug-admin-bar-option .ab-empty-item {
21
- display: none;
22
  }
23
 
24
  #wpadminbar #wp-admin-bar-yith-debug-admin-bar-post-meta-default,
25
  #wpadminbar #wp-admin-bar-yith-debug-admin-bar-option-default {
26
- padding: 0;
27
- max-height: 500px;
28
- overflow-y: auto;
29
  }
30
 
31
  #wpadminbar .yith-debug-admin-bar pre {
32
- padding: 10px;
33
- line-height: 1.5em;
34
  }
35
 
36
  .notice-yith {
37
- margin-left: 0;
38
- border-left-color: #acc327;
39
  }
40
 
41
  .notice-yith.notice-alt {
42
- background-color: #ecf7ed;
43
  }
44
 
45
  .yith-promo-banner-image-link {
46
- display: block;
47
- margin-bottom: 15px;
48
  }
49
 
50
  .yith-promo-banner-image {
51
- max-width: 100%;
52
- margin: 0 auto;
53
- display: block;
54
  }
55
 
56
  /*-----------------------
@@ -58,20 +58,20 @@
58
  ------------------------*/
59
 
60
  .yith-feeds-logo {
61
- display: table-cell;
62
- background: #005b7c;
63
- padding: 5px;
64
- border-radius: 50%;
65
- margin-right: 10px;
66
- vertical-align: text-bottom;
67
- width: 18px;
68
- height: auto;
69
- vertical-align: middle;
70
  }
71
 
72
  .yith-feeds-plugin-name {
73
- display: table-cell;
74
- vertical-align: middle;
75
  }
76
 
77
  /*-----------------------
@@ -79,118 +79,132 @@
79
  ------------------------*/
80
  @media screen and (min-width: 783px) {
81
 
82
- .auto-fold #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu-head {
83
- width: 100%;
84
- }
85
 
86
- #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu {
87
- min-width: 320px;
88
- display: flex;
89
- flex-flow: row wrap;
90
- }
91
 
92
- #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head) {
93
- width: 50%;
94
- border-left: 1px solid #555;
95
- box-sizing: border-box;
96
- }
97
 
98
- #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head):nth-child(2n) {
99
- border-left: none;
100
- }
101
 
102
- #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu {
103
- min-width: 480px;
104
- display: flex;
105
- flex-flow: row wrap;
106
- }
107
 
108
- #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head) {
109
- width: calc(100% / 3);
110
- border-left: 1px solid #555;
111
- box-sizing: border-box;
112
- }
113
 
114
- #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head):nth-child(3n + 2) {
115
- border-left: none;
116
- }
117
  }
118
 
119
  /*---------------------------
120
  YITH System Information
121
  ----------------------------*/
122
  .yith-phpinfo img {
123
- float: right;
124
- border: 0;
 
 
 
 
 
 
 
 
 
125
  }
126
 
127
  #yith-system-alert span.yith-logo,
128
- .yith-system-info h1 span.yith-logo {
129
- border-radius: 50%;
130
- background: #265b7a;
131
- height: 30px;
132
- width: 30px;
133
- display: flex;
134
- text-align: center;
135
- margin: 0 10px 0 0;
136
- float: left;
137
- align-items: center;
138
- justify-content: center;
139
  }
140
 
141
  .yith-system-info table {
142
- margin: 20px 0;
143
  }
144
 
145
  .yith-system-info table th {
146
- font-weight: bold;
147
- width: 25%;
148
- padding: 20px 12px;
149
  }
150
 
151
  .yith-system-info table td {
152
- word-break: break-all;
153
- padding: 20px 12px;
154
  }
155
 
156
  .yith-system-info table td.requirement-value {
157
- font-size: 14px;
158
- vertical-align: middle;
159
- text-align: left;
160
- color: #5da726;
161
- line-height: 19px;
162
- width: 90px;
163
  }
164
 
165
  .yith-system-info table td.requirement-value.has-errors {
166
- color: #a00;
167
  }
168
 
169
  .yith-system-info table td.requirement-value.has-warnings {
170
- color: #ffa200;
171
  }
172
 
173
  .yith-system-info table td.requirement-messages ul {
174
- margin: 0;
175
- padding: 0 0 10px 0;
176
- list-style: none!important;
177
  }
178
 
179
  .yith-system-info table td.requirement-messages ul li {
180
- margin-bottom: 3px;
 
 
 
 
 
181
  }
182
 
183
- .yith-system-info table td.requirement-messages ul li span.error {
184
- color: #a00;
185
- font-weight: bold;
186
  }
187
 
188
- .yith-system-info table td.requirement-messages ul li span.warning {
189
- color: #a00;
190
- font-weight: bold;
191
  }
192
 
193
  .yith-system-info-menu {
194
- font-weight: bold;
195
- font-size: 11px !important;
196
  }
3
  ------------------------*/
4
  #wpadminbar .yith-debug-admin-bar div,
5
  #wpadminbar .yith-debug-admin-bar:hover div {
6
+ background: #05789c !important;
7
+ color: #fff !important;
8
  }
9
 
10
  #wpadminbar .yith-debug-admin-bar a,
11
  #wpadminbar .yith-debug-admin-bar strong {
12
+ color: #fff !important;
13
  }
14
 
15
  #wpadminbar .yith-debug-admin-bar strong {
16
+ font-weight: 600;
17
  }
18
 
19
  #wpadminbar .yith-debug-admin-bar-post-meta .ab-empty-item,
20
  #wpadminbar .yith-debug-admin-bar-option .ab-empty-item {
21
+ display: none;
22
  }
23
 
24
  #wpadminbar #wp-admin-bar-yith-debug-admin-bar-post-meta-default,
25
  #wpadminbar #wp-admin-bar-yith-debug-admin-bar-option-default {
26
+ padding: 0;
27
+ max-height: 500px;
28
+ overflow-y: auto;
29
  }
30
 
31
  #wpadminbar .yith-debug-admin-bar pre {
32
+ padding: 10px;
33
+ line-height: 1.5em;
34
  }
35
 
36
  .notice-yith {
37
+ margin-left: 0;
38
+ border-left-color: #acc327;
39
  }
40
 
41
  .notice-yith.notice-alt {
42
+ background-color: #ecf7ed;
43
  }
44
 
45
  .yith-promo-banner-image-link {
46
+ display: block;
47
+ margin-bottom: 15px;
48
  }
49
 
50
  .yith-promo-banner-image {
51
+ max-width: 100%;
52
+ margin: 0 auto;
53
+ display: block;
54
  }
55
 
56
  /*-----------------------
58
  ------------------------*/
59
 
60
  .yith-feeds-logo {
61
+ display: table-cell;
62
+ background: #005b7c;
63
+ padding: 5px;
64
+ border-radius: 50%;
65
+ margin-right: 10px;
66
+ vertical-align: text-bottom;
67
+ width: 18px;
68
+ height: auto;
69
+ vertical-align: middle;
70
  }
71
 
72
  .yith-feeds-plugin-name {
73
+ display: table-cell;
74
+ vertical-align: middle;
75
  }
76
 
77
  /*-----------------------
79
  ------------------------*/
80
  @media screen and (min-width: 783px) {
81
 
82
+ .auto-fold #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu-head {
83
+ width: 100%;
84
+ }
85
 
86
+ #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu {
87
+ min-width: 320px;
88
+ display: flex;
89
+ flex-flow: row wrap;
90
+ }
91
 
92
+ #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head) {
93
+ width: 50%;
94
+ border-left: 1px solid #555;
95
+ box-sizing: border-box;
96
+ }
97
 
98
+ #adminmenu .yith-plugin-fw-menu-2-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head):nth-child(2n) {
99
+ border-left: none;
100
+ }
101
 
102
+ #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu {
103
+ min-width: 480px;
104
+ display: flex;
105
+ flex-flow: row wrap;
106
+ }
107
 
108
+ #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head) {
109
+ width: calc(100% / 3);
110
+ border-left: 1px solid #555;
111
+ box-sizing: border-box;
112
+ }
113
 
114
+ #adminmenu .yith-plugin-fw-menu-3-columns.wp-not-current-submenu .wp-submenu li:not(.wp-submenu-head):nth-child(3n + 2) {
115
+ border-left: none;
116
+ }
117
  }
118
 
119
  /*---------------------------
120
  YITH System Information
121
  ----------------------------*/
122
  .yith-phpinfo img {
123
+ float: right;
124
+ border: 0;
125
+ }
126
+
127
+ .yith-system-info h2.yith-sysinfo-title {
128
+ color: #00729f;
129
+ font-size: 25px;
130
+ text-transform: uppercase;
131
+ font-weight: 800;
132
+ line-height: 25px;
133
+ padding: 20px 0;
134
  }
135
 
136
  #yith-system-alert span.yith-logo,
137
+ .yith-system-info h2 span.yith-logo {
138
+ border-radius: 50%;
139
+ background: #265b7a;
140
+ height: 30px;
141
+ width: 30px;
142
+ display: flex;
143
+ text-align: center;
144
+ margin: 0 10px 0 0;
145
+ float: left;
146
+ align-items: center;
147
+ justify-content: center;
148
  }
149
 
150
  .yith-system-info table {
151
+ margin: 20px 0;
152
  }
153
 
154
  .yith-system-info table th {
155
+ font-weight: bold;
156
+ width: 25%;
157
+ padding: 20px 12px;
158
  }
159
 
160
  .yith-system-info table td {
161
+ word-break: break-all;
162
+ padding: 20px 12px;
163
  }
164
 
165
  .yith-system-info table td.requirement-value {
166
+ font-size: 14px;
167
+ vertical-align: middle;
168
+ text-align: left;
169
+ color: #5da726;
170
+ line-height: 19px;
171
+ width: 90px;
172
  }
173
 
174
  .yith-system-info table td.requirement-value.has-errors {
175
+ color: #a00;
176
  }
177
 
178
  .yith-system-info table td.requirement-value.has-warnings {
179
+ color: #ffa200;
180
  }
181
 
182
  .yith-system-info table td.requirement-messages ul {
183
+ margin: 0;
184
+ padding: 0 0 10px 0;
185
+ list-style: none !important;
186
  }
187
 
188
  .yith-system-info table td.requirement-messages ul li {
189
+ margin-bottom: 3px;
190
+ }
191
+
192
+ .yith-system-info table td.requirement-messages span.error {
193
+ color: #a00;
194
+ font-weight: bold;
195
  }
196
 
197
+ .yith-system-info table td.requirement-messages span.warning {
198
+ color: #a00;
199
+ font-weight: bold;
200
  }
201
 
202
+ .yith-system-info table textarea.yith-system-info-debug {
203
+ width: 100%;
204
+ height: 400px;
205
  }
206
 
207
  .yith-system-info-menu {
208
+ font-weight: bold;
209
+ font-size: 11px !important;
210
  }
plugin-fw/assets/css/yit-plugin-panel.css CHANGED
@@ -46,6 +46,11 @@
46
  margin-right : 15px;
47
  }
48
 
 
 
 
 
 
49
  .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container{
50
  border: 1px solid #ddd;
51
  border-top : 0;
@@ -83,11 +88,14 @@
83
  .yith-plugin-fw-wp-page-wrapper .wrap {
84
  border : 1px solid #d8d8d8;
85
  border-top : 0;
86
- margin : 0 15px 0 0;
87
  background : #fff;
88
  padding : 20px;
89
  box-sizing : border-box;
90
  }
 
 
 
91
 
92
  #wpwrap .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper {
93
  padding-bottom : 0;
@@ -99,7 +107,7 @@
99
 
100
  .yith-plugin-fw-wp-page-wrapper h1.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper h2.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
101
  padding-top : 9px;
102
- padding-bottom : 0;
103
  }
104
 
105
  .yith-plugin-fw-wp-page-wrapper .wrap h1.wp-heading-inline {
@@ -518,8 +526,15 @@
518
  margin-right : 15px;
519
  }
520
 
 
 
 
 
 
 
 
521
  .yit-admin-panel-content-wrap {
522
- width : 100%;
523
  display : block;
524
  }
525
 
@@ -554,30 +569,38 @@
554
  */
555
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav {
556
  background : #fff;
557
- padding : 10px 20px;
558
  box-sizing : border-box;
559
- margin-right : 15px;
560
  border-left : 1px solid #d8d8d8;
561
  border-right : 1px solid #d8d8d8;
 
 
 
 
562
  }
563
-
564
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav h3.nav-tab-wrapper {
565
  text-transform : uppercase;
566
  line-height : inherit;
567
  font-weight : 600;
 
 
 
 
 
 
 
568
  }
569
 
570
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab {
571
  line-height : 1.71428571;
572
  margin-left : 0;
573
  margin-right : 0;
574
- background-color : #fff;
575
  color : #336374;
576
  font-size : 13px;
577
- padding : 8px 20px 9px;
578
  border : 0;
579
- border-left : 1px solid #d8d8d8;
580
- border-top : 1px solid #d8d8d8;
581
  }
582
 
583
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__title,
@@ -595,10 +618,6 @@
595
  color : inherit;
596
  }
597
 
598
- .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab:last-child {
599
- border-right : 1px solid #d8d8d8;
600
- }
601
-
602
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .yith-nav-sub-tab--highlight {
603
  color : #fff;
604
  background : #2a8db0;
@@ -607,7 +626,121 @@
607
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab-active {
608
  color : #2a8db0;
609
  background : #fff;
610
- border-bottom : 1px solid #fff;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
611
  }
612
 
613
  /* === Responsive === */
46
  margin-right : 15px;
47
  }
48
 
49
+ .yith-plugin-fw-panel-custom-tab-container > h2 {
50
+ border : none;
51
+ padding : 15px 0;
52
+ }
53
+
54
  .yith-plugin-ui .yith-plugin-fw-panel-custom-tab-container{
55
  border: 1px solid #ddd;
56
  border-top : 0;
88
  .yith-plugin-fw-wp-page-wrapper .wrap {
89
  border : 1px solid #d8d8d8;
90
  border-top : 0;
91
+ margin: 0px 15px 0 0;
92
  background : #fff;
93
  padding : 20px;
94
  box-sizing : border-box;
95
  }
96
+ .yith-plugin-fw-wp-page-wrapper .wrap.subnav-wrap .wrap{
97
+ margin-top: -20px;
98
+ }
99
 
100
  #wpwrap .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-fw-wp-page-wrapper .yith-plugin-ui h2.nav-tab-wrapper {
101
  padding-bottom : 0;
107
 
108
  .yith-plugin-fw-wp-page-wrapper h1.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper h2.nav-tab-wrapper, .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
109
  padding-top : 9px;
110
+ padding-bottom: 0;
111
  }
112
 
113
  .yith-plugin-fw-wp-page-wrapper .wrap h1.wp-heading-inline {
526
  margin-right : 15px;
527
  }
528
 
529
+ .yith-plugin-ui .yit-admin-panel-container {
530
+ position : relative;
531
+ margin-right : 15px;
532
+ margin-top: -3px;
533
+ z-index: 0;
534
+ border-top: 1px solid #dbdada;
535
+ }
536
  .yit-admin-panel-content-wrap {
537
+ width: auto;
538
  display : block;
539
  }
540
 
569
  */
570
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav {
571
  background : #fff;
572
+ padding: 10px 14px 0px 20px;
573
  box-sizing : border-box;
574
+ margin-right: 15px;
575
  border-left : 1px solid #d8d8d8;
576
  border-right : 1px solid #d8d8d8;
577
+ margin-top: -2px;
578
+ }
579
+ .yith-plugin-ui .yith-plugin-fw-wp-page-wrapper .wrap{
580
+ margin-top: -29px;
581
  }
 
582
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav h3.nav-tab-wrapper {
583
  text-transform : uppercase;
584
  line-height : inherit;
585
  font-weight : 600;
586
+ margin-right: 21px;
587
+ box-sizing: border-box;
588
+ background-color: #f1f1f1;
589
+ padding-top: 0;
590
+ border: 1px solid #ccc;
591
+ border-bottom: 0;
592
+ margin-top: 20px;
593
  }
594
 
595
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab {
596
  line-height : 1.71428571;
597
  margin-left : 0;
598
  margin-right : 0;
599
+ background-color: #f1f1f1;
600
  color : #336374;
601
  font-size : 13px;
602
+ padding: 8px 20px 9px;
603
  border : 0;
 
 
604
  }
605
 
606
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab .yith-nav-sub-tab__title,
618
  color : inherit;
619
  }
620
 
 
 
 
 
621
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .yith-nav-sub-tab--highlight {
622
  color : #fff;
623
  background : #2a8db0;
626
  .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab-active {
627
  color : #2a8db0;
628
  background : #fff;
629
+ border-bottom: 2px solid #fff;
630
+ }
631
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav .nav-tab:first-child{
632
+ border:0;
633
+ }
634
+
635
+ .yith-plugin-fw-wp-page-wrapper.yith-current-subtab-opened > .wrap {
636
+ /* padding-top: 0; */
637
+ }
638
+ .yith-plugin-fw-wp-page-wrapper .nav-tab-wrapper {
639
+ border-bottom: 2px solid #e9e9e9;
640
+ margin: 0;
641
+ padding-top: 9px;
642
+ padding-bottom: 0;
643
+ line-height: inherit;
644
+ }
645
+
646
+ div.nav-subtab-wrap {
647
+ position: absolute;
648
+ top: 100%;
649
+ left: 1px;
650
+ padding-top: 10px;
651
+ visibility: hidden; /* hides sub-menu */
652
+ }
653
+ ul.nav-subtab {
654
+ opacity: 0;
655
+ background-color: #fff;
656
+ transition: max-height 0.5s ease-in;
657
+ max-height: 0;
658
+ z-index: 100;
659
+ overflow: hidden;
660
+ border: 1px solid #f2f2f2;
661
+ padding: 14px 15px;
662
+ }
663
+ ul.yith-plugin-fw-tabs {
664
+ display: block;
665
+ margin: 0;
666
+ }
667
+
668
+ li.yith-plugin-fw-tab-element {
669
+ position: relative;
670
+ margin: 0;
671
+ padding: 0;
672
+ display: inline-block;
673
+ height: 37px;
674
+ overflow: visible;
675
+ z-index:10;
676
+ }
677
+ .yith-plugin-fw-panel-custom-tab-container {
678
+ margin-top: -2px;
679
+ }
680
+
681
+ li.yith-plugin-fw-tab-element:hover{
682
+ cursor:pointer;
683
+ }
684
+ li.nav-subtab-item{
685
+ padding: 3px 0 0;
686
+ }
687
+ li.nav-subtab-item a {
688
+ font-size: 12px;
689
+ text-decoration: none;
690
+ letter-spacing: 0.05em;
691
+ color: #336374;
692
+ }
693
+ li.nav-subtab-item a:hover{
694
+ color:#228fb6;
695
+ }
696
+
697
+ li.yith-plugin-fw-tab-element a:hover .nav-subtab-wrap,
698
+ li.yith-plugin-fw-tab-element:hover .nav-subtab-wrap {
699
+ visibility: visible; /* shows sub-menu */
700
+ }
701
+
702
+ li.yith-plugin-fw-tab-element a:hover ul.nav-subtab,
703
+ li.yith-plugin-fw-tab-element:hover ul.nav-subtab{
704
+ max-height: 200px;
705
+ -webkit-box-shadow: -2px 2px 10px rgba(0, 111, 101, 0.27);
706
+ -moz-box-shadow: -2px 2px 10px rgba(0, 111, 101, 0.27);
707
+ box-shadow: -2px 2px 10px rgba(0, 111, 101, 0.27);
708
+ opacity: 1;
709
+ transition-delay: 0s, 0s, 0.3s;
710
+ min-width: 180px;
711
+ }
712
+
713
+ li.yith-plugin-fw-tab-element a.nav-tab i {
714
+ margin-left: 10px;
715
+ font-size:12px;
716
+ }
717
+
718
+ li.yith-plugin-fw-tab-element a.nav-tab i:before {
719
+ color: #fff;
720
+ }
721
+
722
+ .yith-plugin-fw-panel .woocommerce-page{
723
+ margin-top:-2px;
724
+ }
725
+
726
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container {
727
+ margin-top: 0;
728
+ padding-top: 0;
729
+ }
730
+
731
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .yit-admin-panel-container,
732
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .wrap.subnav-wrap {
733
+ border: 1px solid #d8d8d8;
734
+ border-top: 0;
735
+ margin: -2px 15px 0 0;
736
+ background: #fff;
737
+ padding: 20px;
738
+ box-sizing: border-box;
739
+ }
740
+
741
+ .yith-plugin-ui .yith-plugin-fw-sub-tabs-nav ~ .wrap.subnav-wrap .wrap,
742
+ .yith-plugin-ui .yit-admin-panel-content-wrap.has-subnav {
743
+ margin: -20px 15px 0 0;
744
  }
745
 
746
  /* === Responsive === */
plugin-fw/assets/css/yith-fields.css CHANGED
@@ -22,6 +22,12 @@
22
  width : 100%;
23
  }
24
 
 
 
 
 
 
 
25
  .yith-plugin-fw-field-wrapper span.desc {
26
  display : block;
27
  width : 100%;
@@ -280,17 +286,22 @@ ul.yit-icons-manager-list li.active {
280
 
281
  .yith-plugin-fw-checkbox-array__row {
282
  margin-bottom : 10px;
 
283
  }
284
 
285
  .yith-plugin-fw-checkbox-array__row label {
286
  display : inline-block !important;
287
  width : auto !important;
288
  float : none !important;
289
- margin : 0 !important;
290
  padding : 0 !important;
291
  font-weight : 400 !important;
292
  }
293
 
 
 
 
 
294
  /* ------- Sidebar Layout ------- */
295
  .yith-plugin-fw-sidebar-layout input[type="radio"] {
296
  display : none;
@@ -656,7 +667,7 @@ YITH UI
656
  .yith-plugin-fw-banner {
657
  width : 100%;
658
  height : 45px;
659
- background : url('../images/banner-premium.png');
660
  display : flex;
661
  align-items : center;
662
  padding-right : -23px;
@@ -724,6 +735,7 @@ YITH UI
724
  font-size : 15px;
725
  padding : 7px 20px;
726
  border : 0;
 
727
  }
728
 
729
  .yith-plugin-ui .nav-tab:first-child {
@@ -733,6 +745,10 @@ YITH UI
733
  .yith-plugin-ui .nav-tab.yith-premium {
734
  background-color : #be421c;
735
  }
 
 
 
 
736
 
737
  .yith-plugin-ui .nav-tab-active {
738
  background-color : #fff;
@@ -771,7 +787,7 @@ YITH UI
771
 
772
  .yith-plugin-ui span.description {
773
  color : #716269;
774
- font-size : 14px;
775
  font-style : normal;
776
  font-weight : 400;
777
  margin-top : 15px;
@@ -780,7 +796,7 @@ YITH UI
780
 
781
  #wpwrap .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-ui h2.nav-tab-wrapper {
782
  border : 0;
783
- border-bottom : 1px solid #ccc;
784
  margin-right : 15px;
785
  margin-bottom : 0;
786
  background-color : transparent;
@@ -851,7 +867,7 @@ YITH UI
851
  font-size : 30px;
852
  font-weight : normal;
853
  display : block;
854
- margin-top : -5px;
855
  float : left;
856
  margin-right : 15px;
857
  }
@@ -1273,9 +1289,7 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1273
  text-indent : -9999px;
1274
  }
1275
 
1276
-
1277
- .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after,
1278
- .woocommerce .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after,
1279
  .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after {
1280
  float : right;
1281
  color : #fff;
@@ -1286,15 +1300,6 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1286
  text-indent : 0;
1287
  }
1288
 
1289
- .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after {
1290
- color : #000;
1291
- }
1292
-
1293
- .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after
1294
- .yith-plugin-fw-panel .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after {
1295
- color : #000;
1296
- }
1297
-
1298
  .yith-plugin-ui .select2-container .select2-selection--multiple,
1299
  .yith-plugin-ui .select2-container--default.select2-container--focus .select2-selection--multiple {
1300
  border : 0;
@@ -2050,8 +2055,8 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
2050
  line-height : 33px;
2051
  }
2052
 
2053
- .yith-plugin-ui .bulkactions {
2054
- margin : 10px 0;
2055
  }
2056
 
2057
  .yith-plugin-ui .form-table td p.yith-section-description {
@@ -2108,6 +2113,7 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
2108
  .yith-plugin-ui span.description {
2109
  margin-top : 10px;
2110
  line-height : 20px;
 
2111
  }
2112
 
2113
  .yith-plugin-fw-option-with-description {
@@ -2312,4 +2318,80 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
2312
  padding : 0;
2313
  }
2314
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2315
  }
22
  width : 100%;
23
  }
24
 
25
+ .yith-plugin-fw-field-wrapper .yith-inline-fields > div {
26
+ display: inline-block;
27
+ vertical-align: middle;
28
+ margin-right: 5px;
29
+ }
30
+
31
  .yith-plugin-fw-field-wrapper span.desc {
32
  display : block;
33
  width : 100%;
286
 
287
  .yith-plugin-fw-checkbox-array__row {
288
  margin-bottom : 10px;
289
+ display:flex;
290
  }
291
 
292
  .yith-plugin-fw-checkbox-array__row label {
293
  display : inline-block !important;
294
  width : auto !important;
295
  float : none !important;
296
+ margin : 0 0 0 10px !important;
297
  padding : 0 !important;
298
  font-weight : 400 !important;
299
  }
300
 
301
+ .yith-plugin-fw-checkbox-array__row label small{
302
+ display:block;
303
+ line-height: 2em;
304
+ }
305
  /* ------- Sidebar Layout ------- */
306
  .yith-plugin-fw-sidebar-layout input[type="radio"] {
307
  display : none;
667
  .yith-plugin-fw-banner {
668
  width : 100%;
669
  height : 45px;
670
+ background : #cfd9dd url(../images/banner-premium.png) no-repeat;
671
  display : flex;
672
  align-items : center;
673
  padding-right : -23px;
735
  font-size : 15px;
736
  padding : 7px 20px;
737
  border : 0;
738
+ transition: background-color 0.3s linear;
739
  }
740
 
741
  .yith-plugin-ui .nav-tab:first-child {
745
  .yith-plugin-ui .nav-tab.yith-premium {
746
  background-color : #be421c;
747
  }
748
+ .yith-plugin-ui .yith-nav-tab-wrapper .yith-plugin-fw-tab-element:hover > a.nav-tab:not(.nav-tab-active),
749
+ .yith-plugin-ui .yith-nav-tab-wrapper .nav-tab:not(.nav-tab-active):hover{
750
+ background-color:#207a92;
751
+ }
752
 
753
  .yith-plugin-ui .nav-tab-active {
754
  background-color : #fff;
787
 
788
  .yith-plugin-ui span.description {
789
  color : #716269;
790
+ font-size : 13px;
791
  font-style : normal;
792
  font-weight : 400;
793
  margin-top : 15px;
796
 
797
  #wpwrap .yith-plugin-ui h2.nav-tab-wrapper, #wpbody-content .yith-plugin-ui h2.nav-tab-wrapper {
798
  border : 0;
799
+ /* border-bottom : 1px solid #ccc; */
800
  margin-right : 15px;
801
  margin-bottom : 0;
802
  background-color : transparent;
867
  font-size : 30px;
868
  font-weight : normal;
869
  display : block;
870
+ margin-top : -12px;
871
  float : left;
872
  margin-right : 15px;
873
  }
1289
  text-indent : -9999px;
1290
  }
1291
 
1292
+ .yith-plugin-fw-panel .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after,
 
 
1293
  .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after {
1294
  float : right;
1295
  color : #fff;
1300
  text-indent : 0;
1301
  }
1302
 
 
 
 
 
 
 
 
 
 
1303
  .yith-plugin-ui .select2-container .select2-selection--multiple,
1304
  .yith-plugin-ui .select2-container--default.select2-container--focus .select2-selection--multiple {
1305
  border : 0;
2055
  line-height : 33px;
2056
  }
2057
 
2058
+ .yith-plugin-ui .tablenav {
2059
+ margin : 20px 0;
2060
  }
2061
 
2062
  .yith-plugin-ui .form-table td p.yith-section-description {
2113
  .yith-plugin-ui span.description {
2114
  margin-top : 10px;
2115
  line-height : 20px;
2116
+ max-width : 40%;
2117
  }
2118
 
2119
  .yith-plugin-fw-option-with-description {
2318
  padding : 0;
2319
  }
2320
 
2321
+ .yith-plugin-ui #plugin-fw-wc table.form-table th,
2322
+ #yith-plugin-fw-panel table.form-table th.titledesc,
2323
+ .yith-plugin-ui #plugin-fw-wc table.form-table td,
2324
+ #yith-plugin-fw-panel table.form-table td.forminp {
2325
+ padding: 20px 20px;
2326
+ }
2327
+
2328
+ .yith-plugin-ui #plugin-fw-wc table.form-table th.titledesc,
2329
+ #yith-plugin-fw-panel table.form-table th.titledesc {
2330
+ padding-bottom: 0;
2331
+ }
2332
+ }
2333
+
2334
+ @media (max-width: 480px) {
2335
+ .yith-plugin-ui .nav-tab {
2336
+ font-size: 12px;
2337
+ }
2338
+ .yith-plugin-ui h2 {
2339
+ padding: 20px 20px;
2340
+ }
2341
+ .yith-plugin-ui [type="radio"]:checked + label:before, .yith-plugin-ui [type="radio"]:not(:checked) + label:before {
2342
+ width: 14px;
2343
+ height: 14px;
2344
+ }
2345
+ .yith-plugin-ui [type="radio"]:checked + label:after, .yith-plugin-ui [type="radio"]:not(:checked) + label:after {
2346
+ width: 10px;
2347
+ height: 10px;
2348
+ top: 3px;
2349
+ left: 3px;
2350
+ }
2351
+ .yith-plugin-ui [type="radio"]:checked + label, .yith-plugin-ui [type="radio"]:not(:checked) + label {
2352
+ padding-left: 25px;
2353
+ }
2354
+
2355
+ .yith-plugin-ui [type="radio"]:checked + label, .yith-plugin-ui [type="radio"]:not(:checked) + label {
2356
+ font-size: 13px;
2357
+ }
2358
+ .yith-plugin-ui span.description {
2359
+ font-size: 12px;
2360
+ }
2361
+ .yith-plugin-ui #plugin-fw-wc table.form-table th,
2362
+ #yith-plugin-fw-panel table.form-table th.titledesc,
2363
+ .yith-plugin-ui #plugin-fw-wc table.form-table td,
2364
+ #yith-plugin-fw-panel table.form-table td.forminp {
2365
+ padding: 15px 20px;
2366
+ }
2367
+
2368
+ .yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
2369
+ width: 48px;
2370
+ height: 20px;
2371
+ }
2372
+ .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
2373
+ top: 3px;
2374
+ left: 3px;
2375
+ }
2376
+ .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:before, .yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:before {
2377
+ left: 30px;
2378
+ }
2379
+ .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:after, .yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:after {
2380
+ font-size: 11px;
2381
+ padding: 0px 6px;
2382
+ margin-top: 3px;
2383
+ }
2384
+ .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:after {
2385
+ font-size: 11px;
2386
+ padding-left: 24px;
2387
+ margin-top: 3px;
2388
+ }
2389
+
2390
+ .yith-plugin-fw .select2-container .select2-selection--single .select2-selection__rendered {
2391
+ font-size: 14px;
2392
+ }
2393
+
2394
+ .yith-plugin-ui input {
2395
+ font-size: 14px;
2396
+ }
2397
  }
plugin-fw/assets/fonts/yith-icon.eot CHANGED
File without changes
plugin-fw/assets/fonts/yith-icon.svg CHANGED
File without changes
plugin-fw/assets/fonts/yith-icon.ttf CHANGED
File without changes
plugin-fw/assets/fonts/yith-icon.woff CHANGED
File without changes
plugin-fw/assets/js/yit-plugin-panel.js CHANGED
@@ -190,4 +190,27 @@ jQuery( function ( $ ) {
190
  wrap.prepend( notices );
191
  }
192
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  } );
190
  wrap.prepend( notices );
191
  }
192
 
193
+
194
+ // TAB MENU AND SUB TABS
195
+ var active_subnav = $(document).find( '.yith-nav-sub-tab.nav-tab-active' );
196
+
197
+ if( active_subnav.length ){
198
+ // WP page
199
+ var mainWrapper = $(document).find( '.yith-plugin-fw-wp-page-wrapper' );
200
+ if( ! mainWrapper.length ){
201
+ mainWrapper = $(document).find( '#wpbody-content > .yith-plugin-ui' );
202
+ }
203
+
204
+ if( mainWrapper ){
205
+ // serach first for deafult wrap
206
+ var wrap = mainWrapper.find( '.yit-admin-panel-content-wrap' );
207
+ if( wrap.length ) {
208
+ wrap.addClass( 'has-subnav' );
209
+ }
210
+ else {
211
+ // try to wrap a generic wrap div in main wrapper
212
+ mainWrapper.find('.wrap').wrap('<div class="wrap subnav-wrap"></div>');
213
+ }
214
+ }
215
+ }
216
  } );
plugin-fw/assets/js/yit-plugin-panel.min.js CHANGED
@@ -1,5 +1 @@
1
- jQuery(function(b){function h(a,c,d,f){var e=!0;if("string"==typeof c){":radio"==c.substr(0,6)&&(c+=":checked");var g=b(c).val();"checkbox"==b(c).attr("type")&&(g=b(c).is(":checked")?"yes":"no");"select-images"===b(c+"-wrapper").data("type")&&(g=b(c+"-wrapper").find("select").first().val());d=d.split(",");for(c=0;c<d.length;c++)if(g!=d[c])e=!1;else{e=!0;break}}d=b(a);a=b(a+"-container").closest("tr");1>a.length&&(a=d.closest(".yith-plugin-fw-panel-wc-row"));f=f.split("-");for(var h in f)if(g=f[h],
2
- e)switch(g){case "disable":a.removeClass("yith-disabled");d.attr("disabled",!1);break;case "hideme":d.show();break;case "fadeInOut":case "fadeIn":a.show(500);break;case "fadeOut":a.show();break;default:a.show(),a.fadeTo("slow",1).addClass("fade-in")}else switch(g){case "disable":a.addClass("yith-disabled");d.attr("disabled",!0);break;case "hideme":d.hide();break;case "fadeInOut":case "fadeOut":a.hide(500);break;case "fadeIn":a.hide();break;default:a.hasClass("fade-in")?a.fadeTo("slow",0,function(){b(this).hide().removeClass("fade-in")}):
3
- (a.hide(),a.css({opacity:"0"}))}}b("[data-dep-target]").each(function(){var a=b(this),c="#"+a.data("dep-target"),d="#"+a.data("dep-id"),f=a.data("dep-value"),e=a.data("dep-type");a="change";"select-images"===b(d+"-wrapper").data("type")&&(a="yith_select_images_value_changed");h(c,d,f.toString(),e);b(d).on(a,function(){h(c,d,f.toString(),e)}).trigger(a)});b(".rm_connectedlist").each(function(){var a=b(this).find("ul"),c=b(this).find(":hidden");a.sortable({connectWith:a,update:function(d,f){var e={};
4
- a.each(function(){var a={};b(this).children().each(function(){a[b(this).data("option")]=b(this).text()});e[b(this).data("list")]=a});c.val(JSON.stringify(e).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()});b(document).ready(function(){b(".google-analytic-generate").click(function(){var a=b("#"+b(this).data("textarea")).data("codemirrorInstance"),c=b("#"+b(this).data("input")).val(),d=b(this).data("basename");a.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\nga('create', '"+
5
- (c+"', '"+d+"');\nga('send', 'pageview');\n"),a.getCursor("start"),a.getCursor("end"))})});b(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper");var k=b(".wrap.yith-plugin-ui").first(),l=b("div.updated, div.error, div.notice");l.addClass("inline");k.length&&k.prepend(l)});
1
+ jQuery(function(a){function e(e,t,i,n){var s=!0;if("string"==typeof t){":radio"==t.substr(0,6)&&(t+=":checked");var r=a(t).val();if("checkbox"==a(t).attr("type"))r=a(t).is(":checked")?"yes":"no";"select-images"===a(t+"-wrapper").data("type")&&(r=a(t+"-wrapper").find("select").first().val()),i=i.split(",");for(var d=0;d<i.length;d++){if(r==i[d]){s=!0;break}s=!1}}var c=a(e),o=a(e+"-container").closest("tr");o.length<1&&(o=c.closest(".yith-plugin-fw-panel-wc-row"));var l,p=n.split("-");for(l in p){var h=p[l];if(s)switch(h){case"disable":o.removeClass("yith-disabled"),c.attr("disabled",!1);break;case"hideme":c.show();break;case"fadeInOut":case"fadeIn":o.show(500);break;case"fadeOut":o.show();break;default:o.show(),o.fadeTo("slow",1).addClass("fade-in")}else switch(h){case"disable":o.addClass("yith-disabled"),c.attr("disabled",!0);break;case"hideme":c.hide();break;case"fadeInOut":case"fadeOut":o.hide(500);break;case"fadeIn":o.hide();break;default:o.hasClass("fade-in")?o.fadeTo("slow",0,function(){a(this).hide().removeClass("fade-in")}):(o.hide(),o.css({opacity:"0"}))}}}a("[data-dep-target]").each(function(){var t=a(this),i="#"+t.data("dep-target"),n="#"+t.data("dep-id"),s=t.data("dep-value"),r=t.data("dep-type"),d="change";"select-images"===a(n+"-wrapper").data("type")&&(d="yith_select_images_value_changed"),e(i,n,s.toString(),r),a(n).on(d,function(){e(i,n,s.toString(),r)}).trigger(d)}),a(".rm_connectedlist").each(function(){var e=a(this).find("ul"),t=a(this).find(":hidden");e.sortable({connectWith:e,update:function(i,n){var s={};e.each(function(){var e={};a(this).children().each(function(){e[a(this).data("option")]=a(this).text()}),s[a(this).data("list")]=e}),t.val(JSON.stringify(s).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()}),a(document).ready(function(){a(".google-analytic-generate").click(function(){var e=a("#"+a(this).data("textarea")).data("codemirrorInstance"),t="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";t+="(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n",t+="m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n",t+="})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n",t+="ga('create', '"+a("#"+a(this).data("input")).val()+"', '"+a(this).data("basename")+"');\n",t+="ga('send', 'pageview');\n",e.replaceRange(t,e.getCursor("start"),e.getCursor("end"))})}),a(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper");var t=a(".wrap.yith-plugin-ui").first(),i=a("div.updated, div.error, div.notice");if(i.addClass("inline"),t.length&&t.prepend(i),a(document).find(".yith-nav-sub-tab.nav-tab-active").length){var n=a(document).find(".yith-plugin-fw-wp-page-wrapper");if(n.length||(n=a(document).find("#wpbody-content > .yith-plugin-ui")),n)(t=n.find(".yit-admin-panel-content-wrap")).length?t.addClass("has-subnav"):n.find(".wrap").wrap('<div class="wrap subnav-wrap"></div>')}});
 
 
 
 
plugin-fw/assets/js/yith-fields.min.js CHANGED
@@ -1,30 +1 @@
1
- (function(a){a(document).on("yith_fields_init",function(){var b=a(".yith-plugin-fw-datepicker"),c=a(".yith-plugin-fw-colorpicker"),d=a(".yith-plugin-fw-upload-img-url"),e=a(".add_media"),f=a(".yith-plugin-fw .image-gallery ul.slides-wrapper"),h=a(".yith-plugin-fw-sidebar-layout"),k=a(".yith-plugin-fw .yith-plugin-fw-slider-container .ui-slider-horizontal"),l=a(".codemirror"),n=a(".yit-icons-manager-wrapper");a(".yith-plugin-ui td.forminp-checkbox");b.each(function(){var b=a(this).data();b.showAnim=
2
- !1;b.beforeShow=function(a,b){b.dpDiv.addClass("yith-plugin-fw-datepicker-div")};b.onClose=function(a,b){b.dpDiv.removeClass("yith-plugin-fw-datepicker-div")};a(this).datepicker(b)});c.wpColorPicker({palettes:!1,width:200,mode:"hsl",clear:function(){var b=a(this);b.val(b.data("default-color"));b.change()}});c.each(function(){var b=a(this).data("variations-label"),g=a(this).closest(".yith-plugin-fw-colorpicker-field-wrapper"),c=a(this).closest(".yith-single-colorpicker"),m=g.find(".wp-picker-input-wrap"),
3
- d=c.find(".wp-picker-input-wrap");m.length&&g.find("a.wp-color-result").attr("title",b);c.length&&c.find("a.wp-color-result").attr("title",b);m.find(".wp-picker-clear-custom").length||(b=a("<span/>").attr({"class":"wp-picker-default-custom"}),m.find(".wp-picker-default").wrap(b));d.find(".wp-picker-clear-custom").length||(b=a("<span/>").attr({"class":"wp-picker-default-custom"}),d.find(".wp-picker-default").wrap(b))});"undefined"!==typeof wp&&"undefined"!==typeof wp.media&&(d.change(function(){var b=
4
- a(this).val(),g=a(this).parent().find(".yith-plugin-fw-upload-img-preview").first();1>g.length&&(g=a(this).parent().parent().find(".yith-plugin-fw-upload-img-preview").first());/(http|ftp|https):\/\/[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)/.test(b)?g.html('<img src="'+b+'" style="max-width:100px; max-height:100px;" />'):g.html("")}).trigger("change"),a(document).on("click",".yith-plugin-fw-upload-button",function(b){b.preventDefault();var g=a(this).attr("id").replace(/-button$/,"");
5
- if(!c){b=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})];var c=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:b});c.on("select",function(){var b=c.state().get("selection").first().toJSON();a("#"+g).val(b.url);a("#"+g+"-yith-attachment-id")&&a("#"+g+"-yith-attachment-id").val(b.id);d.trigger("change")})}c.open()}),a(document).on("click",
6
- ".yith-plugin-fw-upload-button-reset",function(b){var c=a(this);b=c.attr("id");c=c.attr("id").replace(/-button-reset$/,"");b=a("#"+b).data("default");a("#"+c).val(b);d.trigger("change")}));e.on("click",function(){});"undefined"!==typeof wp&&"undefined"!==typeof wp.media&&(a(document).on("click",".yith-plugin-fw .image-gallery-button",function(b){var c=a(this);b=c.closest(".image-gallery");var d=b.find(".image_gallery_ids"),m=d.val(),p=b.find("ul.slides-wrapper"),e=wp.media.frames.image_gallery=wp.media({title:c.data("choose"),
7
- button:{text:c.data("update")},states:[new wp.media.controller.Library({title:c.data("choose"),filterable:"all",multiple:!0})]});e.on("select",function(){e.state().get("selection").map(function(a){a=a.toJSON();a.id&&(m=m?m+","+a.id:a.id,p.append('<li class="image" data-attachment_id="'+a.id+'"><img src="'+a.sizes.thumbnail.url+'"/><ul class="actions"><li><a href="#" class="delete" title="'+c.data("delete")+'">x</a></li></ul></li>'))});d.val(m)});e.open()}),f.each(function(){var b=a(this);b.sortable({items:"li.image",
8
- cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,start:function(a,b){b.item.css("background-color","#f6f6f6")},stop:function(a,b){b.item.removeAttr("style")},update:function(c,d){var g="";b.find("li.image").css("cursor","default").each(function(){var b=a(this).attr("data-attachment_id");g=g+b+","});b.closest(".image-gallery").find(".image_gallery_ids").val(g)}})}),f.on("click","a.delete",function(){var b=a(this).closest(".image-gallery"),c=a(this).closest(".image-gallery ul.slides-wrapper");
9
- b=b.find(".image_gallery_ids");var d="";a(this).closest("li.image").remove();c.find("li.image").css("cursor","default").each(function(){var b=a(this).attr("data-attachment_id");d=d+b+","});b.val(d)}));h.each(function(){a(this).find("img").on("click",function(){var b=a(this).closest(".yith-plugin-fw-sidebar-layout"),c=b.find(".yith-plugin-fw-sidebar-layout-sidebar-left-container");b=b.find(".yith-plugin-fw-sidebar-layout-sidebar-right-container");var d=a(this).data("type");a(this).parent().children(":radio").attr("checked",
10
- !1);a(this).prev(":radio").attr("checked",!0);if("undefined"!=typeof d)switch(d){case "left":c.show();b.hide();break;case "right":b.show();c.hide();break;case "double":c.show();b.show();break;default:c.hide(),b.hide()}})});k.each(function(){var b=a(this).data("val"),c=a(this).data("min"),d=a(this).data("max"),e=a(this).data("step"),f=a(this).data("labels");a(this).slider({value:b,min:c,max:d,range:"min",step:e,create:function(){a(this).find(".ui-slider-handle").text(a(this).slider("value"))},slide:function(b,
11
- c){a(this).find("input").val(c.value);a(this).find(".ui-slider-handle").text(c.value);a(this).siblings(".feedback").find("strong").text(c.value+f)}})});l.each(function(b,c){var d=CodeMirror.fromTextArea(c,{lineNumbers:1,mode:"javascript",showCursorWhenSelecting:!0});a(c).data("codemirrorInstance",d)});a(document).on("click",".yith-plugin-fw-select-all",function(){a("#"+a(this).data("select-id")).find("option").prop("selected",!0).trigger("change")});a(document).on("click",".yith-plugin-fw-deselect-all",
12
- function(){a("#"+a(this).data("select-id")).find("option").prop("selected",!1).trigger("change")});n.each(function(){var b=a(this),c=b.find(".yit-icons-manager-icon-preview").first(),d=b.find(".yit-icons-manager-icon-text");b.on("click",".yit-icons-manager-list li",function(e){e=a(e.target).closest("li");var g=e.data("font"),f=e.data("icon"),m=e.data("key"),h=e.data("name");c.attr("data-font",g);c.attr("data-icon",f);c.attr("data-key",m);c.attr("data-name",h);d.val(g+":"+h);b.find(".yit-icons-manager-list li").removeClass("active");
13
- e.addClass("active")});b.on("click",".yit-icons-manager-action-set-default",function(){b.find(".yit-icons-manager-list li.default").trigger("click")})});a(document).on("click",".yith-plugin-fw-select-images__item",function(){var b=a(this),c=b.data("key"),d=b.closest(".yith-plugin-fw-select-images__wrapper"),e=d.find(".yith-plugin-fw-select-images__item");d=d.find("select").first();d.length&&(d.val(c).trigger("yith_select_images_value_changed"),e.removeClass("yith-plugin-fw-select-images__item--selected"),
14
- b.addClass("yith-plugin-fw-select-images__item--selected"))});a(document.body).trigger("wc-enhanced-select-init");a(document).find(".ui-sortable .yith-toggle-elements").sortable({cursor:"move",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop:function(b,c){var d=jQuery(".ui-sortable-handle"),e,g=[];for(e=0;e<d.length;e++)g[e]=a(d[e]).data("item_key");0<g.length&&a(this).closest(".toggle-element").saveToggleElement(null,g)}});a(document.body).trigger("yith-framework-enhanced-select-init")}).trigger("yith_fields_init");
15
- a(document).on("click",".yith-plugin-fw-onoff-container span",function(){var b=a(this).prev("input");b.prop("checked")?b.prop("checked",!1).attr("value","no").removeClass("onoffchecked"):b.prop("checked",!0).attr("value","yes").addClass("onoffchecked");b.change()});a.fn.saveToggleElement=function(b,c){var d=a(this),e="yith_plugin_fw_save_toggle_element",f=d.serializeToggleElement(),h=d.find(".yith-toggle_wrapper"),k=h.attr("id"),l=a.urlParam("tab");f.append("security",h.data("nonce"));"undefined"!=
16
- typeof c&&0<c.length&&f.append("yith_toggle_elements_order_keys",c);d.closest(".metaboxes-tab.yith-plugin-ui").length?(e="yith_plugin_fw_save_toggle_element_metabox",post_id=a(this).closest("form#post").find("#post_ID").val(),yit_metaboxes_nonce=a(this).closest("form#post").find("#yit_metaboxes_nonce").val(),metabox_tab=a(this).closest(".tabs-panel").attr("id"),url=yith_framework_fw_fields.ajax_url+"?action="+e+"&post_ID="+post_id+"&yit_metaboxes_nonce="+yit_metaboxes_nonce+"&toggle_id="+k+"&metabox_tab="+
17
- metabox_tab):url=yith_framework_fw_fields.admin_url+"?action="+e+"&tab="+l+"&toggle_id="+k;a.ajax({type:"POST",url:url,data:f,contentType:!1,processData:!1,success:function(c){b&&b.removeClass("show");a(document).trigger("yith_save_toggle_element_done",[c,d])}})};a.fn.serializeToggleElement=function(){var b=a(this),c=new FormData;b=a(b).find(":input").serializeArray();a.each(b,function(a,b){el_name=b.name;c.append(b.name,b.value)});return c};a.fn.formatToggleTitle=function(){var b=a(this),c=b.find(":input"),
18
- d=b.find("span.title").data("title_format"),e=b.find(".subtitle").data("subtitle_format"),f=RegExp("[^%%]+(?=[%%])","g");if("undefined"!=typeof d)var h=d.match(f);if("undefined"!=typeof e)var k=e.match(f);a.each(c,function(b,c){"undefined"!=typeof a(c).attr("id")&&($field_id=a(c).attr("id"),$field_array=$field_id.split("_"),$field_array.pop(),$field_id=$field_array.join("_"),$field_val=a(c).val(),null!=h&&"undefined"!=typeof h&&-1!==h.indexOf($field_id)&&(d=d.replace("%%"+$field_id+"%%",$field_val)),
19
- null!=k&&"undefined"!=typeof k&&-1!==k.indexOf($field_id)&&(e=e.replace("%%"+$field_id+"%%",$field_val)))});""!==d&&b.find("span.title").html(d);""!==e&&b.find(".subtitle").html(e);a(document).trigger("yith-toggle-element-item-title",[b])};a.urlParam=function(a){a=(new RegExp("[?&]"+a+"=([^&#]*)")).exec(window.location.search);return null!==a?a[1]||0:!1};a(document).on("click",".yith-toggle-title",function(b){b=a(b.target);var c=b.closest(".yith-toggle-row"),d=c.find(".yith-toggle-content");if(b.hasClass("yith-plugin-fw-onoff")||
20
- b.hasClass("yith-icon-drag"))return!1;c.is(".yith-toggle-row-opened")?d.slideUp(400):d.slideDown(400);c.toggleClass("yith-toggle-row-opened")});a(document).on("click",".yith-add-box-button",function(b){b.preventDefault();b=a(this);var c=b.data("box_id"),d=b.data("closed_label"),e=b.data("opened_label"),f=b.closest(".yith-toggle_wrapper").attr("id");template=wp.template("yith-toggle-element-add-box-content-"+f);""!==c&&(a("#"+c).html(template({index:"box_id"})).slideToggle(),""!==d&&(b.html()===d?
21
- b.html(e).removeClass("closed"):b.html(d).addClass("closed")),a(document).trigger("yith_fields_init"),a(document).trigger("yith-add-box-button-toggle",[b]))});a(document).on("click",".yith-add-box-buttons .yith-save-button",function(b){b.preventDefault();var c=a(this).parents(".yith-add-box"),d=a(this).closest(".yith-toggle_wrapper").attr("id");b=c.find(".spinner");var e=a(this).parents(".toggle-element"),f=c.find(":input"),h=e.find(".yith-toggle-row").length,k=a('<input type="hidden">');k.val(h);
22
- a(document).trigger("yith-toggle-change-counter",[k,c]);h=k.val();d=wp.template("yith-toggle-element-item-"+d);var l=a(d({index:h}));b.addClass("show");a.each(f,function(b,c){"undefined"!=typeof a(c).attr("id")&&($field_id=a(c).attr("id"),$field_val=a(c).val(),"radio"==a(c).attr("type")?($field_id=$field_id.replace("new_",""),$field_id=$field_id.replace("-"+$field_val,""),$field_id=$field_id+"_dataindex-"+$field_val):$field_id=$field_id.replace("new_","")+"_"+h,a(c).is(":checked")&&a(l).find("#"+
23
- $field_id).prop("checked",!0),(a(c).hasClass("yith-post-search")||a(c).hasClass("yith-term-search"))&&a(l).find("#"+$field_id).html(a("#"+a(c).attr("id")).html()),a(l).find("#"+$field_id).val($field_val))});a(l).formatToggleTitle();var n=a('<input type="hidden">').val("yes");a(document).trigger("yith-toggle-element-item-before-add",[c,l,n]);setTimeout(function(){"yes"===n.val()&&(a(e).find(".yith-toggle-elements").append(l),a(c).find(".yith-plugin-fw-datepicker").datepicker("destroy"),a(c).html(""),
24
- a(c).prev(".yith-add-box-button").trigger("click"),e.saveToggleElement(),setTimeout(function(){a(e).find(".highlight").removeClass("highlight")},2E3),a(document).trigger("yith_fields_init"))},1E3)});a(document).on("click",".yith-toggle-row .yith-save-button",function(b){b.preventDefault();b=a(this).closest(".toggle-element");var c=a(this).closest(".yith-toggle-row"),d=c.find(".spinner");c.formatToggleTitle();var e=a('<input type="hidden">').val("yes");a(document).trigger("yith-toggle-element-item-before-update",
25
- [b,c,e]);"yes"===e.val()&&(d.addClass("show"),b.saveToggleElement(d))});a(document).on("click",".yith-toggle-row .yith-delete-button",function(b){b.preventDefault();b=a(this).closest(".toggle-element");a(this).closest(".yith-toggle-row").remove();b.saveToggleElement()});a(document).on("click",".yith-toggle-onoff",function(b){b.preventDefault();a(this).closest(".toggle-element").saveToggleElement()});a(document).on("click",".yith-plugin-fw-radio input[type=radio]",function(){a(this).closest(".yith-plugin-fw-radio").val(a(this).val()).trigger("change")});
26
- a(document).on("click",".yith-password-eye",function(){var b=a(this),c=a(this).closest(".yith-password-wrapper").find("input");"password"===c.attr("type")?(c.attr("type","text"),b.addClass("yith-password-eye-closed")):(c.attr("type","password"),b.removeClass("yith-password-eye-closed"))});a(document.body).on("yith-plugin-fw-init-radio",function(){a(".yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)").each(function(){a(this).val(a(this).attr("value"));a(this).addClass("yith-plugin-fw-radio--initialized")})}).trigger("yith-plugin-fw-init-radio");
27
- a(document).on("select2:open",function(b){a(b.target).closest(".yith-plugin-ui").length&&a(".select2-results").closest(".select2-container").addClass("yith-plugin-fw-select2-container")});var f={selectors:{wrapper:".yith-plugin-fw-dimensions",units:{wrapper:".yith-plugin-fw-dimensions__units",single:".yith-plugin-fw-dimensions__unit",value:".yith-plugin-fw-dimensions__unit__value",selectedClass:"yith-plugin-fw-dimensions__unit--selected"},linked:{button:".yith-plugin-fw-dimensions__linked",value:".yith-plugin-fw-dimensions__linked__value",
28
- wrapperActiveClass:"yith-plugin-fw-dimensions--linked-active"},dimensions:{number:".yith-plugin-fw-dimensions__dimension__number"}},init:function(){var b=f;a(document).on("click",b.selectors.units.single,b.unitChange);a(document).on("click",b.selectors.linked.button,b.linkedChange);a(document).on("change keyup",b.selectors.dimensions.number,b.numberChange)},unitChange:function(b){b=a(this).closest(f.selectors.units.single);var c=b.closest(f.selectors.units.wrapper),d=c.find(f.selectors.units.single);
29
- c=c.find(f.selectors.units.value).first();var e=b.data("value");d.removeClass(f.selectors.units.selectedClass);b.addClass(f.selectors.units.selectedClass);c.val(e)},linkedChange:function(){var b=a(this).closest(f.selectors.linked.button),c=b.closest(f.selectors.wrapper);b=b.find(f.selectors.linked.value);"yes"===b.val()?(c.removeClass(f.selectors.linked.wrapperActiveClass),b.val("no")):(c.addClass(f.selectors.linked.wrapperActiveClass),b.val("yes"),c.find(f.selectors.dimensions.number).first().trigger("change"))},
30
- numberChange:function(b){b=a(this).closest(f.selectors.dimensions.number);var c=b.closest(f.selectors.wrapper);c.hasClass(f.selectors.linked.wrapperActiveClass)&&c.find(f.selectors.dimensions.number).val(b.val())}};f.init()})(jQuery);
1
+ !function(e){e(document).on("yith_fields_init",function(){var t=e(".yith-plugin-fw-datepicker"),i=e(".yith-plugin-fw-colorpicker"),a={imgPreviewHandler:".yith-plugin-fw-upload-img-preview",uploadButtonHandler:".yith-plugin-fw-upload-button",imgUrlHandler:".yith-plugin-fw-upload-img-url",resetButtonHandler:".yith-plugin-fw-upload-button-reset",imgUrl:e(".yith-plugin-fw-upload-img-url")},n=e(".add_media"),l={sliderWrapper:e(".yith-plugin-fw .image-gallery ul.slides-wrapper"),buttonHandler:".yith-plugin-fw .image-gallery-button"},s=e(".yith-plugin-fw-sidebar-layout"),o=e(".yith-plugin-fw .yith-plugin-fw-slider-container .ui-slider-horizontal"),r=e(".codemirror"),d=e(".yit-icons-manager-wrapper");e(".yith-plugin-ui td.forminp-checkbox");t.each(function(){var t=e(this).data();t.showAnim=!1,t.beforeShow=function(e,t){t.dpDiv.addClass("yith-plugin-fw-datepicker-div")},t.onClose=function(e,t){t.dpDiv.removeClass("yith-plugin-fw-datepicker-div")},e(this).datepicker(t)}),i.wpColorPicker({palettes:!1,width:200,mode:"hsl",clear:function(){var t=e(this);t.val(t.data("default-color")),t.change()}}),i.each(function(){var t=e(this).data("variations-label"),i=e(this).closest(".yith-plugin-fw-colorpicker-field-wrapper"),a=e(this).closest(".yith-single-colorpicker"),n=i.find(".wp-picker-input-wrap"),l=a.find(".wp-picker-input-wrap");if(n.length&&i.find("a.wp-color-result").attr("title",t),a.length&&a.find("a.wp-color-result").attr("title",t),!n.find(".wp-picker-clear-custom").length){var s=e("<span/>").attr({"class":"wp-picker-default-custom"});n.find(".wp-picker-default").wrap(s)}l.find(".wp-picker-clear-custom").length||(s=e("<span/>").attr({"class":"wp-picker-default-custom"}),l.find(".wp-picker-default").wrap(s))}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(a.imgUrl.change(function(){var t=e(this).val(),i=new RegExp("(http|ftp|https)://[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico|svg)"),n=e(this).parent().find(a.imgPreviewHandler).first();n.length<1&&(n=e(this).parent().parent().find(a.imgPreviewHandler).first()),i.test(t)?n.html('<img src="'+t+'" style="max-width:100px; max-height:100px;" />'):n.html("")}).trigger("change"),e(document).on("click",a.uploadButtonHandler,function(t){t.preventDefault();var i,n=e(this).attr("id").replace(/-button$/,"");if(i)i.open();else{var l=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})];(i=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:l})).on("select",function(){var t=i.state().get("selection").first().toJSON();e("#"+n).val(t.url),e("#"+n+"-yith-attachment-id")&&e("#"+n+"-yith-attachment-id").val(t.id),a.imgUrl.trigger("change")}),i.open()}}),e(document).on("click",a.resetButtonHandler,function(t){var i=e(this),n=i.attr("id"),l=i.attr("id").replace(/-button-reset$/,""),s=e("#"+n).data("default");e("#"+l).val(s),a.imgUrl.trigger("change")}));n.on("click",function(){}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media&&(e(document).on("click",l.buttonHandler,function(t){var i=e(this),a=i.closest(".image-gallery"),n=a.find(".image_gallery_ids"),l=n.val(),s=a.find("ul.slides-wrapper"),o=wp.media.frames.image_gallery=wp.media({title:i.data("choose"),button:{text:i.data("update")},states:[new wp.media.controller.Library({title:i.data("choose"),filterable:"all",multiple:!0})]});o.on("select",function(){o.state().get("selection").map(function(e){(e=e.toJSON()).id&&(l=l?l+","+e.id:e.id,s.append('<li class="image" data-attachment_id="'+e.id+'"><img src="'+e.sizes.thumbnail.url+'"/><ul class="actions"><li><a href="#" class="delete" title="'+i.data("delete")+'">x</a></li></ul></li>'))}),n.val(l)}),o.open()}),l.sliderWrapper.each(function(){var t=e(this);t.sortable({items:"li.image",cursor:"move",scrollSensitivity:40,forcePlaceholderSize:!0,forceHelperSize:!1,helper:"clone",opacity:.65,start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(i,a){var n="";t.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");n=n+t+","}),t.closest(".image-gallery").find(".image_gallery_ids").val(n)}})}),l.sliderWrapper.on("click","a.delete",function(){var t=e(this).closest(".image-gallery"),i=e(this).closest(".image-gallery ul.slides-wrapper"),a=t.find(".image_gallery_ids"),n="";e(this).closest("li.image").remove(),i.find("li.image").css("cursor","default").each(function(){var t=e(this).attr("data-attachment_id");n=n+t+","}),a.val(n)})),s.each(function(){e(this).find("img").on("click",function(){var t=e(this).closest(".yith-plugin-fw-sidebar-layout"),i=t.find(".yith-plugin-fw-sidebar-layout-sidebar-left-container"),a=t.find(".yith-plugin-fw-sidebar-layout-sidebar-right-container"),n=e(this).data("type");if(e(this).parent().children(":radio").attr("checked",!1),e(this).prev(":radio").attr("checked",!0),void 0!==n)switch(n){case"left":i.show(),a.hide();break;case"right":a.show(),i.hide();break;case"double":i.show(),a.show();break;default:i.hide(),a.hide()}})}),o.each(function(){var t=e(this).data("val"),i=e(this).data("min"),a=e(this).data("max"),n=e(this).data("step"),l=e(this).data("labels");e(this).slider({value:t,min:i,max:a,range:"min",step:n,create:function(){e(this).find(".ui-slider-handle").text(e(this).slider("value"))},slide:function(t,i){e(this).find("input").val(i.value),e(this).find(".ui-slider-handle").text(i.value),e(this).siblings(".feedback").find("strong").text(i.value+l)}})}),r.each(function(t,i){var a=CodeMirror.fromTextArea(i,{lineNumbers:1,mode:"javascript",showCursorWhenSelecting:!0});e(i).data("codemirrorInstance",a)}),e(document).on("click",".yith-plugin-fw-select-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!0).trigger("change")}),e(document).on("click",".yith-plugin-fw-deselect-all",function(){e("#"+e(this).data("select-id")).find("option").prop("selected",!1).trigger("change")}),d.each(function(){var t=e(this),i=t.find(".yit-icons-manager-icon-preview").first(),a=t.find(".yit-icons-manager-icon-text");t.on("click",".yit-icons-manager-list li",function(n){var l=e(n.target).closest("li"),s=l.data("font"),o=l.data("icon"),r=l.data("key"),d=l.data("name");i.attr("data-font",s),i.attr("data-icon",o),i.attr("data-key",r),i.attr("data-name",d),a.val(s+":"+d),t.find(".yit-icons-manager-list li").removeClass("active"),l.addClass("active")}),t.on("click",".yit-icons-manager-action-set-default",function(){t.find(".yit-icons-manager-list li.default").trigger("click")})}),e(document).on("click",".yith-plugin-fw-select-images__item",function(){var t=e(this),i=t.data("key"),a=t.closest(".yith-plugin-fw-select-images__wrapper"),n=a.find(".yith-plugin-fw-select-images__item"),l=a.find("select").first();l.length&&(l.val(i).trigger("yith_select_images_value_changed"),n.removeClass("yith-plugin-fw-select-images__item--selected"),t.addClass("yith-plugin-fw-select-images__item--selected"))}),e(document.body).trigger("wc-enhanced-select-init"),e(document).find(".ui-sortable .yith-toggle-elements").sortable({cursor:"move",axis:"y",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",stop:function(t,i){var a=jQuery(".ui-sortable-handle"),n=0,l=new Array;for(n=0;n<a.length;n++)l[n]=e(a[n]).data("item_key");l.length>0&&e(this).closest(".toggle-element").saveToggleElement(null,l)}}),e(document.body).trigger("yith-framework-enhanced-select-init")}).trigger("yith_fields_init"),e(document).on("click",".yith-plugin-fw-onoff-container span",function(){var t=e(this).prev("input");t.prop("checked")?t.prop("checked",!1).attr("value","no").removeClass("onoffchecked"):t.prop("checked",!0).attr("value","yes").addClass("onoffchecked"),t.change()}),e.fn.saveToggleElement=function(t,i){var a=e(this),n="yith_plugin_fw_save_toggle_element",l=a.serializeToggleElement(),s=a.find(".yith-toggle_wrapper"),o=s.attr("id"),r=e.urlParam("tab");l.append("security",s.data("nonce")),void 0!==i&&i.length>0&&l.append("yith_toggle_elements_order_keys",i),a.closest(".metaboxes-tab.yith-plugin-ui").length?(n="yith_plugin_fw_save_toggle_element_metabox",post_id=e(this).closest("form#post").find("#post_ID").val(),yit_metaboxes_nonce=e(this).closest("form#post").find("#yit_metaboxes_nonce").val(),metabox_tab=e(this).closest(".tabs-panel").attr("id"),url=yith_framework_fw_fields.ajax_url+"?action="+n+"&post_ID="+post_id+"&yit_metaboxes_nonce="+yit_metaboxes_nonce+"&toggle_id="+o+"&metabox_tab="+metabox_tab):url=yith_framework_fw_fields.admin_url+"?action="+n+"&tab="+r+"&toggle_id="+o,e.ajax({type:"POST",url:url,data:l,contentType:!1,processData:!1,success:function(i){t&&t.removeClass("show"),e(document).trigger("yith_save_toggle_element_done",[i,a])}})},e.fn.serializeToggleElement=function(){var t=e(this),i=new FormData,a=e(t).find(":input").serializeArray();return e.each(a,function(e,t){el_name=t.name,i.append(t.name,t.value)}),i},e.fn.formatToggleTitle=function(){var t=e(this),i=t.find(":input"),a=t.find("span.title").data("title_format"),n=t.find(".subtitle").data("subtitle_format"),l=new RegExp("[^%%]+(?=[%%])","g");if(void 0!==a)var s=a.match(l);if(void 0!==n)var o=n.match(l);e.each(i,function(t,i){void 0!==e(i).attr("id")&&($field_id=e(i).attr("id"),$field_array=$field_id.split("_"),$field_array.pop(),$field_id=$field_array.join("_"),$field_val=e(i).val(),null!=s&&void 0!==s&&-1!==s.indexOf($field_id)&&(a=a.replace("%%"+$field_id+"%%",$field_val)),null!=o&&void 0!==o&&-1!==o.indexOf($field_id)&&(n=n.replace("%%"+$field_id+"%%",$field_val)))}),""!==a&&t.find("span.title").html(a),""!==n&&t.find(".subtitle").html(n),e(document).trigger("yith-toggle-element-item-title",[t])},e.urlParam=function(e){var t=new RegExp("[?&]"+e+"=([^&#]*)").exec(window.location.search);return null!==t&&(t[1]||0)},e(document).on("click",".yith-toggle-title",function(t){var i=e(t.target),a=i.closest(".yith-toggle-row"),n=a.find(".yith-toggle-content");if(i.hasClass("yith-plugin-fw-onoff")||i.hasClass("yith-icon-drag"))return!1;a.is(".yith-toggle-row-opened")?n.slideUp(400):n.slideDown(400),a.toggleClass("yith-toggle-row-opened")}),e(document).on("click",".yith-add-box-button",function(t){t.preventDefault();var i=e(this),a=i.data("box_id"),n=i.data("closed_label"),l=i.data("opened_label"),s=i.closest(".yith-toggle_wrapper").attr("id");template=wp.template("yith-toggle-element-add-box-content-"+s),""!==a&&(e("#"+a).html(template({index:"box_id"})).slideToggle(),""!==n&&(i.html()===n?i.html(l).removeClass("closed"):i.html(n).addClass("closed")),e(document).trigger("yith_fields_init"),e(document).trigger("yith-add-box-button-toggle",[i]))}),e(document).on("click",".yith-add-box-buttons .yith-save-button",function(t){t.preventDefault();var i=e(this).parents(".yith-add-box"),a=e(this).closest(".yith-toggle_wrapper").attr("id"),n=i.find(".spinner"),l=e(this).parents(".toggle-element"),s=i.find(":input"),o=l.find(".yith-toggle-row").length,r=e('<input type="hidden">');r.val(o),e(document).trigger("yith-toggle-change-counter",[r,i]),o=r.val();var d=wp.template("yith-toggle-element-item-"+a),c=e(d({index:o}));n.addClass("show"),e.each(s,function(t,i){void 0!==e(i).attr("id")&&($field_id=e(i).attr("id"),$field_val=e(i).val(),"radio"==e(i).attr("type")?($field_id=$field_id.replace("new_",""),$field_id=$field_id.replace("-"+$field_val,""),$field_id=$field_id+"_dataindex-"+$field_val):$field_id=$field_id.replace("new_","")+"_"+o,e(i).is(":checked")&&e(c).find("#"+$field_id).prop("checked",!0),(e(i).hasClass("yith-post-search")||e(i).hasClass("yith-term-search"))&&e(c).find("#"+$field_id).html(e("#"+e(i).attr("id")).html()),e(c).find("#"+$field_id).val($field_val))}),e(c).formatToggleTitle();var u=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-add",[i,c,u]);setTimeout(function(){if("yes"===u.val()){e(l).find(".yith-toggle-elements").append(c),e(i).find(".yith-plugin-fw-datepicker").datepicker("destroy"),e(i).html(""),e(i).prev(".yith-add-box-button").trigger("click"),l.saveToggleElement();setTimeout(function(){e(l).find(".highlight").removeClass("highlight")},2e3),e(document).trigger("yith_fields_init")}},1e3)}),e(document).on("click",".yith-toggle-row .yith-save-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element"),a=e(this).closest(".yith-toggle-row"),n=a.find(".spinner");a.formatToggleTitle();var l=e('<input type="hidden">').val("yes");e(document).trigger("yith-toggle-element-item-before-update",[i,a,l]),"yes"===l.val()&&(n.addClass("show"),i.saveToggleElement(n))}),e(document).on("click",".yith-toggle-row .yith-delete-button",function(t){t.preventDefault();var i=e(this).closest(".toggle-element");e(this).closest(".yith-toggle-row").remove(),i.saveToggleElement()}),e(document).on("click",".yith-toggle-onoff",function(t){t.preventDefault(),e(this).closest(".toggle-element").saveToggleElement()}),e(document).on("click",".yith-plugin-fw-radio input[type=radio]",function(){e(this).closest(".yith-plugin-fw-radio").val(e(this).val()).trigger("change")}),e(document).on("click",".yith-password-eye",function(){var t=e(this),i=e(this).closest(".yith-password-wrapper").find("input");"password"===i.attr("type")?(i.attr("type","text"),t.addClass("yith-password-eye-closed")):(i.attr("type","password"),t.removeClass("yith-password-eye-closed"))}),e(document.body).on("yith-plugin-fw-init-radio",function(){e(".yith-plugin-fw-radio:not(.yith-plugin-fw-radio--initialized)").each(function(){e(this).val(e(this).attr("value")),e(this).addClass("yith-plugin-fw-radio--initialized")})}).trigger("yith-plugin-fw-init-radio"),e(document).on("select2:open",function(t){e(t.target).closest(".yith-plugin-ui").length&&e(".select2-results").closest(".select2-container").addClass("yith-plugin-fw-select2-container")});var t={selectors:{wrapper:".yith-plugin-fw-dimensions",units:{wrapper:".yith-plugin-fw-dimensions__units",single:".yith-plugin-fw-dimensions__unit",value:".yith-plugin-fw-dimensions__unit__value",selectedClass:"yith-plugin-fw-dimensions__unit--selected"},linked:{button:".yith-plugin-fw-dimensions__linked",value:".yith-plugin-fw-dimensions__linked__value",wrapperActiveClass:"yith-plugin-fw-dimensions--linked-active"},dimensions:{number:".yith-plugin-fw-dimensions__dimension__number"}},init:function(){var i=t;e(document).on("click",i.selectors.units.single,i.unitChange),e(document).on("click",i.selectors.linked.button,i.linkedChange),e(document).on("change keyup",i.selectors.dimensions.number,i.numberChange)},unitChange:function(i){var a=e(this).closest(t.selectors.units.single),n=a.closest(t.selectors.units.wrapper),l=n.find(t.selectors.units.single),s=n.find(t.selectors.units.value).first(),o=a.data("value");l.removeClass(t.selectors.units.selectedClass),a.addClass(t.selectors.units.selectedClass),s.val(o)},linkedChange:function(){var i=e(this).closest(t.selectors.linked.button),a=i.closest(t.selectors.wrapper),n=i.find(t.selectors.linked.value);"yes"===n.val()?(a.removeClass(t.selectors.linked.wrapperActiveClass),n.val("no")):(a.addClass(t.selectors.linked.wrapperActiveClass),n.val("yes"),a.find(t.selectors.dimensions.number).first().trigger("change"))},numberChange:function(i){var a=e(this).closest(t.selectors.dimensions.number),n=a.closest(t.selectors.wrapper);n.hasClass(t.selectors.linked.wrapperActiveClass)&&n.find(t.selectors.dimensions.number).val(a.val())}};t.init()}(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/assets/js/yith-gutenberg.js CHANGED
@@ -1,210 +1,211 @@
1
- (function ($) {
2
- // Get registerBlockType() from wp.blocks in the global scope
3
- var __ = wp.i18n.__,
4
- el = wp.element.createElement,
5
- Fragment = wp.element.Fragment,
6
- registerBlockType = wp.blocks.registerBlockType,
7
- RichText = wp.editor.RichText,
8
- BlockControls = wp.editor.BlockControls,
9
- InspectorControls = wp.editor.InspectorControls,
10
- AlignmentToolbar = wp.editor.AlignmentToolbar,
11
- Components = wp.components,
12
- RawHTML = wp.element.RawHTML,
13
- SelectControl = wp.components.SelectControl,
14
- ToggleControl = wp.components.ToggleControl,
15
- CheckboxControl = wp.components.CheckboxControl,
16
- RangeControl = wp.components.RangeControl,
17
- ColorPicker = wp.components.ColorPicker,
18
- RadioControl = wp.components.RadioControl,
19
- TextControl = wp.components.TextControl,
20
- TextareaControl = wp.components.TextareaControl;
21
-
22
- const yith_icon = el('svg', {width: 22, height: 22},
23
- el('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"})
24
- );
25
-
26
- function create_shortcode(sc_args, props, callback) {
27
- var gt_block = '',
28
- gutenberg_preview = '';
29
-
30
- if (typeof props.callback != 'undefined' && typeof $[props.callback] == 'function') {
31
- gt_block = $[props.callback](sc_args, props);
32
- }
33
-
34
- else {
35
- var sc_name = props.shortcode_name,
36
- sc = '[' + sc_name,
37
- do_shortcode = null;
38
-
39
-
40
- $.each(sc_args.attributes, function ($v, $k) {
41
- if ($v != 'className') {
42
- sc += ' ' + $v + '=';
43
- var arg = props.attributes[$v],
44
- remove_quotes = arg.remove_quotes;
45
-
46
- if( remove_quotes == true ){
47
- sc += $k;
48
- }
49
-
50
- else {
51
- sc += '"' + $k + '"';
52
- }
53
- }
54
- });
55
-
56
- sc += ']';
57
-
58
- var block_id = md5(sc);
59
-
60
- gutenberg_preview = '<span class="yith_block_' + block_id + '">' + sc + '</span>';
61
-
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,
69
- method: 'post',
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
- }
83
-
84
- gt_block = el(RawHTML, null, gutenberg_preview);
85
- }
86
-
87
- return gt_block;
88
- }
89
-
90
- function onChangeEvent(new_value, attribute_name, args, block_type) {
91
- var attributes = {};
92
-
93
- if (block_type == 'colorpicker' || block_type == 'color') {
94
- new_value = new_value.hex;
95
- }
96
-
97
- attributes[attribute_name] = new_value;
98
- args.setAttributes(attributes);
99
- return args;
100
- }
101
-
102
- $.each(yith_gutenberg, function ($block, $props) {
103
- registerBlockType("yith/" + $block, {
104
- title: $props.title,
105
- description: $props.description,
106
- category: $props.category,
107
- attributes: $props.attributes,
108
- icon: typeof $props.icon != 'undefined' ? $props.icon : yith_icon,
109
- keywords: $props.keywords,
110
- edit: function edit(args) {
111
- var elements = new Array();
112
-
113
- $.each($props.attributes, function ($attribute_name, $attribute_args) {
114
- var ComponentControl = null,
115
- block_type = $attribute_args.blocktype;
116
- if (typeof block_type != 'undefined') {
117
- switch (block_type) {
118
- case 'select':
119
- ComponentControl = SelectControl;
120
- break;
121
-
122
- case 'text':
123
- ComponentControl = TextControl;
124
- break;
125
-
126
- case 'textarea':
127
- ComponentControl = TextareaControl;
128
- break;
129
-
130
- case 'toggle':
131
- ComponentControl = ToggleControl;
132
- break;
133
-
134
- case 'checkbox':
135
- ComponentControl = CheckboxControl;
136
- break;
137
-
138
- case 'number':
139
- case 'range':
140
- ComponentControl = RangeControl;
141
- break;
142
-
143
- case 'color':
144
- case 'colorpicker':
145
- ComponentControl = ColorPicker;
146
- break;
147
-
148
- case 'radio':
149
- ComponentControl = RadioControl;
150
- break;
151
- }
152
-
153
- if (ComponentControl != null) {
154
- var helpMessageChecked = helpMessageUncheked = '';
155
- if (typeof $attribute_args.helps != 'undefined' && typeof $attribute_args.helps.checked != 'undefined' && typeof $attribute_args.helps.unchecked != 'undefined') {
156
- helpMessageChecked = $attribute_args.helps.checked;
157
- helpMessageUncheked = $attribute_args.helps.unchecked;
158
- }
159
-
160
- else if (typeof $attribute_args.help != 'undefined') {
161
- helpMessageChecked = helpMessageUncheked = $attribute_args.help;
162
- }
163
-
164
- elements.push(
165
- el(
166
- ComponentControl,
167
- {
168
- value: args.attributes[$attribute_name],
169
- options: $attribute_args.options,
170
- label: $attribute_args.label,
171
- checked: args.attributes[$attribute_name],
172
- selected: args.attributes[$attribute_name],
173
- help: args.attributes[$attribute_name] ? helpMessageChecked : helpMessageUncheked,
174
- disableAlpha: $attribute_args.disableAlpha,
175
- min: $attribute_args.min,
176
- max: $attribute_args.max,
177
- multiple: $attribute_args.multiple,
178
- onChange: function (new_value, attribute_name = $attribute_name) {
179
- args = onChangeEvent(new_value, attribute_name, args, block_type);
180
- },
181
- onChangeComplete: function (new_value, attribute_name = $attribute_name) {
182
- args = onChangeEvent(new_value, attribute_name, args, block_type);
183
- },
184
- },
185
- )
186
- );
187
- }
188
- }
189
- });
190
-
191
- sc = create_shortcode(args, $props, 'edit');
192
-
193
- return [
194
- el(
195
- Fragment,
196
- null,
197
- el(
198
- InspectorControls,
199
- null,
200
- elements,
201
- ),
202
- sc,
203
- )];
204
- },
205
- save: function save(args) {
206
- return create_shortcode(args, $props, 'save');
207
- }
208
- });
209
- });
 
210
  })(jQuery);
1
+ (function ($) {
2
+ // Get registerBlockType() from wp.blocks in the global scope
3
+ var __ = wp.i18n.__,
4
+ el = wp.element.createElement,
5
+ Fragment = wp.element.Fragment,
6
+ PanelBody = wp.components.PanelBody,
7
+ registerBlockType = wp.blocks.registerBlockType,
8
+ RichText = wp.editor.RichText,
9
+ BlockControls = wp.editor.BlockControls,
10
+ InspectorControls = wp.editor.InspectorControls,
11
+ AlignmentToolbar = wp.editor.AlignmentToolbar,
12
+ Components = wp.components,
13
+ RawHTML = wp.element.RawHTML,
14
+ SelectControl = wp.components.SelectControl,
15
+ ToggleControl = wp.components.ToggleControl,
16
+ CheckboxControl = wp.components.CheckboxControl,
17
+ RangeControl = wp.components.RangeControl,
18
+ ColorPicker = wp.components.ColorPicker,
19
+ RadioControl = wp.components.RadioControl,
20
+ TextControl = wp.components.TextControl,
21
+ TextareaControl = wp.components.TextareaControl;
22
+
23
+ const yith_icon = el('svg', {width: 22, height: 22},
24
+ el('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"})
25
+ );
26
+
27
+ function create_shortcode(sc_args, props, callback) {
28
+ var gt_block = '',
29
+ gutenberg_preview = '';
30
+
31
+ if (typeof props.callback != 'undefined' && typeof $[props.callback] == 'function') {
32
+ gt_block = $[props.callback](sc_args, props);
33
+ }
34
+
35
+ else {
36
+ var sc_name = props.shortcode_name,
37
+ sc = '[' + sc_name,
38
+ do_shortcode = null;
39
+
40
+
41
+ $.each(sc_args.attributes, function ($v, $k) {
42
+ if ($v != 'className') {
43
+ sc += ' ' + $v + '=';
44
+ var arg = props.attributes[$v],
45
+ remove_quotes = arg.remove_quotes;
46
+
47
+ if( remove_quotes == true ){
48
+ sc += $k;
49
+ }
50
+
51
+ else {
52
+ sc += '"' + $k + '"';
53
+ }
54
+ }
55
+ });
56
+
57
+ sc += ']';
58
+
59
+ var block_id = md5(sc);
60
+
61
+ gutenberg_preview = '<span class="yith_block_' + block_id + '">' + sc + '</span>';
62
+
63
+ if (callback == 'edit' && props.do_shortcode != false) {
64
+ do_shortcode = (function (block_id) {
65
+ var ajax_call_date = null;
66
+ $(document).trigger( 'yith_plugin_fw_gutenberg_before_do_shortcode', [sc, block_id] );
67
+ $.ajax({
68
+ async: true,
69
+ url: yith_gutenberg_ajax.ajaxurl,
70
+ method: 'post',
71
+ data: {action: 'yith_plugin_fw_gutenberg_do_shortcode', shortcode: sc},
72
+ success: function (data) {
73
+ ajax_call_date = data;
74
+ if (ajax_call_date != '') {
75
+ $('.yith_block_' + block_id).html(ajax_call_date);
76
+ $(document).trigger( 'yith_plugin_fw_gutenberg_success_do_shortcode', [sc, block_id, ajax_call_date] );
77
+ }
78
+ }
79
+ });
80
+ $(document).trigger( 'yith_plugin_fw_gutenberg_after_do_shortcode', [sc, block_id, ajax_call_date] );
81
+ return ajax_call_date;
82
+ })(block_id);
83
+ }
84
+
85
+ gt_block = el(RawHTML, null, gutenberg_preview);
86
+ }
87
+
88
+ return gt_block;
89
+ }
90
+
91
+ function onChangeEvent(new_value, attribute_name, args, block_type) {
92
+ var attributes = {};
93
+
94
+ if (block_type == 'colorpicker' || block_type == 'color') {
95
+ new_value = new_value.hex;
96
+ }
97
+
98
+ attributes[attribute_name] = new_value;
99
+ args.setAttributes(attributes);
100
+ return args;
101
+ }
102
+
103
+ $.each(yith_gutenberg, function ($block, $props) {
104
+ registerBlockType("yith/" + $block, {
105
+ title: $props.title,
106
+ description: $props.description,
107
+ category: $props.category,
108
+ attributes: $props.attributes,
109
+ icon: typeof $props.icon != 'undefined' ? $props.icon : yith_icon,
110
+ keywords: $props.keywords,
111
+ edit: function edit(args) {
112
+ var elements = new Array();
113
+
114
+ $.each($props.attributes, function ($attribute_name, $attribute_args) {
115
+ var ComponentControl = null,
116
+ block_type = $attribute_args.blocktype;
117
+ if (typeof block_type != 'undefined') {
118
+ switch (block_type) {
119
+ case 'select':
120
+ ComponentControl = SelectControl;
121
+ break;
122
+
123
+ case 'text':
124
+ ComponentControl = TextControl;
125
+ break;
126
+
127
+ case 'textarea':
128
+ ComponentControl = TextareaControl;
129
+ break;
130
+
131
+ case 'toggle':
132
+ ComponentControl = ToggleControl;
133
+ break;
134
+
135
+ case 'checkbox':
136
+ ComponentControl = CheckboxControl;
137
+ break;
138
+
139
+ case 'number':
140
+ case 'range':
141
+ ComponentControl = RangeControl;
142
+ break;
143
+
144
+ case 'color':
145
+ case 'colorpicker':
146
+ ComponentControl = ColorPicker;
147
+ break;
148
+
149
+ case 'radio':
150
+ ComponentControl = RadioControl;
151
+ break;
152
+ }
153
+
154
+ if (ComponentControl != null) {
155
+ var helpMessageChecked = helpMessageUncheked = '';
156
+ if (typeof $attribute_args.helps != 'undefined' && typeof $attribute_args.helps.checked != 'undefined' && typeof $attribute_args.helps.unchecked != 'undefined') {
157
+ helpMessageChecked = $attribute_args.helps.checked;
158
+ helpMessageUncheked = $attribute_args.helps.unchecked;
159
+ }
160
+
161
+ else if (typeof $attribute_args.help != 'undefined') {
162
+ helpMessageChecked = helpMessageUncheked = $attribute_args.help;
163
+ }
164
+
165
+ elements.push(
166
+ el(
167
+ ComponentControl,
168
+ {
169
+ value: args.attributes[$attribute_name],
170
+ options: $attribute_args.options,
171
+ label: $attribute_args.label,
172
+ checked: args.attributes[$attribute_name],
173
+ selected: args.attributes[$attribute_name],
174
+ help: args.attributes[$attribute_name] ? helpMessageChecked : helpMessageUncheked,
175
+ disableAlpha: $attribute_args.disableAlpha,
176
+ min: $attribute_args.min,
177
+ max: $attribute_args.max,
178
+ multiple: $attribute_args.multiple,
179
+ onChange: function (new_value, attribute_name = $attribute_name) {
180
+ args = onChangeEvent(new_value, attribute_name, args, block_type);
181
+ },
182
+ onChangeComplete: function (new_value, attribute_name = $attribute_name) {
183
+ args = onChangeEvent(new_value, attribute_name, args, block_type);
184
+ },
185
+ },
186
+ )
187
+ );
188
+ }
189
+ }
190
+ });
191
+
192
+ sc = create_shortcode(args, $props, 'edit');
193
+
194
+ return [
195
+ el(
196
+ Fragment,
197
+ null,
198
+ el(
199
+ InspectorControls,
200
+ null,
201
+ elements,
202
+ ),
203
+ sc,
204
+ )];
205
+ },
206
+ save: function save(args) {
207
+ return create_shortcode(args, $props, 'save');
208
+ }
209
+ });
210
+ });
211
  })(jQuery);
plugin-fw/assets/js/yith-gutenberg.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){wp.i18n.__;var t=wp.element.createElement,o=wp.element.Fragment,n=wp.blocks.registerBlockType,c=(wp.editor.RichText,wp.editor.BlockControls,wp.editor.InspectorControls),r=(wp.editor.AlignmentToolbar,wp.components,wp.element.RawHTML),a=wp.components.SelectControl,s=wp.components.ToggleControl,i=wp.components.CheckboxControl,l=wp.components.RangeControl,p=wp.components.ColorPicker,u=wp.components.RadioControl,d=wp.components.TextControl,h=wp.components.TextareaControl;const C=t("svg",{width:22,height:22},t("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"}));function g(o,n,c){var a="",s="";if("undefined"!=typeof n.callback&&"function"==typeof e[n.callback])a=e[n.callback](o,n);else{var i="["+n.shortcode_name;e.each(o.attributes,function(e,t){if("className"!=e){i+=" "+e+"=";var o=n.attributes[e].remove_quotes;i+=1==o?t:'"'+t+'"'}}),i+="]";var l=md5(i);s='<span class="yith_block_'+l+'">'+i+"</span>","edit"==c&&0!=n.do_shortcode&&function(t){var o=null;return e(document).trigger("yith_plugin_fw_gutenberg_before_do_shortcode",[i,t]),e.ajax({async:!0,url:yith_gutenberg_ajax.ajaxurl,method:"post",data:{action:"yith_plugin_fw_gutenberg_do_shortcode",shortcode:i},success:function(n){""!=(o=n)&&(e(".yith_block_"+t).html(o),e(document).trigger("yith_plugin_fw_gutenberg_success_do_shortcode",[i,t,o]))}}),e(document).trigger("yith_plugin_fw_gutenberg_after_do_shortcode",[i,t,o]),o}(l),a=t(r,null,s)}return a}function b(e,t,o,n){var c={};return"colorpicker"!=n&&"color"!=n||(e=e.hex),c[t]=e,o.setAttributes(c),o}e.each(yith_gutenberg,function(r,f){n("yith/"+r,{title:f.title,description:f.description,category:f.category,attributes:f.attributes,icon:"undefined"!=typeof f.icon?f.icon:C,keywords:f.keywords,edit:function(n){var r=new Array;return e.each(f.attributes,function(e,o){var c=null,C=o.blocktype;if(void 0!==C){switch(C){case"select":c=a;break;case"text":c=d;break;case"textarea":c=h;break;case"toggle":c=s;break;case"checkbox":c=i;break;case"number":case"range":c=l;break;case"color":case"colorpicker":c=p;break;case"radio":c=u}if(null!=c){var g=helpMessageUncheked="";"undefined"!=typeof o.helps&&"undefined"!=typeof o.helps.checked&&"undefined"!=typeof o.helps.unchecked?(g=o.helps.checked,helpMessageUncheked=o.helps.unchecked):"undefined"!=typeof o.help&&(g=helpMessageUncheked=o.help),r.push(t(c,{value:n.attributes[e],options:o.options,label:o.label,checked:n.attributes[e],selected:n.attributes[e],help:n.attributes[e]?g:helpMessageUncheked,disableAlpha:o.disableAlpha,min:o.min,max:o.max,multiple:o.multiple,onChange:function(t,o=e){n=b(t,o,n,C)},onChangeComplete:function(t,o=e){n=b(t,o,n,C)}}))}}}),sc=g(n,f,"edit"),[t(o,null,t(c,null,r),sc)]},save:function(e){return g(e,f,"save")}})})}(jQuery);
1
+ !function(e){wp.i18n.__;var t=wp.element.createElement,o=wp.element.Fragment,n=(wp.components.PanelBody,wp.blocks.registerBlockType),c=(wp.editor.RichText,wp.editor.BlockControls,wp.editor.InspectorControls),r=(wp.editor.AlignmentToolbar,wp.components,wp.element.RawHTML),a=wp.components.SelectControl,s=wp.components.ToggleControl,l=wp.components.CheckboxControl,i=wp.components.RangeControl,p=wp.components.ColorPicker,u=wp.components.RadioControl,d=wp.components.TextControl,h=wp.components.TextareaControl;const C=t("svg",{width:22,height:22},t("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"}));function g(o,n,c){var a="",s="";if("undefined"!=typeof n.callback&&"function"==typeof e[n.callback])a=e[n.callback](o,n);else{var l="["+n.shortcode_name;e.each(o.attributes,function(e,t){if("className"!=e){l+=" "+e+"=";var o=n.attributes[e].remove_quotes;l+=1==o?t:'"'+t+'"'}}),l+="]";var i=md5(l);s='<span class="yith_block_'+i+'">'+l+"</span>","edit"==c&&0!=n.do_shortcode&&function(t){var o=null;return e(document).trigger("yith_plugin_fw_gutenberg_before_do_shortcode",[l,t]),e.ajax({async:!0,url:yith_gutenberg_ajax.ajaxurl,method:"post",data:{action:"yith_plugin_fw_gutenberg_do_shortcode",shortcode:l},success:function(n){""!=(o=n)&&(e(".yith_block_"+t).html(o),e(document).trigger("yith_plugin_fw_gutenberg_success_do_shortcode",[l,t,o]))}}),e(document).trigger("yith_plugin_fw_gutenberg_after_do_shortcode",[l,t,o]),o}(i),a=t(r,null,s)}return a}function b(e,t,o,n){var c={};return"colorpicker"!=n&&"color"!=n||(e=e.hex),c[t]=e,o.setAttributes(c),o}e.each(yith_gutenberg,function(r,f){n("yith/"+r,{title:f.title,description:f.description,category:f.category,attributes:f.attributes,icon:"undefined"!=typeof f.icon?f.icon:C,keywords:f.keywords,edit:function(n){var r=new Array;return e.each(f.attributes,function(e,o){var c=null,C=o.blocktype;if(void 0!==C){switch(C){case"select":c=a;break;case"text":c=d;break;case"textarea":c=h;break;case"toggle":c=s;break;case"checkbox":c=l;break;case"number":case"range":c=i;break;case"color":case"colorpicker":c=p;break;case"radio":c=u}if(null!=c){var g=helpMessageUncheked="";"undefined"!=typeof o.helps&&"undefined"!=typeof o.helps.checked&&"undefined"!=typeof o.helps.unchecked?(g=o.helps.checked,helpMessageUncheked=o.helps.unchecked):"undefined"!=typeof o.help&&(g=helpMessageUncheked=o.help),r.push(t(c,{value:n.attributes[e],options:o.options,label:o.label,checked:n.attributes[e],selected:n.attributes[e],help:n.attributes[e]?g:helpMessageUncheked,disableAlpha:o.disableAlpha,min:o.min,max:o.max,multiple:o.multiple,onChange:function(t,o=e){n=b(t,o,n,C)},onChangeComplete:function(t,o=e){n=b(t,o,n,C)}}))}}}),sc=g(n,f,"edit"),[t(o,null,t(c,null,r),sc)]},save:function(e){return g(e,f,"save")}})})}(jQuery);
plugin-fw/assets/js/yith-system-info.js CHANGED
@@ -1,13 +1,19 @@
1
- (function ($) {
2
- $(document).on('click', '.notice-dismiss', function () {
3
- var t = $(this),
4
- wrapper_id = t.parent().attr('id');
 
 
 
 
5
 
6
- if (wrapper_id === 'yith-system-alert') {
7
- var cname = 'hide_yith_system_alert',
8
- cvalue = 'yes';
9
 
10
- document.cookie = cname + "=" + cvalue + ";path=/";
11
- }
12
- });
13
- })(jQuery);
 
 
1
+ jQuery(
2
+ function ( $ ) {
3
+ $( document ).on(
4
+ 'click',
5
+ '.notice-dismiss',
6
+ function () {
7
+ var t = $( this ),
8
+ wrapper_id = t.parent().attr( 'id' );
9
 
10
+ if ( wrapper_id === 'yith-system-alert' ) {
11
+ var cname = 'hide_yith_system_alert',
12
+ cvalue = 'yes';
13
 
14
+ document.cookie = cname + "=" + cvalue + ";path=/";
15
+ }
16
+ }
17
+ );
18
+ }
19
+ );
plugin-fw/assets/js/yith-system-info.min.js CHANGED
@@ -1 +1 @@
1
- !function(t){t(document).on("click",".notice-dismiss",function(){if("yith-system-alert"===t(this).parent().attr("id")){document.cookie="hide_yith_system_alert=yes;path=/"}})}(jQuery);
1
+ jQuery(function(t){t(document).on("click",".notice-dismiss",function(){if("yith-system-alert"===t(this).parent().attr("id")){document.cookie="hide_yith_system_alert=yes;path=/"}})});
plugin-fw/init.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
- * Version: 3.4.22
5
  * Author: YITH
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author Your Inspiration Themes
10
- * @version 3.4.20
11
  */
12
  /**
13
  * This file belongs to the YIT Plugin Framework.
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
+ * Version: 3.4.28
5
  * Author: YITH
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author Your Inspiration Themes
10
+ * @version 3.4.28
11
  */
12
  /**
13
  * This file belongs to the YIT Plugin Framework.
plugin-fw/languages/yith-plugin-fw-el.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-el.po CHANGED
@@ -4,15 +4,15 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2020-04-23 06:38:32+00:00\n"
8
- "PO-Revision-Date: 2020-04-06 10:45+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
11
  "Language: el_GR\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Poedit 2.2.1\n"
16
  "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
17
  "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
18
  "esc_html_x:1,2c;_x;_ex\n"
@@ -22,6 +22,30 @@ msgstr ""
22
  "X-Textdomain-Support: yes\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  #: lib/yit-cpt-unlimited.php:462 lib/yit-cpt-unlimited.php:576
26
  #: lib/yit-cpt-unlimited.php:721 lib/yit-cpt-unlimited.php:1636
27
  msgid "Add %s"
@@ -202,7 +226,7 @@ msgstr "Προσθήκη %s από εικόνες"
202
  msgid "Upload multiple files"
203
  msgstr "Ανέβασμα πολλαπλών αρχείων"
204
 
205
- #: lib/yit-plugin-panel-wc.php:399
206
  msgid "The changes you have made will be lost if you leave this page."
207
  msgstr ""
208
  "Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα."
@@ -211,16 +235,16 @@ msgstr ""
211
  msgid "Plugin Settings"
212
  msgstr "Ρυθμίσεις Προσθέτου"
213
 
214
- #: lib/yit-plugin-panel.php:455 lib/yit-plugin-panel.php:458
215
  msgid "How to install premium version"
216
  msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"
217
 
218
- #: lib/yit-plugin-panel.php:603 lib/yit-plugin-subpanel.php:151
219
  #: templates/panel/woocommerce/woocommerce-form.php:14
220
  msgid "Save Changes"
221
  msgstr "Αποθήκευση Αλλαγών"
222
 
223
- #: lib/yit-plugin-panel.php:606 lib/yit-plugin-subpanel.php:154
224
  #: templates/panel/woocommerce/woocommerce-form.php:17
225
  msgid ""
226
  "If you continue with this action, you will reset all options in this page."
@@ -228,70 +252,70 @@ msgstr ""
228
  "Αν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη "
229
  "σελίδα."
230
 
231
- #: lib/yit-plugin-panel.php:608 lib/yit-plugin-subpanel.php:156
232
  msgid "Reset to default"
233
  msgstr "Επαναφορά σε προεπιλεγμένο"
234
 
235
- #: lib/yit-plugin-panel.php:609 lib/yit-plugin-subpanel.php:157
236
  #: templates/panel/woocommerce/woocommerce-form.php:21
237
  msgid "Are you sure?"
238
  msgstr "Είστε σίγουρος;"
239
 
240
- #: lib/yit-plugin-panel.php:807
241
  msgid ""
242
  "The element you have entered already exists. Please, enter another name."
243
  msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
244
 
245
- #: lib/yit-plugin-panel.php:808
246
  msgid "Settings saved"
247
  msgstr "Ρυθμίσεις αποθηκεύτηκαν"
248
 
249
- #: lib/yit-plugin-panel.php:809
250
  msgid "Settings reset"
251
  msgstr "Επαναφορά ρυθμίσεων"
252
 
253
- #: lib/yit-plugin-panel.php:810
254
  msgid "Element deleted correctly."
255
  msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
256
 
257
- #: lib/yit-plugin-panel.php:811 lib/yit-plugin-panel.php:812
258
  msgid "Element updated correctly."
259
  msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
260
 
261
- #: lib/yit-plugin-panel.php:813
262
  msgid "Database imported correctly."
263
  msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
264
 
265
- #: lib/yit-plugin-panel.php:814
266
  msgid "An error has occurred during import. Please try again."
267
  msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
268
 
269
- #: lib/yit-plugin-panel.php:815
270
  msgid "The added file is not valid."
271
  msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
272
 
273
- #: lib/yit-plugin-panel.php:816
274
  msgid "Sorry, import is disabled."
275
  msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
276
 
277
- #: lib/yit-plugin-panel.php:817
278
  msgid "Sorting successful."
279
  msgstr "Διαλογή επιτυχής."
280
 
281
- #: lib/yit-plugin-panel.php:1265
282
  msgid "We need your support"
283
  msgstr "Χρειαζόμαστε την υποστήριξή σας"
284
 
285
- #: lib/yit-plugin-panel.php:1266
286
  msgid "to keep updating and improving the plugin. Please,"
287
  msgstr ""
288
  "για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
289
 
290
- #: lib/yit-plugin-panel.php:1268
291
  msgid "help us by leaving a five-star rating"
292
  msgstr "βοηθήστε μας αφήνοντας μια βαθμολογία πέντε αστέρων"
293
 
294
- #: lib/yit-plugin-panel.php:1269
295
  msgid ":) Thanks!"
296
  msgstr ":) Ευχαριστώ!"
297
 
@@ -364,81 +388,172 @@ msgstr ""
364
  "Παρουσιάστηκε σφάλμα, που πιθανότατα σημαίνει ότι έπεσε το τροφοδοτικό. "
365
  "Προσπαθήστε ξανά αργότερα."
366
 
367
- #: lib/yith-system-status.php:105
368
  msgid "WordPress Version"
369
  msgstr "Έκδοση WordPress"
370
 
371
- #: lib/yith-system-status.php:106
372
  msgid "WooCommerce Version"
373
  msgstr "Έκδοση WooCommerce"
374
 
375
- #: lib/yith-system-status.php:107
376
  msgid "Available Memory"
377
  msgstr "Διαθέσιμη Μνήμη"
378
 
379
- #: lib/yith-system-status.php:108
380
  msgid "PHP Version"
381
  msgstr "Έκδοση PHP"
382
 
383
- #: lib/yith-system-status.php:109
384
  msgid "TLS Version"
385
  msgstr "Έκδοση TLS"
386
 
387
- #: lib/yith-system-status.php:110
388
  msgid "WordPress Cron"
389
  msgstr "WordPress Cron"
390
 
391
- #: lib/yith-system-status.php:111
392
  msgid "SimpleXML"
393
  msgstr "SimpleXML"
394
 
395
- #: lib/yith-system-status.php:112
396
  msgid "MultiByte String"
397
  msgstr "MultiByte String"
398
 
399
- #: lib/yith-system-status.php:113
400
  msgid "ImageMagick Version"
401
  msgstr "Έκδοση ImageMagick"
402
 
403
- #: lib/yith-system-status.php:114
404
  msgid "GD Library"
405
  msgstr "Βιβλιοθήκη GD"
406
 
407
- #: lib/yith-system-status.php:115
408
  msgid "Iconv Module"
409
  msgstr "Άρθρωμα Iconv"
410
 
411
- #: lib/yith-system-status.php:116
412
  msgid "OPCache Save Comments"
413
  msgstr "OPCache Save Comments"
414
 
415
- #: lib/yith-system-status.php:117
416
  msgid "URL FOpen"
417
  msgstr "URL FOpen"
418
 
419
- #: lib/yith-system-status.php:135 lib/yith-system-status.php:136
420
  msgid "System Status"
421
  msgstr "Κατάσταση Συστήματος"
422
 
423
- #: lib/yith-system-status.php:179
424
  msgid "YITH Plugins"
425
  msgstr "Πρόσθετα YITH"
426
 
427
- #: lib/yith-system-status.php:180
428
  msgid "WooCommerce"
429
  msgstr "WooCommerce"
430
 
431
- #: lib/yith-system-status.php:297
432
  msgid "Warning!"
433
  msgstr "Προσοχή!"
434
 
435
- #: lib/yith-system-status.php:298
 
436
  msgid ""
437
- "The system check has detected some compatibility issues on your "
438
- "installation. %sClick here%s to know more"
439
  msgstr ""
440
  "Ο έλεγχος συστήματος έχει εντοπίσει κάποια προβλήματα συμβατότητας στην "
441
- "εγκατάστασή σας. %sΚάντε κλικ εδώ%s για να μάθετε περισσότερα"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
442
 
443
  #: templates/fields/ajax-customers.php:57
444
  msgid "Search Customers"
@@ -570,108 +685,54 @@ msgstr "(Default: <i %s></i> )"
570
  msgid "Reset Defaults"
571
  msgstr "Επαναφορά Προεπιλεγμένων"
572
 
573
- #: templates/sysinfo/system-information-panel.php:30
574
  msgid "YITH System Information"
575
  msgstr "Σύστημα Πληροφοριών YITH"
576
 
577
- #: templates/sysinfo/system-information-panel.php:38
578
- msgid "Site URL"
579
- msgstr "URL Ιστοσελίδας"
580
 
581
- #: templates/sysinfo/system-information-panel.php:46
582
- msgid "Output IP Address"
583
- msgstr "Διεύθυνση IP Παραγωγής"
584
 
585
- #: templates/sysinfo/system-information-panel.php:76
586
- msgid "Enabled"
587
- msgstr "Ενεργοποιημένο"
588
-
589
- #: templates/sysinfo/system-information-panel.php:76
590
- msgid "Disabled"
591
- msgstr "Απενεργοποιημένο"
592
-
593
- #: templates/sysinfo/system-information-panel.php:82
594
- msgid "N/A"
595
- msgstr "N/A"
596
 
597
  #: templates/sysinfo/system-information-panel.php:96
598
- msgid "%s needs %s enabled"
599
- msgstr "%s χρειάζεται %s ενεργοποιημένο"
600
-
601
- #: templates/sysinfo/system-information-panel.php:98
602
- msgid "%s needs at least %s of available memory"
603
- msgstr "%s χρειάζεται τουλάχιστον %s διαθέσιμης μνήμης"
604
-
605
- #: templates/sysinfo/system-information-panel.php:100
606
- #: templates/sysinfo/system-information-panel.php:149
607
- msgid ""
608
- "For optimal functioning of our plugins, we suggest setting at least %s of "
609
- "available memory"
610
- msgstr ""
611
- "Για την βέλτιστη λειτουργικότητα των προσθέτων μας, προτείνουμε να ορίσετε "
612
- "τουλάχιστον %s διαθέσιμης μνήμης"
613
-
614
- #: templates/sysinfo/system-information-panel.php:102
615
- #: templates/sysinfo/system-information-panel.php:137
616
- #: templates/sysinfo/system-information-panel.php:151
617
- msgid ""
618
- "Read more %s here%s or contact your hosting company in order to increase it."
619
- msgstr ""
620
- "Μάθετε περισσότερα %s εδώ%s ή επικοινωνήστε με την εταιρεία hosting σας για "
621
- "να το βελτιώσετε."
622
-
623
- #: templates/sysinfo/system-information-panel.php:105
624
- msgid "%s needs at least %s version"
625
- msgstr "%s χρειάζεται τουλάχιστον %s έκδοση"
626
-
627
- #: templates/sysinfo/system-information-panel.php:116
628
- msgid ""
629
- "Update it to the latest version in order to benefit of all new features and "
630
- "security updates."
631
- msgstr ""
632
- "Κάντε αναβάθμιση της τελευταίας έκδοσης για να επωφεληθείτε από τα νέα "
633
- "χαρακτηριστικά και τις αναβαθμίσεις προστασίας."
634
 
635
- #: templates/sysinfo/system-information-panel.php:122
636
- msgid "Contact your hosting company in order to update it."
637
- msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να αναβαθμίσετε."
638
 
639
- #: templates/sysinfo/system-information-panel.php:126
640
- msgid "Remove %s from %s file"
641
- msgstr "Αφαίρεση %s από αρχείο %s"
642
 
643
- #: templates/sysinfo/system-information-panel.php:134
644
- msgid "Contact your hosting company in order to enable it."
645
- msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να ενεργοποιήσετε."
646
 
647
- #: templates/sysinfo/system-information-panel.php:157
648
- msgid ""
649
- "We cannot determine which <b>TLS</b> version is installed because <b>cURL</"
650
- "b> module is disabled. Ask your hosting company to enable it."
651
- msgstr ""
652
- "Δεν μπορούμε να καθορίσουμε ποια έκδοση <b>TLS</b> έχει εγκατασταθεί γιατί "
653
- "το άρθρωμα <b>cURL</b> είναι απενεργοποιημένο. Ζητήστε από την εταιρεία "
654
- "hosting σας να το ενεργοποιήσει."
655
 
656
- #: templates/sysinfo/system-information-panel.php:160
657
- msgid ""
658
- "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
659
- "install it."
660
- msgstr ""
661
- "Το άρθρωμα <b>ImageMagick</b> δεν έχει εγκατασταθεί. Ζητήστε από την "
662
- "εταιρεία hosting σας να το εγκαταστήσει."
663
 
664
- #: templates/sysinfo/system-information-panel.php:172
665
  msgid "Show full PHPInfo"
666
  msgstr "Πλήρης εμφάνιση PHPInfo"
667
 
668
- #: templates/sysinfo/system-information-panel.php:176
669
- msgid "Back to System panel"
670
- msgstr "Πίσω στο πάνελ Συστήματος"
671
-
672
- #: templates/sysinfo/system-information-panel.php:193
673
- msgid "Back to top"
674
- msgstr "Πίσω στην κορυφή"
675
 
676
  #: yit-plugin.php:194
677
  msgid "License"
@@ -758,27 +819,27 @@ msgstr "YITH"
758
  #: templates/fields/dimensions.php:16
759
  msgctxt "Position in the \"Dimensions\" field"
760
  msgid "Top"
761
- msgstr ""
762
 
763
  #: templates/fields/dimensions.php:17
764
  msgctxt "Position in the \"Dimensions\" field"
765
  msgid "Right"
766
- msgstr ""
767
 
768
  #: templates/fields/dimensions.php:18
769
  msgctxt "Position in the \"Dimensions\" field"
770
  msgid "Bottom"
771
- msgstr ""
772
 
773
  #: templates/fields/dimensions.php:19
774
  msgctxt "Position in the \"Dimensions\" field"
775
  msgid "Left"
776
- msgstr ""
777
 
778
  #: templates/fields/dimensions.php:117
779
  msgctxt "Tooltip in the \"Dimensions\" field"
780
  msgid "Link values together"
781
- msgstr ""
782
 
783
  #: templates/fields/onoff.php:24
784
  msgctxt "YES/NO button: use MAX 3 characters!"
@@ -815,6 +876,13 @@ msgctxt "Action links"
815
  msgid "Settings"
816
  msgstr "Ρυθμίσεις"
817
 
 
 
 
 
 
 
 
818
  #~ msgctxt "ON/OFF button: use MAX 3 characters!"
819
  #~ msgid "ON"
820
  #~ msgstr "ΕΝΕΡΓΟΠΟΙΗΣΗ"
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2020-08-07 14:15:08+00:00\n"
8
+ "PO-Revision-Date: 2020-08-13 10:05+0100\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
11
  "Language: el_GR\n"
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Poedit 2.3\n"
16
  "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
17
  "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
18
  "esc_html_x:1,2c;_x;_ex\n"
22
  "X-Textdomain-Support: yes\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
 
25
+ #: lib/yit-assets.php:102
26
+ msgid "Clear"
27
+ msgstr "Καθαρισμός"
28
+
29
+ #: lib/yit-assets.php:103
30
+ msgid "Clear color"
31
+ msgstr "Καθαρισμός χρώματος"
32
+
33
+ #: lib/yit-assets.php:104
34
+ msgid "Default"
35
+ msgstr "Προεπιλεγμένο"
36
+
37
+ #: lib/yit-assets.php:105
38
+ msgid "Select default color"
39
+ msgstr "Επιλογή προεπιλεγμένου χρώματος"
40
+
41
+ #: lib/yit-assets.php:106
42
+ msgid "Select Color"
43
+ msgstr "Επιλογή Χρώματος"
44
+
45
+ #: lib/yit-assets.php:107
46
+ msgid "Color value"
47
+ msgstr "Αξία χρώματος"
48
+
49
  #: lib/yit-cpt-unlimited.php:462 lib/yit-cpt-unlimited.php:576
50
  #: lib/yit-cpt-unlimited.php:721 lib/yit-cpt-unlimited.php:1636
51
  msgid "Add %s"
226
  msgid "Upload multiple files"
227
  msgstr "Ανέβασμα πολλαπλών αρχείων"
228
 
229
+ #: lib/yit-plugin-panel-wc.php:426
230
  msgid "The changes you have made will be lost if you leave this page."
231
  msgstr ""
232
  "Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα."
235
  msgid "Plugin Settings"
236
  msgstr "Ρυθμίσεις Προσθέτου"
237
 
238
+ #: lib/yit-plugin-panel.php:454 lib/yit-plugin-panel.php:457
239
  msgid "How to install premium version"
240
  msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"
241
 
242
+ #: lib/yit-plugin-panel.php:617 lib/yit-plugin-subpanel.php:151
243
  #: templates/panel/woocommerce/woocommerce-form.php:14
244
  msgid "Save Changes"
245
  msgstr "Αποθήκευση Αλλαγών"
246
 
247
+ #: lib/yit-plugin-panel.php:621 lib/yit-plugin-subpanel.php:154
248
  #: templates/panel/woocommerce/woocommerce-form.php:17
249
  msgid ""
250
  "If you continue with this action, you will reset all options in this page."
252
  "Αν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη "
253
  "σελίδα."
254
 
255
+ #: lib/yit-plugin-panel.php:624 lib/yit-plugin-subpanel.php:156
256
  msgid "Reset to default"
257
  msgstr "Επαναφορά σε προεπιλεγμένο"
258
 
259
+ #: lib/yit-plugin-panel.php:625 lib/yit-plugin-subpanel.php:157
260
  #: templates/panel/woocommerce/woocommerce-form.php:21
261
  msgid "Are you sure?"
262
  msgstr "Είστε σίγουρος;"
263
 
264
+ #: lib/yit-plugin-panel.php:823
265
  msgid ""
266
  "The element you have entered already exists. Please, enter another name."
267
  msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
268
 
269
+ #: lib/yit-plugin-panel.php:824
270
  msgid "Settings saved"
271
  msgstr "Ρυθμίσεις αποθηκεύτηκαν"
272
 
273
+ #: lib/yit-plugin-panel.php:825
274
  msgid "Settings reset"
275
  msgstr "Επαναφορά ρυθμίσεων"
276
 
277
+ #: lib/yit-plugin-panel.php:826
278
  msgid "Element deleted correctly."
279
  msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
280
 
281
+ #: lib/yit-plugin-panel.php:827 lib/yit-plugin-panel.php:828
282
  msgid "Element updated correctly."
283
  msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
284
 
285
+ #: lib/yit-plugin-panel.php:829
286
  msgid "Database imported correctly."
287
  msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
288
 
289
+ #: lib/yit-plugin-panel.php:830
290
  msgid "An error has occurred during import. Please try again."
291
  msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
292
 
293
+ #: lib/yit-plugin-panel.php:831
294
  msgid "The added file is not valid."
295
  msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
296
 
297
+ #: lib/yit-plugin-panel.php:832
298
  msgid "Sorry, import is disabled."
299
  msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
300
 
301
+ #: lib/yit-plugin-panel.php:833
302
  msgid "Sorting successful."
303
  msgstr "Διαλογή επιτυχής."
304
 
305
+ #: lib/yit-plugin-panel.php:1281
306
  msgid "We need your support"
307
  msgstr "Χρειαζόμαστε την υποστήριξή σας"
308
 
309
+ #: lib/yit-plugin-panel.php:1282
310
  msgid "to keep updating and improving the plugin. Please,"
311
  msgstr ""
312
  "για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
313
 
314
+ #: lib/yit-plugin-panel.php:1284
315
  msgid "help us by leaving a five-star rating"
316
  msgstr "βοηθήστε μας αφήνοντας μια βαθμολογία πέντε αστέρων"
317
 
318
+ #: lib/yit-plugin-panel.php:1285
319
  msgid ":) Thanks!"
320
  msgstr ":) Ευχαριστώ!"
321
 
388
  "Παρουσιάστηκε σφάλμα, που πιθανότατα σημαίνει ότι έπεσε το τροφοδοτικό. "
389
  "Προσπαθήστε ξανά αργότερα."
390
 
391
+ #: lib/yith-system-status.php:111
392
  msgid "WordPress Version"
393
  msgstr "Έκδοση WordPress"
394
 
395
+ #: lib/yith-system-status.php:112
396
  msgid "WooCommerce Version"
397
  msgstr "Έκδοση WooCommerce"
398
 
399
+ #: lib/yith-system-status.php:113
400
  msgid "Available Memory"
401
  msgstr "Διαθέσιμη Μνήμη"
402
 
403
+ #: lib/yith-system-status.php:114
404
  msgid "PHP Version"
405
  msgstr "Έκδοση PHP"
406
 
407
+ #: lib/yith-system-status.php:115
408
  msgid "TLS Version"
409
  msgstr "Έκδοση TLS"
410
 
411
+ #: lib/yith-system-status.php:116
412
  msgid "WordPress Cron"
413
  msgstr "WordPress Cron"
414
 
415
+ #: lib/yith-system-status.php:117
416
  msgid "SimpleXML"
417
  msgstr "SimpleXML"
418
 
419
+ #: lib/yith-system-status.php:118
420
  msgid "MultiByte String"
421
  msgstr "MultiByte String"
422
 
423
+ #: lib/yith-system-status.php:119
424
  msgid "ImageMagick Version"
425
  msgstr "Έκδοση ImageMagick"
426
 
427
+ #: lib/yith-system-status.php:120
428
  msgid "GD Library"
429
  msgstr "Βιβλιοθήκη GD"
430
 
431
+ #: lib/yith-system-status.php:121
432
  msgid "Iconv Module"
433
  msgstr "Άρθρωμα Iconv"
434
 
435
+ #: lib/yith-system-status.php:122
436
  msgid "OPCache Save Comments"
437
  msgstr "OPCache Save Comments"
438
 
439
+ #: lib/yith-system-status.php:123
440
  msgid "URL FOpen"
441
  msgstr "URL FOpen"
442
 
443
+ #: lib/yith-system-status.php:141 lib/yith-system-status.php:142
444
  msgid "System Status"
445
  msgstr "Κατάσταση Συστήματος"
446
 
447
+ #: lib/yith-system-status.php:184
448
  msgid "YITH Plugins"
449
  msgstr "Πρόσθετα YITH"
450
 
451
+ #: lib/yith-system-status.php:192
452
  msgid "WooCommerce"
453
  msgstr "WooCommerce"
454
 
455
+ #: lib/yith-system-status.php:330
456
  msgid "Warning!"
457
  msgstr "Προσοχή!"
458
 
459
+ #. translators: %1$s open link tag, %2$s open link tag
460
+ #: lib/yith-system-status.php:334
461
  msgid ""
462
+ "The system check has detected some compatibility issues on your installation."
463
+ "%1$sClick here%2$s to know more"
464
  msgstr ""
465
  "Ο έλεγχος συστήματος έχει εντοπίσει κάποια προβλήματα συμβατότητας στην "
466
+ "εγκατάστασή σας.%1$sΚάντε κλικ εδώ%2$s για να μάθετε περισσότερα"
467
+
468
+ #: lib/yith-system-status.php:473
469
+ msgid "Enabled"
470
+ msgstr "Ενεργοποιημένο"
471
+
472
+ #: lib/yith-system-status.php:473
473
+ msgid "Disabled"
474
+ msgstr "Απενεργοποιημένο"
475
+
476
+ #: lib/yith-system-status.php:478
477
+ msgid "N/A"
478
+ msgstr "N/A"
479
+
480
+ #. translators: %1$s plugin name, %2$s requirement name
481
+ #: lib/yith-system-status.php:506
482
+ msgid "%1$s needs %2$s enabled"
483
+ msgstr "%1$s χρειάζεται %2$s ενεργοποιημένο"
484
+
485
+ #. translators: %1$s plugin name, %2$s required memory amount
486
+ #: lib/yith-system-status.php:509
487
+ msgid "%1$s needs at least %2$s of available memory"
488
+ msgstr "%1$s χρειάζεται τουλάχιστον %2$s διαθέσιμης μνήμης"
489
+
490
+ #. translators: %1$s plugin name, %2$s version number
491
+ #: lib/yith-system-status.php:512
492
+ msgid "%1$s needs at least %2$s version"
493
+ msgstr "%1$s χρειάζεται τουλάχιστον %2$s έκδοση"
494
+
495
+ #: lib/yith-system-status.php:537
496
+ msgid ""
497
+ "Update it to the latest version in order to benefit of all new features and "
498
+ "security updates."
499
+ msgstr ""
500
+ "Κάντε αναβάθμιση της τελευταίας έκδοσης για να επωφεληθείτε από τα νέα "
501
+ "χαρακτηριστικά και τις αναβαθμίσεις προστασίας."
502
+
503
+ #: lib/yith-system-status.php:541 lib/yith-system-status.php:547
504
+ msgid "Contact your hosting company in order to update it."
505
+ msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να αναβαθμίσετε."
506
+
507
+ #: lib/yith-system-status.php:545
508
+ msgid "Contact your hosting company in order to install it."
509
+ msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να το ενεργοποιήσετε."
510
+
511
+ #. translators: %1$s code, %2$s file name
512
+ #: lib/yith-system-status.php:552
513
+ msgid "Remove %1$s from %2$s file"
514
+ msgstr "Αφαίρεση %1$s από αρχείο %2$s"
515
+
516
+ #: lib/yith-system-status.php:560
517
+ msgid "Contact your hosting company in order to enable it."
518
+ msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να ενεργοποιήσετε."
519
+
520
+ #. translators: %1$s opening link tag, %2$s closing link tag
521
+ #: lib/yith-system-status.php:564 lib/yith-system-status.php:588
522
+ msgid ""
523
+ "Read more %1$shere%2$s or contact your hosting company in order to increase "
524
+ "it."
525
+ msgstr ""
526
+ "Μάθετε περισσότερα %1$sεδώ%2$s ή επικοινωνήστε με την εταιρεία hosting σας "
527
+ "για να το βελτιώσετε."
528
+
529
+ #. translators: %s recommended memory amount
530
+ #: lib/yith-system-status.php:585
531
+ msgid ""
532
+ "For optimal functioning of our plugins, we suggest setting at least %s of "
533
+ "available memory"
534
+ msgstr ""
535
+ "Για την βέλτιστη λειτουργικότητα των προσθέτων μας, προτείνουμε να ορίσετε "
536
+ "τουλάχιστον %s διαθέσιμης μνήμης"
537
+
538
+ #. translators: %1$s TLS label, %2$s cURL label
539
+ #: lib/yith-system-status.php:593
540
+ msgid ""
541
+ "The system check cannot determine which %1$s version is installed because "
542
+ "%2$s module is disabled. Ask your hosting company to enable it."
543
+ msgstr ""
544
+ "Το σύστημα δεν μπορεί να καθορίσει ποια %1$s έκδοση έχει εγκατασταθεί γιατί "
545
+ "το %2$s άρθρωμα είναι απενεργοποιημένο. Ζητήστε από την εταιρεία hosting σας "
546
+ "να το ενεργοποιήσει."
547
+
548
+ #. translators: %1$s TLS label
549
+ #: lib/yith-system-status.php:596
550
+ msgid ""
551
+ "The system check cannot determine which %1$s version is installed due to a "
552
+ "connection issue between your site and our server."
553
+ msgstr ""
554
+ "Ο έλεγχος συστήματος δεν μπορεί να διευκρινήσει ποια έκδοση %1$s έχει "
555
+ "εγκατασταθεί λόγω προβλήματος σύνδεσης ανάμεσα στον ιστότοπο σας και τον "
556
+ "διακομιστή μας."
557
 
558
  #: templates/fields/ajax-customers.php:57
559
  msgid "Search Customers"
685
  msgid "Reset Defaults"
686
  msgstr "Επαναφορά Προεπιλεγμένων"
687
 
688
+ #: templates/sysinfo/system-information-panel.php:39
689
  msgid "YITH System Information"
690
  msgstr "Σύστημα Πληροφοριών YITH"
691
 
692
+ #: templates/sysinfo/system-information-panel.php:50
693
+ msgid "WP debug.log file"
694
+ msgstr "Αρχείο WP debug.log"
695
 
696
+ #: templates/sysinfo/system-information-panel.php:54
697
+ msgid "PHP error_log file"
698
+ msgstr "Αρχείο PHP error_log"
699
 
700
+ #: templates/sysinfo/system-information-panel.php:59
701
+ #: templates/sysinfo/system-information-panel.php:83
702
+ msgid "Back to System panel"
703
+ msgstr "Πίσω στο πάνελ Συστήματος"
 
 
 
 
 
 
 
704
 
705
  #: templates/sysinfo/system-information-panel.php:96
706
+ msgid "Back to top"
707
+ msgstr "Πίσω στην κορυφή"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
708
 
709
+ #: templates/sysinfo/system-information-panel.php:104
710
+ msgid "Site URL"
711
+ msgstr "URL Ιστοσελίδας"
712
 
713
+ #: templates/sysinfo/system-information-panel.php:112
714
+ msgid "Output IP Address"
715
+ msgstr "Διεύθυνση IP Παραγωγής"
716
 
717
+ #: templates/sysinfo/system-information-panel.php:120
718
+ msgid "Defined WP_CACHE"
719
+ msgstr "Καθορισμένο WP_CACHE"
720
 
721
+ #: templates/sysinfo/system-information-panel.php:123
722
+ msgid "Yes"
723
+ msgstr "Ναι"
 
 
 
 
 
724
 
725
+ #: templates/sysinfo/system-information-panel.php:123
726
+ msgid "No"
727
+ msgstr "Όχι"
 
 
 
 
728
 
729
+ #: templates/sysinfo/system-information-panel.php:159
730
  msgid "Show full PHPInfo"
731
  msgstr "Πλήρης εμφάνιση PHPInfo"
732
 
733
+ #: templates/sysinfo/system-information-panel.php:167
734
+ msgid "Show log files"
735
+ msgstr "Εμφάνιση αρχείων καταγραφής"
 
 
 
 
736
 
737
  #: yit-plugin.php:194
738
  msgid "License"
819
  #: templates/fields/dimensions.php:16
820
  msgctxt "Position in the \"Dimensions\" field"
821
  msgid "Top"
822
+ msgstr "Κορυφή"
823
 
824
  #: templates/fields/dimensions.php:17
825
  msgctxt "Position in the \"Dimensions\" field"
826
  msgid "Right"
827
+ msgstr "Δεξιά"
828
 
829
  #: templates/fields/dimensions.php:18
830
  msgctxt "Position in the \"Dimensions\" field"
831
  msgid "Bottom"
832
+ msgstr "Κάτω"
833
 
834
  #: templates/fields/dimensions.php:19
835
  msgctxt "Position in the \"Dimensions\" field"
836
  msgid "Left"
837
+ msgstr "Αριστερά"
838
 
839
  #: templates/fields/dimensions.php:117
840
  msgctxt "Tooltip in the \"Dimensions\" field"
841
  msgid "Link values together"
842
+ msgstr "Συνδέστε αξίες"
843
 
844
  #: templates/fields/onoff.php:24
845
  msgctxt "YES/NO button: use MAX 3 characters!"
876
  msgid "Settings"
877
  msgstr "Ρυθμίσεις"
878
 
879
+ #~ msgid ""
880
+ #~ "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
881
+ #~ "install it."
882
+ #~ msgstr ""
883
+ #~ "Το άρθρωμα <b>ImageMagick</b> δεν έχει εγκατασταθεί. Ζητήστε από την "
884
+ #~ "εταιρεία hosting σας να το εγκαταστήσει."
885
+
886
  #~ msgctxt "ON/OFF button: use MAX 3 characters!"
887
  #~ msgid "ON"
888
  #~ msgstr "ΕΝΕΡΓΟΠΟΙΗΣΗ"
plugin-fw/languages/yith-plugin-fw-es_ES.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2020-04-23 06:38:32+00:00\n"
8
  "PO-Revision-Date: 2020-04-06 10:45+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
@@ -22,6 +22,33 @@ msgstr ""
22
  "X-Textdomain-Support: yes\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  #: lib/yit-cpt-unlimited.php:462 lib/yit-cpt-unlimited.php:576
26
  #: lib/yit-cpt-unlimited.php:721 lib/yit-cpt-unlimited.php:1636
27
  msgid "Add %s"
@@ -203,7 +230,7 @@ msgstr "Añadir %s desde imágenes"
203
  msgid "Upload multiple files"
204
  msgstr "Cargar archivos múltiples"
205
 
206
- #: lib/yit-plugin-panel-wc.php:399
207
  msgid "The changes you have made will be lost if you leave this page."
208
  msgstr "Los cambios que has hecho se perderán si abandonas esta página."
209
 
@@ -211,87 +238,87 @@ msgstr "Los cambios que has hecho se perderán si abandonas esta página."
211
  msgid "Plugin Settings"
212
  msgstr "Ajustes del plugin"
213
 
214
- #: lib/yit-plugin-panel.php:455 lib/yit-plugin-panel.php:458
215
  msgid "How to install premium version"
216
  msgstr "Cómo instalar la versión premium"
217
 
218
- #: lib/yit-plugin-panel.php:603 lib/yit-plugin-subpanel.php:151
219
  #: templates/panel/woocommerce/woocommerce-form.php:14
220
  msgid "Save Changes"
221
  msgstr "Guardar cambios"
222
 
223
- #: lib/yit-plugin-panel.php:606 lib/yit-plugin-subpanel.php:154
224
  #: templates/panel/woocommerce/woocommerce-form.php:17
225
  msgid ""
226
  "If you continue with this action, you will reset all options in this page."
227
  msgstr ""
228
  "Si sigues con esta acción, se reiniciarán todas las opciones en esta página."
229
 
230
- #: lib/yit-plugin-panel.php:608 lib/yit-plugin-subpanel.php:156
231
  msgid "Reset to default"
232
  msgstr "Restablecer a predeterminado"
233
 
234
- #: lib/yit-plugin-panel.php:609 lib/yit-plugin-subpanel.php:157
235
  #: templates/panel/woocommerce/woocommerce-form.php:21
236
  msgid "Are you sure?"
237
  msgstr "¿Estás seguro/a?"
238
 
239
- #: lib/yit-plugin-panel.php:807
240
  msgid ""
241
  "The element you have entered already exists. Please, enter another name."
242
  msgstr ""
243
  "El elemento que has introducido ya existe. Por favor, introduce otro nombre."
244
 
245
- #: lib/yit-plugin-panel.php:808
246
  msgid "Settings saved"
247
  msgstr "Ajustes guardados"
248
 
249
- #: lib/yit-plugin-panel.php:809
250
  msgid "Settings reset"
251
  msgstr "Ajustes reiniciados"
252
 
253
- #: lib/yit-plugin-panel.php:810
254
  msgid "Element deleted correctly."
255
  msgstr "Elemento borrado correctamente."
256
 
257
- #: lib/yit-plugin-panel.php:811 lib/yit-plugin-panel.php:812
258
  msgid "Element updated correctly."
259
  msgstr "Elemento actualizado correctamente."
260
 
261
- #: lib/yit-plugin-panel.php:813
262
  msgid "Database imported correctly."
263
  msgstr "Base de datos importada correctamente."
264
 
265
- #: lib/yit-plugin-panel.php:814
266
  msgid "An error has occurred during import. Please try again."
267
  msgstr ""
268
  "Ha ocurrido un error durante la importación. Por favor, inténtalo de nuevo."
269
 
270
- #: lib/yit-plugin-panel.php:815
271
  msgid "The added file is not valid."
272
  msgstr "El archivo añadido no es válido."
273
 
274
- #: lib/yit-plugin-panel.php:816
275
  msgid "Sorry, import is disabled."
276
  msgstr "Lo sentimos, la importación está deshabilitada."
277
 
278
- #: lib/yit-plugin-panel.php:817
279
  msgid "Sorting successful."
280
  msgstr "Clasificación fue realizada con éxito."
281
 
282
- #: lib/yit-plugin-panel.php:1265
283
  msgid "We need your support"
284
  msgstr "Necesitamos tu ayuda"
285
 
286
- #: lib/yit-plugin-panel.php:1266
287
  msgid "to keep updating and improving the plugin. Please,"
288
  msgstr "para seguir actualizando y mejora el plugin. Por favor,"
289
 
290
- #: lib/yit-plugin-panel.php:1268
291
  msgid "help us by leaving a five-star rating"
292
  msgstr "ayúdanos dejando una valoración de 5 estrellas"
293
 
294
- #: lib/yit-plugin-panel.php:1269
295
  msgid ":) Thanks!"
296
  msgstr ":) ¡Gracias!"
297
 
@@ -365,82 +392,177 @@ msgstr ""
365
  "Ha ocurrido un error, lo que probablemente significa que el feed está caído. "
366
  "Inténtalo de nuevo más tarde."
367
 
368
- #: lib/yith-system-status.php:105
369
  msgid "WordPress Version"
370
  msgstr "Versión de WordPress"
371
 
372
- #: lib/yith-system-status.php:106
373
  msgid "WooCommerce Version"
374
  msgstr "Versión de WooCommerce"
375
 
376
- #: lib/yith-system-status.php:107
377
  msgid "Available Memory"
378
  msgstr "Memoria disponible"
379
 
380
- #: lib/yith-system-status.php:108
381
  msgid "PHP Version"
382
  msgstr "Versión PHP"
383
 
384
- #: lib/yith-system-status.php:109
385
  msgid "TLS Version"
386
  msgstr "Versión TLS"
387
 
388
- #: lib/yith-system-status.php:110
389
  msgid "WordPress Cron"
390
  msgstr "Cron de WordPress"
391
 
392
- #: lib/yith-system-status.php:111
393
  msgid "SimpleXML"
394
  msgstr "SimpleXML"
395
 
396
- #: lib/yith-system-status.php:112
397
  msgid "MultiByte String"
398
  msgstr "Cadena MultiByte"
399
 
400
- #: lib/yith-system-status.php:113
401
  msgid "ImageMagick Version"
402
  msgstr "Versión ImageMagick"
403
 
404
- #: lib/yith-system-status.php:114
405
  msgid "GD Library"
406
  msgstr "Biblioteca GD"
407
 
408
- #: lib/yith-system-status.php:115
409
  msgid "Iconv Module"
410
  msgstr "Módulo Iconv"
411
 
412
- #: lib/yith-system-status.php:116
413
  msgid "OPCache Save Comments"
414
  msgstr "Guardar comentarios OPCache"
415
 
416
- #: lib/yith-system-status.php:117
417
  msgid "URL FOpen"
418
  msgstr "URL FOpen"
419
 
420
- #: lib/yith-system-status.php:135 lib/yith-system-status.php:136
421
  msgid "System Status"
422
  msgstr "Estado del sistema"
423
 
424
- #: lib/yith-system-status.php:179
425
  msgid "YITH Plugins"
426
  msgstr "Plugins de YITH"
427
 
428
- #: lib/yith-system-status.php:180
429
  msgid "WooCommerce"
430
  msgstr "WooCommerce"
431
 
432
- #: lib/yith-system-status.php:297
433
  msgid "Warning!"
434
  msgstr "¡Atención! "
435
 
436
- #: lib/yith-system-status.php:298
 
 
437
  msgid ""
438
- "The system check has detected some compatibility issues on your "
439
- "installation. %sClick here%s to know more"
440
  msgstr ""
441
  "La comprobación del sistema ha detectado algunos errores en tu instalación. "
442
  "%sHaz clic aquí%s para saber más"
443
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
444
  #: templates/fields/ajax-customers.php:57
445
  msgid "Search Customers"
446
  msgstr "Buscar clientes"
@@ -571,107 +693,55 @@ msgstr "(Por defecto: <i %s></i> )"
571
  msgid "Reset Defaults"
572
  msgstr "Ajustes predeterminados"
573
 
574
- #: templates/sysinfo/system-information-panel.php:30
575
  msgid "YITH System Information"
576
  msgstr "Información del sistema de YITH"
577
 
578
- #: templates/sysinfo/system-information-panel.php:38
579
- msgid "Site URL"
580
- msgstr "URL del sitio"
581
-
582
- #: templates/sysinfo/system-information-panel.php:46
583
- msgid "Output IP Address"
584
- msgstr "Salida Dirección IP"
585
-
586
- #: templates/sysinfo/system-information-panel.php:76
587
- msgid "Enabled"
588
- msgstr "Activado"
589
-
590
- #: templates/sysinfo/system-information-panel.php:76
591
- msgid "Disabled"
592
- msgstr "Desactivado"
593
-
594
- #: templates/sysinfo/system-information-panel.php:82
595
- msgid "N/A"
596
- msgstr "N/D"
597
-
598
- #: templates/sysinfo/system-information-panel.php:96
599
- msgid "%s needs %s enabled"
600
- msgstr "%s necesita %s enabled"
601
-
602
- #: templates/sysinfo/system-information-panel.php:98
603
- msgid "%s needs at least %s of available memory"
604
- msgstr "%s necesita al menos %s de memoria disponible"
605
-
606
- #: templates/sysinfo/system-information-panel.php:100
607
- #: templates/sysinfo/system-information-panel.php:149
608
- msgid ""
609
- "For optimal functioning of our plugins, we suggest setting at least %s of "
610
- "available memory"
611
  msgstr ""
612
- "Para el optimo funcionamiento de los plugins, sugerimos configurar al menos "
613
- "%s de memoria disponible"
614
 
615
- #: templates/sysinfo/system-information-panel.php:102
616
- #: templates/sysinfo/system-information-panel.php:137
617
- #: templates/sysinfo/system-information-panel.php:151
618
- msgid ""
619
- "Read more %s here%s or contact your hosting company in order to increase it."
620
  msgstr ""
621
- "Lee más %s aquí%s o contacta a tu compañía de hosting para incrementarlo."
622
-
623
- #: templates/sysinfo/system-information-panel.php:105
624
- msgid "%s needs at least %s version"
625
- msgstr "%s necesita al menos la versión %s"
626
 
627
- #: templates/sysinfo/system-information-panel.php:116
628
- msgid ""
629
- "Update it to the latest version in order to benefit of all new features and "
630
- "security updates."
631
- msgstr ""
632
- "Actualízalo a la última versión para beneficiarte de todas las nuevas "
633
- "características y actualizaciones de seguridad"
634
 
635
- #: templates/sysinfo/system-information-panel.php:122
636
- msgid "Contact your hosting company in order to update it."
637
- msgstr "Contacta a tu compañía de hosting para actualizarlo."
638
 
639
- #: templates/sysinfo/system-information-panel.php:126
640
- msgid "Remove %s from %s file"
641
- msgstr "Eliminar %s del archivo %s"
642
 
643
- #: templates/sysinfo/system-information-panel.php:134
644
- msgid "Contact your hosting company in order to enable it."
645
- msgstr "Contacta a tu compañía de hosting para activarlo."
646
 
647
- #: templates/sysinfo/system-information-panel.php:157
648
- msgid ""
649
- "We cannot determine which <b>TLS</b> version is installed because <b>cURL</"
650
- "b> module is disabled. Ask your hosting company to enable it."
651
  msgstr ""
652
- "No podemos determinar qué versión <b>TLS</b> está instalada porque <b>cURL</"
653
- "b> el módulo está desactivado. Solicita a tu compañía de hosting que lo "
654
- "active."
655
 
656
- #: templates/sysinfo/system-information-panel.php:160
657
- msgid ""
658
- "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
659
- "install it."
660
  msgstr ""
661
- "<b>ImageMagick</b> el módulo no está instalado. Solicita a tu compañia de "
662
- "hosting que lo instale."
663
 
664
- #: templates/sysinfo/system-information-panel.php:172
 
 
 
 
 
665
  msgid "Show full PHPInfo"
666
  msgstr "Mostrar PHPInfo completa"
667
 
668
- #: templates/sysinfo/system-information-panel.php:176
669
- msgid "Back to System panel"
670
- msgstr "Volver al panel del Sistema"
671
-
672
- #: templates/sysinfo/system-information-panel.php:193
673
- msgid "Back to top"
674
- msgstr "Volver arriba"
675
 
676
  #: yit-plugin.php:194
677
  msgid "License"
@@ -815,6 +885,13 @@ msgctxt "Action links"
815
  msgid "Settings"
816
  msgstr "Ajustes"
817
 
 
 
 
 
 
 
 
818
  #~ msgctxt "ON/OFF button: use MAX 3 characters!"
819
  #~ msgid "ON"
820
  #~ msgstr "ON"
@@ -1159,9 +1236,6 @@ msgstr "Ajustes"
1159
  #~ msgid "Renew license"
1160
  #~ msgstr "Renovar licencia"
1161
 
1162
- #~ msgid "Select All"
1163
- #~ msgstr "Seleccionar todo"
1164
-
1165
  #~ msgid "Deselect All"
1166
  #~ msgstr "Deseleccionar todo"
1167
 
@@ -1230,9 +1304,6 @@ msgstr "Ajustes"
1230
  #~ msgid "Theme Icon"
1231
  #~ msgstr "Icono del tema"
1232
 
1233
- #~ msgid "None"
1234
- #~ msgstr "Ninguno"
1235
-
1236
  #~ msgid "Field Title"
1237
  #~ msgstr "Campo de título"
1238
 
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2020-08-07 14:15:08+00:00\n"
8
  "PO-Revision-Date: 2020-04-06 10:45+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
22
  "X-Textdomain-Support: yes\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
 
25
+ #: lib/yit-assets.php:102
26
+ msgid "Clear"
27
+ msgstr ""
28
+
29
+ #: lib/yit-assets.php:103
30
+ msgid "Clear color"
31
+ msgstr ""
32
+
33
+ #: lib/yit-assets.php:104
34
+ #, fuzzy
35
+ msgid "Default"
36
+ msgstr "Establecer por defecto"
37
+
38
+ #: lib/yit-assets.php:105
39
+ #, fuzzy
40
+ msgid "Select default color"
41
+ msgstr "Establecer por defecto"
42
+
43
+ #: lib/yit-assets.php:106
44
+ #, fuzzy
45
+ msgid "Select Color"
46
+ msgstr "Seleccionar todo"
47
+
48
+ #: lib/yit-assets.php:107
49
+ msgid "Color value"
50
+ msgstr ""
51
+
52
  #: lib/yit-cpt-unlimited.php:462 lib/yit-cpt-unlimited.php:576
53
  #: lib/yit-cpt-unlimited.php:721 lib/yit-cpt-unlimited.php:1636
54
  msgid "Add %s"
230
  msgid "Upload multiple files"
231
  msgstr "Cargar archivos múltiples"
232
 
233
+ #: lib/yit-plugin-panel-wc.php:426
234
  msgid "The changes you have made will be lost if you leave this page."
235
  msgstr "Los cambios que has hecho se perderán si abandonas esta página."
236
 
238
  msgid "Plugin Settings"
239
  msgstr "Ajustes del plugin"
240
 
241
+ #: lib/yit-plugin-panel.php:454 lib/yit-plugin-panel.php:457
242
  msgid "How to install premium version"
243
  msgstr "Cómo instalar la versión premium"
244
 
245
+ #: lib/yit-plugin-panel.php:617 lib/yit-plugin-subpanel.php:151
246
  #: templates/panel/woocommerce/woocommerce-form.php:14
247
  msgid "Save Changes"
248
  msgstr "Guardar cambios"
249
 
250
+ #: lib/yit-plugin-panel.php:621 lib/yit-plugin-subpanel.php:154
251
  #: templates/panel/woocommerce/woocommerce-form.php:17
252
  msgid ""
253
  "If you continue with this action, you will reset all options in this page."
254
  msgstr ""
255
  "Si sigues con esta acción, se reiniciarán todas las opciones en esta página."
256
 
257
+ #: lib/yit-plugin-panel.php:624 lib/yit-plugin-subpanel.php:156
258
  msgid "Reset to default"
259
  msgstr "Restablecer a predeterminado"
260
 
261
+ #: lib/yit-plugin-panel.php:625 lib/yit-plugin-subpanel.php:157
262
  #: templates/panel/woocommerce/woocommerce-form.php:21
263
  msgid "Are you sure?"
264
  msgstr "¿Estás seguro/a?"
265
 
266
+ #: lib/yit-plugin-panel.php:823
267
  msgid ""
268
  "The element you have entered already exists. Please, enter another name."
269
  msgstr ""
270
  "El elemento que has introducido ya existe. Por favor, introduce otro nombre."
271
 
272
+ #: lib/yit-plugin-panel.php:824
273
  msgid "Settings saved"
274
  msgstr "Ajustes guardados"
275
 
276
+ #: lib/yit-plugin-panel.php:825
277
  msgid "Settings reset"
278
  msgstr "Ajustes reiniciados"
279
 
280
+ #: lib/yit-plugin-panel.php:826
281
  msgid "Element deleted correctly."
282
  msgstr "Elemento borrado correctamente."
283
 
284
+ #: lib/yit-plugin-panel.php:827 lib/yit-plugin-panel.php:828
285
  msgid "Element updated correctly."
286
  msgstr "Elemento actualizado correctamente."
287
 
288
+ #: lib/yit-plugin-panel.php:829
289
  msgid "Database imported correctly."
290
  msgstr "Base de datos importada correctamente."
291
 
292
+ #: lib/yit-plugin-panel.php:830
293
  msgid "An error has occurred during import. Please try again."
294
  msgstr ""
295
  "Ha ocurrido un error durante la importación. Por favor, inténtalo de nuevo."
296
 
297
+ #: lib/yit-plugin-panel.php:831
298
  msgid "The added file is not valid."
299
  msgstr "El archivo añadido no es válido."
300
 
301
+ #: lib/yit-plugin-panel.php:832
302
  msgid "Sorry, import is disabled."
303
  msgstr "Lo sentimos, la importación está deshabilitada."
304
 
305
+ #: lib/yit-plugin-panel.php:833
306
  msgid "Sorting successful."
307
  msgstr "Clasificación fue realizada con éxito."
308
 
309
+ #: lib/yit-plugin-panel.php:1281
310
  msgid "We need your support"
311
  msgstr "Necesitamos tu ayuda"
312
 
313
+ #: lib/yit-plugin-panel.php:1282
314
  msgid "to keep updating and improving the plugin. Please,"
315
  msgstr "para seguir actualizando y mejora el plugin. Por favor,"
316
 
317
+ #: lib/yit-plugin-panel.php:1284
318
  msgid "help us by leaving a five-star rating"
319
  msgstr "ayúdanos dejando una valoración de 5 estrellas"
320
 
321
+ #: lib/yit-plugin-panel.php:1285
322
  msgid ":) Thanks!"
323
  msgstr ":) ¡Gracias!"
324
 
392
  "Ha ocurrido un error, lo que probablemente significa que el feed está caído. "
393
  "Inténtalo de nuevo más tarde."
394
 
395
+ #: lib/yith-system-status.php:111
396
  msgid "WordPress Version"
397
  msgstr "Versión de WordPress"
398
 
399
+ #: lib/yith-system-status.php:112
400
  msgid "WooCommerce Version"
401
  msgstr "Versión de WooCommerce"
402
 
403
+ #: lib/yith-system-status.php:113
404
  msgid "Available Memory"
405
  msgstr "Memoria disponible"
406
 
407
+ #: lib/yith-system-status.php:114
408
  msgid "PHP Version"
409
  msgstr "Versión PHP"
410
 
411
+ #: lib/yith-system-status.php:115
412
  msgid "TLS Version"
413
  msgstr "Versión TLS"
414
 
415
+ #: lib/yith-system-status.php:116
416
  msgid "WordPress Cron"
417
  msgstr "Cron de WordPress"
418
 
419
+ #: lib/yith-system-status.php:117
420
  msgid "SimpleXML"
421
  msgstr "SimpleXML"
422
 
423
+ #: lib/yith-system-status.php:118
424
  msgid "MultiByte String"
425
  msgstr "Cadena MultiByte"
426
 
427
+ #: lib/yith-system-status.php:119
428
  msgid "ImageMagick Version"
429
  msgstr "Versión ImageMagick"
430
 
431
+ #: lib/yith-system-status.php:120
432
  msgid "GD Library"
433
  msgstr "Biblioteca GD"
434
 
435
+ #: lib/yith-system-status.php:121
436
  msgid "Iconv Module"
437
  msgstr "Módulo Iconv"
438
 
439
+ #: lib/yith-system-status.php:122
440
  msgid "OPCache Save Comments"
441
  msgstr "Guardar comentarios OPCache"
442
 
443
+ #: lib/yith-system-status.php:123
444
  msgid "URL FOpen"
445
  msgstr "URL FOpen"
446
 
447
+ #: lib/yith-system-status.php:141 lib/yith-system-status.php:142
448
  msgid "System Status"
449
  msgstr "Estado del sistema"
450
 
451
+ #: lib/yith-system-status.php:184
452
  msgid "YITH Plugins"
453
  msgstr "Plugins de YITH"
454
 
455
+ #: lib/yith-system-status.php:192
456
  msgid "WooCommerce"
457
  msgstr "WooCommerce"
458
 
459
+ #: lib/yith-system-status.php:330
460
  msgid "Warning!"
461
  msgstr "¡Atención! "
462
 
463
+ #. translators: %1$s open link tag, %2$s open link tag
464
+ #: lib/yith-system-status.php:334
465
+ #, fuzzy
466
  msgid ""
467
+ "The system check has detected some compatibility issues on your installation."
468
+ "%1$sClick here%2$s to know more"
469
  msgstr ""
470
  "La comprobación del sistema ha detectado algunos errores en tu instalación. "
471
  "%sHaz clic aquí%s para saber más"
472
 
473
+ #: lib/yith-system-status.php:473
474
+ msgid "Enabled"
475
+ msgstr "Activado"
476
+
477
+ #: lib/yith-system-status.php:473
478
+ msgid "Disabled"
479
+ msgstr "Desactivado"
480
+
481
+ #: lib/yith-system-status.php:478
482
+ msgid "N/A"
483
+ msgstr "N/D"
484
+
485
+ #. translators: %1$s plugin name, %2$s requirement name
486
+ #: lib/yith-system-status.php:506
487
+ #, fuzzy
488
+ msgid "%1$s needs %2$s enabled"
489
+ msgstr "%s necesita %s enabled"
490
+
491
+ #. translators: %1$s plugin name, %2$s required memory amount
492
+ #: lib/yith-system-status.php:509
493
+ #, fuzzy
494
+ msgid "%1$s needs at least %2$s of available memory"
495
+ msgstr "%s necesita al menos %s de memoria disponible"
496
+
497
+ #. translators: %1$s plugin name, %2$s version number
498
+ #: lib/yith-system-status.php:512
499
+ #, fuzzy
500
+ msgid "%1$s needs at least %2$s version"
501
+ msgstr "%s necesita al menos la versión %s"
502
+
503
+ #: lib/yith-system-status.php:537
504
+ msgid ""
505
+ "Update it to the latest version in order to benefit of all new features and "
506
+ "security updates."
507
+ msgstr ""
508
+ "Actualízalo a la última versión para beneficiarte de todas las nuevas "
509
+ "características y actualizaciones de seguridad"
510
+
511
+ #: lib/yith-system-status.php:541 lib/yith-system-status.php:547
512
+ msgid "Contact your hosting company in order to update it."
513
+ msgstr "Contacta a tu compañía de hosting para actualizarlo."
514
+
515
+ #: lib/yith-system-status.php:545
516
+ #, fuzzy
517
+ msgid "Contact your hosting company in order to install it."
518
+ msgstr "Contacta a tu compañía de hosting para activarlo."
519
+
520
+ #. translators: %1$s code, %2$s file name
521
+ #: lib/yith-system-status.php:552
522
+ #, fuzzy
523
+ msgid "Remove %1$s from %2$s file"
524
+ msgstr "Eliminar %s del archivo %s"
525
+
526
+ #: lib/yith-system-status.php:560
527
+ msgid "Contact your hosting company in order to enable it."
528
+ msgstr "Contacta a tu compañía de hosting para activarlo."
529
+
530
+ #. translators: %1$s opening link tag, %2$s closing link tag
531
+ #: lib/yith-system-status.php:564 lib/yith-system-status.php:588
532
+ #, fuzzy
533
+ msgid ""
534
+ "Read more %1$shere%2$s or contact your hosting company in order to increase "
535
+ "it."
536
+ msgstr ""
537
+ "Lee más %s aquí%s o contacta a tu compañía de hosting para incrementarlo."
538
+
539
+ #. translators: %s recommended memory amount
540
+ #: lib/yith-system-status.php:585
541
+ msgid ""
542
+ "For optimal functioning of our plugins, we suggest setting at least %s of "
543
+ "available memory"
544
+ msgstr ""
545
+ "Para el optimo funcionamiento de los plugins, sugerimos configurar al menos "
546
+ "%s de memoria disponible"
547
+
548
+ #. translators: %1$s TLS label, %2$s cURL label
549
+ #: lib/yith-system-status.php:593
550
+ #, fuzzy
551
+ msgid ""
552
+ "The system check cannot determine which %1$s version is installed because "
553
+ "%2$s module is disabled. Ask your hosting company to enable it."
554
+ msgstr ""
555
+ "No podemos determinar qué versión <b>TLS</b> está instalada porque <b>cURL</"
556
+ "b> el módulo está desactivado. Solicita a tu compañía de hosting que lo "
557
+ "active."
558
+
559
+ #. translators: %1$s TLS label
560
+ #: lib/yith-system-status.php:596
561
+ msgid ""
562
+ "The system check cannot determine which %1$s version is installed due to a "
563
+ "connection issue between your site and our server."
564
+ msgstr ""
565
+
566
  #: templates/fields/ajax-customers.php:57
567
  msgid "Search Customers"
568
  msgstr "Buscar clientes"
693
  msgid "Reset Defaults"
694
  msgstr "Ajustes predeterminados"
695
 
696
+ #: templates/sysinfo/system-information-panel.php:39
697
  msgid "YITH System Information"
698
  msgstr "Información del sistema de YITH"
699
 
700
+ #: templates/sysinfo/system-information-panel.php:50
701
+ msgid "WP debug.log file"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
702
  msgstr ""
 
 
703
 
704
+ #: templates/sysinfo/system-information-panel.php:54
705
+ msgid "PHP error_log file"
 
 
 
706
  msgstr ""
 
 
 
 
 
707
 
708
+ #: templates/sysinfo/system-information-panel.php:59
709
+ #: templates/sysinfo/system-information-panel.php:83
710
+ msgid "Back to System panel"
711
+ msgstr "Volver al panel del Sistema"
 
 
 
712
 
713
+ #: templates/sysinfo/system-information-panel.php:96
714
+ msgid "Back to top"
715
+ msgstr "Volver arriba"
716
 
717
+ #: templates/sysinfo/system-information-panel.php:104
718
+ msgid "Site URL"
719
+ msgstr "URL del sitio"
720
 
721
+ #: templates/sysinfo/system-information-panel.php:112
722
+ msgid "Output IP Address"
723
+ msgstr "Salida Dirección IP"
724
 
725
+ #: templates/sysinfo/system-information-panel.php:120
726
+ msgid "Defined WP_CACHE"
 
 
727
  msgstr ""
 
 
 
728
 
729
+ #: templates/sysinfo/system-information-panel.php:123
730
+ msgid "Yes"
 
 
731
  msgstr ""
 
 
732
 
733
+ #: templates/sysinfo/system-information-panel.php:123
734
+ #, fuzzy
735
+ msgid "No"
736
+ msgstr "Ninguno"
737
+
738
+ #: templates/sysinfo/system-information-panel.php:159
739
  msgid "Show full PHPInfo"
740
  msgstr "Mostrar PHPInfo completa"
741
 
742
+ #: templates/sysinfo/system-information-panel.php:167
743
+ msgid "Show log files"
744
+ msgstr ""
 
 
 
 
745
 
746
  #: yit-plugin.php:194
747
  msgid "License"
885
  msgid "Settings"
886
  msgstr "Ajustes"
887
 
888
+ #~ msgid ""
889
+ #~ "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
890
+ #~ "install it."
891
+ #~ msgstr ""
892
+ #~ "<b>ImageMagick</b> el módulo no está instalado. Solicita a tu compañia de "
893
+ #~ "hosting que lo instale."
894
+
895
  #~ msgctxt "ON/OFF button: use MAX 3 characters!"
896
  #~ msgid "ON"
897
  #~ msgstr "ON"
1236
  #~ msgid "Renew license"
1237
  #~ msgstr "Renovar licencia"
1238
 
 
 
 
1239
  #~ msgid "Deselect All"
1240
  #~ msgstr "Deseleccionar todo"
1241
 
1304
  #~ msgid "Theme Icon"
1305
  #~ msgstr "Icono del tema"
1306
 
 
 
 
1307
  #~ msgid "Field Title"
1308
  #~ msgstr "Campo de título"
1309
 
plugin-fw/languages/yith-plugin-fw-it_IT.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-it_IT.po CHANGED
@@ -4,8 +4,8 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2020-04-23 06:38:32+00:00\n"
8
- "PO-Revision-Date: 2020-06-01 13:46+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: YIThemes <plugins@yithemes.com>\n"
11
  "Language: it_IT\n"
@@ -22,6 +22,30 @@ msgstr ""
22
  "X-Textdomain-Support: yes\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  #: lib/yit-cpt-unlimited.php:462 lib/yit-cpt-unlimited.php:576
26
  #: lib/yit-cpt-unlimited.php:721 lib/yit-cpt-unlimited.php:1636
27
  msgid "Add %s"
@@ -202,7 +226,7 @@ msgstr "Aggiungi %s dalla immagini"
202
  msgid "Upload multiple files"
203
  msgstr "Carica file multipli"
204
 
205
- #: lib/yit-plugin-panel-wc.php:399
206
  msgid "The changes you have made will be lost if you leave this page."
207
  msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
208
 
@@ -210,16 +234,16 @@ msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
210
  msgid "Plugin Settings"
211
  msgstr "Impostazioni plugin"
212
 
213
- #: lib/yit-plugin-panel.php:455 lib/yit-plugin-panel.php:458
214
  msgid "How to install premium version"
215
  msgstr "Come installare la versione premium"
216
 
217
- #: lib/yit-plugin-panel.php:603 lib/yit-plugin-subpanel.php:151
218
  #: templates/panel/woocommerce/woocommerce-form.php:14
219
  msgid "Save Changes"
220
  msgstr "Salva modifiche"
221
 
222
- #: lib/yit-plugin-panel.php:606 lib/yit-plugin-subpanel.php:154
223
  #: templates/panel/woocommerce/woocommerce-form.php:17
224
  msgid ""
225
  "If you continue with this action, you will reset all options in this page."
@@ -227,69 +251,69 @@ msgstr ""
227
  "Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
228
  "reimpostate."
229
 
230
- #: lib/yit-plugin-panel.php:608 lib/yit-plugin-subpanel.php:156
231
  msgid "Reset to default"
232
  msgstr "Ripristina configurazione predefinita"
233
 
234
- #: lib/yit-plugin-panel.php:609 lib/yit-plugin-subpanel.php:157
235
  #: templates/panel/woocommerce/woocommerce-form.php:21
236
  msgid "Are you sure?"
237
  msgstr "Sei sicuro?"
238
 
239
- #: lib/yit-plugin-panel.php:807
240
  msgid ""
241
  "The element you have entered already exists. Please, enter another name."
242
  msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
243
 
244
- #: lib/yit-plugin-panel.php:808
245
  msgid "Settings saved"
246
  msgstr "Impostazioni salvate"
247
 
248
- #: lib/yit-plugin-panel.php:809
249
  msgid "Settings reset"
250
  msgstr "Impostazioni azzerate"
251
 
252
- #: lib/yit-plugin-panel.php:810
253
  msgid "Element deleted correctly."
254
  msgstr "Elemento rimosso correttamente."
255
 
256
- #: lib/yit-plugin-panel.php:811 lib/yit-plugin-panel.php:812
257
  msgid "Element updated correctly."
258
  msgstr "Elemento aggiornato correttamente."
259
 
260
- #: lib/yit-plugin-panel.php:813
261
  msgid "Database imported correctly."
262
  msgstr "Database importato correttamente."
263
 
264
- #: lib/yit-plugin-panel.php:814
265
  msgid "An error has occurred during import. Please try again."
266
  msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
267
 
268
- #: lib/yit-plugin-panel.php:815
269
  msgid "The added file is not valid."
270
  msgstr "Il file aggiunto non è valido."
271
 
272
- #: lib/yit-plugin-panel.php:816
273
  msgid "Sorry, import is disabled."
274
  msgstr "Ci dispiace, l'importazione è disabilitata."
275
 
276
- #: lib/yit-plugin-panel.php:817
277
  msgid "Sorting successful."
278
  msgstr "Ordinamento effettuato con successo."
279
 
280
- #: lib/yit-plugin-panel.php:1265
281
  msgid "We need your support"
282
  msgstr "Abbiamo bisogno del tuo sostegno"
283
 
284
- #: lib/yit-plugin-panel.php:1266
285
  msgid "to keep updating and improving the plugin. Please,"
286
  msgstr "per poter continuare ad aggiornare e migliorare il plugin."
287
 
288
- #: lib/yit-plugin-panel.php:1268
289
  msgid "help us by leaving a five-star rating"
290
- msgstr "Puoi darci una mano lasciando una recensione a 5 stelle"
291
 
292
- #: lib/yit-plugin-panel.php:1269
293
  msgid ":) Thanks!"
294
  msgstr ":) Grazie!"
295
 
@@ -360,81 +384,171 @@ msgstr ""
360
  "Si è verificato un errore probabilmente causato dal feed non disponibile. "
361
  "Riprova più tardi."
362
 
363
- #: lib/yith-system-status.php:105
364
  msgid "WordPress Version"
365
  msgstr "Versione di WordPress"
366
 
367
- #: lib/yith-system-status.php:106
368
  msgid "WooCommerce Version"
369
  msgstr "Versione di WooCommerce"
370
 
371
- #: lib/yith-system-status.php:107
372
  msgid "Available Memory"
373
  msgstr "Memoria disponibile"
374
 
375
- #: lib/yith-system-status.php:108
376
  msgid "PHP Version"
377
  msgstr "Versione PHP"
378
 
379
- #: lib/yith-system-status.php:109
380
  msgid "TLS Version"
381
  msgstr "Versione TLS"
382
 
383
- #: lib/yith-system-status.php:110
384
  msgid "WordPress Cron"
385
  msgstr "Cron WordPress"
386
 
387
- #: lib/yith-system-status.php:111
388
  msgid "SimpleXML"
389
  msgstr "SimpleXML"
390
 
391
- #: lib/yith-system-status.php:112
392
  msgid "MultiByte String"
393
  msgstr "MultiByte String"
394
 
395
- #: lib/yith-system-status.php:113
396
  msgid "ImageMagick Version"
397
  msgstr "Versione di ImageMagick"
398
 
399
- #: lib/yith-system-status.php:114
400
  msgid "GD Library"
401
  msgstr "GD Library"
402
 
403
- #: lib/yith-system-status.php:115
404
  msgid "Iconv Module"
405
  msgstr "Iconv Module"
406
 
407
- #: lib/yith-system-status.php:116
408
  msgid "OPCache Save Comments"
409
  msgstr "OPCache Save Comments"
410
 
411
- #: lib/yith-system-status.php:117
412
  msgid "URL FOpen"
413
  msgstr "URL FOpen"
414
 
415
- #: lib/yith-system-status.php:135 lib/yith-system-status.php:136
416
  msgid "System Status"
417
  msgstr "Stato del sistema"
418
 
419
- #: lib/yith-system-status.php:179
420
  msgid "YITH Plugins"
421
  msgstr "Plugin YITH"
422
 
423
- #: lib/yith-system-status.php:180
424
  msgid "WooCommerce"
425
  msgstr "WooCommerce"
426
 
427
- #: lib/yith-system-status.php:297
428
  msgid "Warning!"
429
  msgstr "Attenzione!"
430
 
431
- #: lib/yith-system-status.php:298
 
432
  msgid ""
433
- "The system check has detected some compatibility issues on your "
434
- "installation. %sClick here%s to know more"
435
  msgstr ""
436
  "Il controllo di sistema ha individuato delle incompatibilità con la tua "
437
- "installazione. %sVedi qui%s per maggiori informazioni"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
438
 
439
  #: templates/fields/ajax-customers.php:57
440
  msgid "Search Customers"
@@ -566,115 +680,60 @@ msgstr "(Default: <i %s></i> )"
566
  msgid "Reset Defaults"
567
  msgstr "Ripristina impostazioni iniziali"
568
 
569
- #: templates/sysinfo/system-information-panel.php:30
570
  msgid "YITH System Information"
571
  msgstr "YITH System Information"
572
 
573
- #: templates/sysinfo/system-information-panel.php:38
574
- msgid "Site URL"
575
- msgstr "URL del sito"
576
-
577
- #: templates/sysinfo/system-information-panel.php:46
578
- msgid "Output IP Address"
579
- msgstr "Indirizzo IP di output"
580
-
581
- #: templates/sysinfo/system-information-panel.php:76
582
- msgid "Enabled"
583
- msgstr "Abilitato"
584
 
585
- #: templates/sysinfo/system-information-panel.php:76
586
- msgid "Disabled"
587
- msgstr "Disabilitato"
588
 
589
- #: templates/sysinfo/system-information-panel.php:82
590
- msgid "N/A"
591
- msgstr "N.D."
 
592
 
593
  #: templates/sysinfo/system-information-panel.php:96
594
- msgid "%s needs %s enabled"
595
- msgstr "%s necessita l'attivazione di %s"
596
-
597
- #: templates/sysinfo/system-information-panel.php:98
598
- msgid "%s needs at least %s of available memory"
599
- msgstr "%s necessita almeno %s di memoria disponibile"
600
-
601
- #: templates/sysinfo/system-information-panel.php:100
602
- #: templates/sysinfo/system-information-panel.php:149
603
- msgid ""
604
- "For optimal functioning of our plugins, we suggest setting at least %s of "
605
- "available memory"
606
- msgstr ""
607
- "Per il funzionamento ottimale dei nostri plugin consigliamo di impostare "
608
- "almeno %s della memoria disponibile"
609
-
610
- #: templates/sysinfo/system-information-panel.php:102
611
- #: templates/sysinfo/system-information-panel.php:137
612
- #: templates/sysinfo/system-information-panel.php:151
613
- msgid ""
614
- "Read more %s here%s or contact your hosting company in order to increase it."
615
- msgstr ""
616
- "Per maggiori informazioni %s leggi questo%s oppure contatta il tuo host per "
617
- "un upgrade."
618
-
619
- #: templates/sysinfo/system-information-panel.php:105
620
- msgid "%s needs at least %s version"
621
- msgstr "%s necessita almeno della versione %s"
622
-
623
- #: templates/sysinfo/system-information-panel.php:116
624
- msgid ""
625
- "Update it to the latest version in order to benefit of all new features and "
626
- "security updates."
627
- msgstr ""
628
- "Aggiorna all'ultima versione per beneficiare di tutte le nuove funzionalità "
629
- "e degli aggiornamenti di sicurezza."
630
 
631
- #: templates/sysinfo/system-information-panel.php:122
632
- msgid "Contact your hosting company in order to update it."
633
- msgstr "Contatta il tuo servizio hosting per aggiornarlo."
634
 
635
- #: templates/sysinfo/system-information-panel.php:126
636
- msgid "Remove %s from %s file"
637
- msgstr "Rimuovi %s dal file %s"
638
 
639
- #: templates/sysinfo/system-information-panel.php:134
640
- msgid "Contact your hosting company in order to enable it."
641
- msgstr "Per attivarlo contatta il tuo servizio di hosting."
642
 
643
- #: templates/sysinfo/system-information-panel.php:157
644
- msgid ""
645
- "We cannot determine which <b>TLS</b> version is installed because <b>cURL</"
646
- "b> module is disabled. Ask your hosting company to enable it."
647
- msgstr ""
648
- "Non ci è stato possibile determinare quale versione <b>TLS</b> è installata "
649
- "in quanto il modulo <b>cURL</b> è disattivato. Chiedi al tuo servizio "
650
- "hosting di attivarlo."
651
 
652
- #: templates/sysinfo/system-information-panel.php:160
653
- msgid ""
654
- "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
655
- "install it."
656
- msgstr ""
657
- "Il modulo <b>ImageMagick</b> non è installato. Chiedi al tuo servizio di "
658
- "hosting di installarlo."
659
 
660
- #: templates/sysinfo/system-information-panel.php:172
661
  msgid "Show full PHPInfo"
662
  msgstr "Mostra tutto il contenuto di PHPInfo"
663
 
664
- #: templates/sysinfo/system-information-panel.php:176
665
- msgid "Back to System panel"
666
- msgstr "Torna al pannello di Sistema"
667
-
668
- #: templates/sysinfo/system-information-panel.php:193
669
- msgid "Back to top"
670
- msgstr "Torna su"
671
 
672
  #: yit-plugin.php:194
673
  msgid "License"
674
  msgstr "Chiave di licenza"
675
 
676
  #. Author of the plugin/theme
677
- #, fuzzy
678
  msgid "YITH"
679
  msgstr "YITH"
680
 
@@ -754,27 +813,27 @@ msgstr "YITH"
754
  #: templates/fields/dimensions.php:16
755
  msgctxt "Position in the \"Dimensions\" field"
756
  msgid "Top"
757
- msgstr ""
758
 
759
  #: templates/fields/dimensions.php:17
760
  msgctxt "Position in the \"Dimensions\" field"
761
  msgid "Right"
762
- msgstr ""
763
 
764
  #: templates/fields/dimensions.php:18
765
  msgctxt "Position in the \"Dimensions\" field"
766
  msgid "Bottom"
767
- msgstr ""
768
 
769
  #: templates/fields/dimensions.php:19
770
  msgctxt "Position in the \"Dimensions\" field"
771
  msgid "Left"
772
- msgstr ""
773
 
774
  #: templates/fields/dimensions.php:117
775
  msgctxt "Tooltip in the \"Dimensions\" field"
776
  msgid "Link values together"
777
- msgstr ""
778
 
779
  #: templates/fields/onoff.php:24
780
  msgctxt "YES/NO button: use MAX 3 characters!"
@@ -811,6 +870,13 @@ msgctxt "Action links"
811
  msgid "Settings"
812
  msgstr "Impostazioni"
813
 
 
 
 
 
 
 
 
814
  #~ msgctxt "ON/OFF button: use MAX 3 characters!"
815
  #~ msgid "ON"
816
  #~ msgstr "SÌ"
@@ -1141,9 +1207,6 @@ msgstr "Impostazioni"
1141
  #~ msgid "Renew license"
1142
  #~ msgstr "Rinnova la licenza"
1143
 
1144
- #~ msgid "Select All"
1145
- #~ msgstr "Seleziona tutto"
1146
-
1147
  #~ msgid "Deselect All"
1148
  #~ msgstr "Deseleziona tutto"
1149
 
@@ -1213,9 +1276,6 @@ msgstr "Impostazioni"
1213
  #~ msgid "Theme Icon"
1214
  #~ msgstr "Icona tema"
1215
 
1216
- #~ msgid "None"
1217
- #~ msgstr "Nessuno"
1218
-
1219
  #~ msgid "Field Title"
1220
  #~ msgstr "Titolo campo"
1221
 
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2020-08-07 14:15:08+00:00\n"
8
+ "PO-Revision-Date: 2020-08-10 19:15+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: YIThemes <plugins@yithemes.com>\n"
11
  "Language: it_IT\n"
22
  "X-Textdomain-Support: yes\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
 
25
+ #: lib/yit-assets.php:102
26
+ msgid "Clear"
27
+ msgstr "Cancella"
28
+
29
+ #: lib/yit-assets.php:103
30
+ msgid "Clear color"
31
+ msgstr "Cancella colore"
32
+
33
+ #: lib/yit-assets.php:104
34
+ msgid "Default"
35
+ msgstr "Predefinito"
36
+
37
+ #: lib/yit-assets.php:105
38
+ msgid "Select default color"
39
+ msgstr "Imposta colore predefinito"
40
+
41
+ #: lib/yit-assets.php:106
42
+ msgid "Select Color"
43
+ msgstr "Seleziona colore"
44
+
45
+ #: lib/yit-assets.php:107
46
+ msgid "Color value"
47
+ msgstr "Colore"
48
+
49
  #: lib/yit-cpt-unlimited.php:462 lib/yit-cpt-unlimited.php:576
50
  #: lib/yit-cpt-unlimited.php:721 lib/yit-cpt-unlimited.php:1636
51
  msgid "Add %s"
226
  msgid "Upload multiple files"
227
  msgstr "Carica file multipli"
228
 
229
+ #: lib/yit-plugin-panel-wc.php:426
230
  msgid "The changes you have made will be lost if you leave this page."
231
  msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
232
 
234
  msgid "Plugin Settings"
235
  msgstr "Impostazioni plugin"
236
 
237
+ #: lib/yit-plugin-panel.php:454 lib/yit-plugin-panel.php:457
238
  msgid "How to install premium version"
239
  msgstr "Come installare la versione premium"
240
 
241
+ #: lib/yit-plugin-panel.php:617 lib/yit-plugin-subpanel.php:151
242
  #: templates/panel/woocommerce/woocommerce-form.php:14
243
  msgid "Save Changes"
244
  msgstr "Salva modifiche"
245
 
246
+ #: lib/yit-plugin-panel.php:621 lib/yit-plugin-subpanel.php:154
247
  #: templates/panel/woocommerce/woocommerce-form.php:17
248
  msgid ""
249
  "If you continue with this action, you will reset all options in this page."
251
  "Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
252
  "reimpostate."
253
 
254
+ #: lib/yit-plugin-panel.php:624 lib/yit-plugin-subpanel.php:156
255
  msgid "Reset to default"
256
  msgstr "Ripristina configurazione predefinita"
257
 
258
+ #: lib/yit-plugin-panel.php:625 lib/yit-plugin-subpanel.php:157
259
  #: templates/panel/woocommerce/woocommerce-form.php:21
260
  msgid "Are you sure?"
261
  msgstr "Sei sicuro?"
262
 
263
+ #: lib/yit-plugin-panel.php:823
264
  msgid ""
265
  "The element you have entered already exists. Please, enter another name."
266
  msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
267
 
268
+ #: lib/yit-plugin-panel.php:824
269
  msgid "Settings saved"
270
  msgstr "Impostazioni salvate"
271
 
272
+ #: lib/yit-plugin-panel.php:825
273
  msgid "Settings reset"
274
  msgstr "Impostazioni azzerate"
275
 
276
+ #: lib/yit-plugin-panel.php:826
277
  msgid "Element deleted correctly."
278
  msgstr "Elemento rimosso correttamente."
279
 
280
+ #: lib/yit-plugin-panel.php:827 lib/yit-plugin-panel.php:828
281
  msgid "Element updated correctly."
282
  msgstr "Elemento aggiornato correttamente."
283
 
284
+ #: lib/yit-plugin-panel.php:829
285
  msgid "Database imported correctly."
286
  msgstr "Database importato correttamente."
287
 
288
+ #: lib/yit-plugin-panel.php:830
289
  msgid "An error has occurred during import. Please try again."
290
  msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
291
 
292
+ #: lib/yit-plugin-panel.php:831
293
  msgid "The added file is not valid."
294
  msgstr "Il file aggiunto non è valido."
295
 
296
+ #: lib/yit-plugin-panel.php:832
297
  msgid "Sorry, import is disabled."
298
  msgstr "Ci dispiace, l'importazione è disabilitata."
299
 
300
+ #: lib/yit-plugin-panel.php:833
301
  msgid "Sorting successful."
302
  msgstr "Ordinamento effettuato con successo."
303
 
304
+ #: lib/yit-plugin-panel.php:1281
305
  msgid "We need your support"
306
  msgstr "Abbiamo bisogno del tuo sostegno"
307
 
308
+ #: lib/yit-plugin-panel.php:1282
309
  msgid "to keep updating and improving the plugin. Please,"
310
  msgstr "per poter continuare ad aggiornare e migliorare il plugin."
311
 
312
+ #: lib/yit-plugin-panel.php:1284
313
  msgid "help us by leaving a five-star rating"
314
+ msgstr "puoi darci una mano lasciando una recensione a 5 stelle"
315
 
316
+ #: lib/yit-plugin-panel.php:1285
317
  msgid ":) Thanks!"
318
  msgstr ":) Grazie!"
319
 
384
  "Si è verificato un errore probabilmente causato dal feed non disponibile. "
385
  "Riprova più tardi."
386
 
387
+ #: lib/yith-system-status.php:111
388
  msgid "WordPress Version"
389
  msgstr "Versione di WordPress"
390
 
391
+ #: lib/yith-system-status.php:112
392
  msgid "WooCommerce Version"
393
  msgstr "Versione di WooCommerce"
394
 
395
+ #: lib/yith-system-status.php:113
396
  msgid "Available Memory"
397
  msgstr "Memoria disponibile"
398
 
399
+ #: lib/yith-system-status.php:114
400
  msgid "PHP Version"
401
  msgstr "Versione PHP"
402
 
403
+ #: lib/yith-system-status.php:115
404
  msgid "TLS Version"
405
  msgstr "Versione TLS"
406
 
407
+ #: lib/yith-system-status.php:116
408
  msgid "WordPress Cron"
409
  msgstr "Cron WordPress"
410
 
411
+ #: lib/yith-system-status.php:117
412
  msgid "SimpleXML"
413
  msgstr "SimpleXML"
414
 
415
+ #: lib/yith-system-status.php:118
416
  msgid "MultiByte String"
417
  msgstr "MultiByte String"
418
 
419
+ #: lib/yith-system-status.php:119
420
  msgid "ImageMagick Version"
421
  msgstr "Versione di ImageMagick"
422
 
423
+ #: lib/yith-system-status.php:120
424
  msgid "GD Library"
425
  msgstr "GD Library"
426
 
427
+ #: lib/yith-system-status.php:121
428
  msgid "Iconv Module"
429
  msgstr "Iconv Module"
430
 
431
+ #: lib/yith-system-status.php:122
432
  msgid "OPCache Save Comments"
433
  msgstr "OPCache Save Comments"
434
 
435
+ #: lib/yith-system-status.php:123
436
  msgid "URL FOpen"
437
  msgstr "URL FOpen"
438
 
439
+ #: lib/yith-system-status.php:141 lib/yith-system-status.php:142
440
  msgid "System Status"
441
  msgstr "Stato del sistema"
442
 
443
+ #: lib/yith-system-status.php:184
444
  msgid "YITH Plugins"
445
  msgstr "Plugin YITH"
446
 
447
+ #: lib/yith-system-status.php:192
448
  msgid "WooCommerce"
449
  msgstr "WooCommerce"
450
 
451
+ #: lib/yith-system-status.php:330
452
  msgid "Warning!"
453
  msgstr "Attenzione!"
454
 
455
+ #. translators: %1$s open link tag, %2$s open link tag
456
+ #: lib/yith-system-status.php:334
457
  msgid ""
458
+ "The system check has detected some compatibility issues on your installation."
459
+ "%1$sClick here%2$s to know more"
460
  msgstr ""
461
  "Il controllo di sistema ha individuato delle incompatibilità con la tua "
462
+ "installazione. %1$sVedi qui%2$s per maggiori dettagli"
463
+
464
+ #: lib/yith-system-status.php:473
465
+ msgid "Enabled"
466
+ msgstr "Abilitato"
467
+
468
+ #: lib/yith-system-status.php:473
469
+ msgid "Disabled"
470
+ msgstr "Disabilitato"
471
+
472
+ #: lib/yith-system-status.php:478
473
+ msgid "N/A"
474
+ msgstr "n.a."
475
+
476
+ #. translators: %1$s plugin name, %2$s requirement name
477
+ #: lib/yith-system-status.php:506
478
+ msgid "%1$s needs %2$s enabled"
479
+ msgstr "%1$s necessita dell'attivazione di %2$s"
480
+
481
+ #. translators: %1$s plugin name, %2$s required memory amount
482
+ #: lib/yith-system-status.php:509
483
+ msgid "%1$s needs at least %2$s of available memory"
484
+ msgstr "%1$s necessita di almeno %2$s di memoria disponibile"
485
+
486
+ #. translators: %1$s plugin name, %2$s version number
487
+ #: lib/yith-system-status.php:512
488
+ msgid "%1$s needs at least %2$s version"
489
+ msgstr "%1$s necessita almeno della versione %2$s"
490
+
491
+ #: lib/yith-system-status.php:537
492
+ msgid ""
493
+ "Update it to the latest version in order to benefit of all new features and "
494
+ "security updates."
495
+ msgstr ""
496
+ "Aggiorna all'ultima versione per beneficiare di tutte le nuove funzionalità "
497
+ "e degli aggiornamenti di sicurezza."
498
+
499
+ #: lib/yith-system-status.php:541 lib/yith-system-status.php:547
500
+ msgid "Contact your hosting company in order to update it."
501
+ msgstr "Contatta il tuo servizio hosting per aggiornarlo."
502
+
503
+ #: lib/yith-system-status.php:545
504
+ msgid "Contact your hosting company in order to install it."
505
+ msgstr "Per installarlo contatta il tuo servizio di hosting."
506
+
507
+ #. translators: %1$s code, %2$s file name
508
+ #: lib/yith-system-status.php:552
509
+ msgid "Remove %1$s from %2$s file"
510
+ msgstr "Rimuovi %1$s dal file %2$s"
511
+
512
+ #: lib/yith-system-status.php:560
513
+ msgid "Contact your hosting company in order to enable it."
514
+ msgstr "Per attivarlo contatta il tuo servizio di hosting."
515
+
516
+ #. translators: %1$s opening link tag, %2$s closing link tag
517
+ #: lib/yith-system-status.php:564 lib/yith-system-status.php:588
518
+ msgid ""
519
+ "Read more %1$shere%2$s or contact your hosting company in order to increase "
520
+ "it."
521
+ msgstr ""
522
+ "Per maggiori informazioni %1$sleggi questo%2$s oppure contatta il tuo host "
523
+ "per un upgrade."
524
+
525
+ #. translators: %s recommended memory amount
526
+ #: lib/yith-system-status.php:585
527
+ msgid ""
528
+ "For optimal functioning of our plugins, we suggest setting at least %s of "
529
+ "available memory"
530
+ msgstr ""
531
+ "Per il funzionamento ottimale dei nostri plugin consigliamo di impostare "
532
+ "almeno %s della memoria disponibile"
533
+
534
+ #. translators: %1$s TLS label, %2$s cURL label
535
+ #: lib/yith-system-status.php:593
536
+ msgid ""
537
+ "The system check cannot determine which %1$s version is installed because "
538
+ "%2$s module is disabled. Ask your hosting company to enable it."
539
+ msgstr ""
540
+ "Non ci è stato possibile determinare quale versione di %1$s è installata in "
541
+ "quanto il modulo %2$s è disattivato. Chiedi al tuo servizio hosting di "
542
+ "attivarlo."
543
+
544
+ #. translators: %1$s TLS label
545
+ #: lib/yith-system-status.php:596
546
+ msgid ""
547
+ "The system check cannot determine which %1$s version is installed due to a "
548
+ "connection issue between your site and our server."
549
+ msgstr ""
550
+ "Non ci è stato possibile determinare quale versione di %1$s è installata a "
551
+ "causa di un problema di connessione fra il tuo sito e il nostro server."
552
 
553
  #: templates/fields/ajax-customers.php:57
554
  msgid "Search Customers"
680
  msgid "Reset Defaults"
681
  msgstr "Ripristina impostazioni iniziali"
682
 
683
+ #: templates/sysinfo/system-information-panel.php:39
684
  msgid "YITH System Information"
685
  msgstr "YITH System Information"
686
 
687
+ #: templates/sysinfo/system-information-panel.php:50
688
+ msgid "WP debug.log file"
689
+ msgstr "WP debug.log file"
 
 
 
 
 
 
 
 
690
 
691
+ #: templates/sysinfo/system-information-panel.php:54
692
+ msgid "PHP error_log file"
693
+ msgstr "PHP error_log file"
694
 
695
+ #: templates/sysinfo/system-information-panel.php:59
696
+ #: templates/sysinfo/system-information-panel.php:83
697
+ msgid "Back to System panel"
698
+ msgstr "Torna al pannello di Sistema"
699
 
700
  #: templates/sysinfo/system-information-panel.php:96
701
+ msgid "Back to top"
702
+ msgstr "Torna su"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
703
 
704
+ #: templates/sysinfo/system-information-panel.php:104
705
+ msgid "Site URL"
706
+ msgstr "URL del sito"
707
 
708
+ #: templates/sysinfo/system-information-panel.php:112
709
+ msgid "Output IP Address"
710
+ msgstr "Indirizzo IP di output"
711
 
712
+ #: templates/sysinfo/system-information-panel.php:120
713
+ msgid "Defined WP_CACHE"
714
+ msgstr "Defined WP_CACHE"
715
 
716
+ #: templates/sysinfo/system-information-panel.php:123
717
+ msgid "Yes"
718
+ msgstr "Sì"
 
 
 
 
 
719
 
720
+ #: templates/sysinfo/system-information-panel.php:123
721
+ msgid "No"
722
+ msgstr "No"
 
 
 
 
723
 
724
+ #: templates/sysinfo/system-information-panel.php:159
725
  msgid "Show full PHPInfo"
726
  msgstr "Mostra tutto il contenuto di PHPInfo"
727
 
728
+ #: templates/sysinfo/system-information-panel.php:167
729
+ msgid "Show log files"
730
+ msgstr "Mostra i log"
 
 
 
 
731
 
732
  #: yit-plugin.php:194
733
  msgid "License"
734
  msgstr "Chiave di licenza"
735
 
736
  #. Author of the plugin/theme
 
737
  msgid "YITH"
738
  msgstr "YITH"
739
 
813
  #: templates/fields/dimensions.php:16
814
  msgctxt "Position in the \"Dimensions\" field"
815
  msgid "Top"
816
+ msgstr "In alto"
817
 
818
  #: templates/fields/dimensions.php:17
819
  msgctxt "Position in the \"Dimensions\" field"
820
  msgid "Right"
821
+ msgstr "A destra"
822
 
823
  #: templates/fields/dimensions.php:18
824
  msgctxt "Position in the \"Dimensions\" field"
825
  msgid "Bottom"
826
+ msgstr "In basso"
827
 
828
  #: templates/fields/dimensions.php:19
829
  msgctxt "Position in the \"Dimensions\" field"
830
  msgid "Left"
831
+ msgstr "A sinistra"
832
 
833
  #: templates/fields/dimensions.php:117
834
  msgctxt "Tooltip in the \"Dimensions\" field"
835
  msgid "Link values together"
836
+ msgstr "Collega i valori"
837
 
838
  #: templates/fields/onoff.php:24
839
  msgctxt "YES/NO button: use MAX 3 characters!"
870
  msgid "Settings"
871
  msgstr "Impostazioni"
872
 
873
+ #~ msgid ""
874
+ #~ "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
875
+ #~ "install it."
876
+ #~ msgstr ""
877
+ #~ "Il modulo <b>ImageMagick</b> non è installato. Chiedi al tuo servizio di "
878
+ #~ "hosting di installarlo."
879
+
880
  #~ msgctxt "ON/OFF button: use MAX 3 characters!"
881
  #~ msgid "ON"
882
  #~ msgstr "SÌ"
1207
  #~ msgid "Renew license"
1208
  #~ msgstr "Rinnova la licenza"
1209
 
 
 
 
1210
  #~ msgid "Deselect All"
1211
  #~ msgstr "Deseleziona tutto"
1212
 
1276
  #~ msgid "Theme Icon"
1277
  #~ msgstr "Icona tema"
1278
 
 
 
 
1279
  #~ msgid "Field Title"
1280
  #~ msgstr "Titolo campo"
1281
 
plugin-fw/languages/yith-plugin-fw-nl_NL.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2020-04-23 06:38:32+00:00\n"
8
  "PO-Revision-Date: 2020-04-06 15:05+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
@@ -22,6 +22,33 @@ msgstr ""
22
  "X-Textdomain-Support: yes\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  #: lib/yit-cpt-unlimited.php:462 lib/yit-cpt-unlimited.php:576
26
  #: lib/yit-cpt-unlimited.php:721 lib/yit-cpt-unlimited.php:1636
27
  msgid "Add %s"
@@ -206,7 +233,7 @@ msgstr "Voeg %s toe vanaf afbeeldingen"
206
  msgid "Upload multiple files"
207
  msgstr "Upload meerdere bestanden"
208
 
209
- #: lib/yit-plugin-panel-wc.php:399
210
  msgid "The changes you have made will be lost if you leave this page."
211
  msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."
212
 
@@ -214,84 +241,84 @@ msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."
214
  msgid "Plugin Settings"
215
  msgstr "Plugin instellingen"
216
 
217
- #: lib/yit-plugin-panel.php:455 lib/yit-plugin-panel.php:458
218
  msgid "How to install premium version"
219
  msgstr "Hoe installeer ik de premium versie"
220
 
221
- #: lib/yit-plugin-panel.php:603 lib/yit-plugin-subpanel.php:151
222
  #: templates/panel/woocommerce/woocommerce-form.php:14
223
  msgid "Save Changes"
224
  msgstr "Wijzigingen opslaan"
225
 
226
- #: lib/yit-plugin-panel.php:606 lib/yit-plugin-subpanel.php:154
227
  #: templates/panel/woocommerce/woocommerce-form.php:17
228
  msgid ""
229
  "If you continue with this action, you will reset all options in this page."
230
  msgstr "Als u deze actie voortzet, zult u alle opties op deze pagina resetten."
231
 
232
- #: lib/yit-plugin-panel.php:608 lib/yit-plugin-subpanel.php:156
233
  msgid "Reset to default"
234
  msgstr "Resetten naar standaard"
235
 
236
- #: lib/yit-plugin-panel.php:609 lib/yit-plugin-subpanel.php:157
237
  #: templates/panel/woocommerce/woocommerce-form.php:21
238
  msgid "Are you sure?"
239
  msgstr "Weet u het zeker?"
240
 
241
- #: lib/yit-plugin-panel.php:807
242
  msgid ""
243
  "The element you have entered already exists. Please, enter another name."
244
  msgstr "Het element dat u hebt ingevoerd bestaat al. Voer een andere naam in."
245
 
246
- #: lib/yit-plugin-panel.php:808
247
  msgid "Settings saved"
248
  msgstr "Instellingen opgeslagen"
249
 
250
- #: lib/yit-plugin-panel.php:809
251
  msgid "Settings reset"
252
  msgstr "Instellingen resetten"
253
 
254
- #: lib/yit-plugin-panel.php:810
255
  msgid "Element deleted correctly."
256
  msgstr "Element succesvol verwijderd."
257
 
258
- #: lib/yit-plugin-panel.php:811 lib/yit-plugin-panel.php:812
259
  msgid "Element updated correctly."
260
  msgstr "Element juist bijgewerkt."
261
 
262
- #: lib/yit-plugin-panel.php:813
263
  msgid "Database imported correctly."
264
  msgstr "Database juist geïmporteerd."
265
 
266
- #: lib/yit-plugin-panel.php:814
267
  msgid "An error has occurred during import. Please try again."
268
  msgstr "Er is een fout opgetreden tijdens importeren. Probeer opnieuw."
269
 
270
- #: lib/yit-plugin-panel.php:815
271
  msgid "The added file is not valid."
272
  msgstr "Het toegevoegde bestand is ongeldig."
273
 
274
- #: lib/yit-plugin-panel.php:816
275
  msgid "Sorry, import is disabled."
276
  msgstr "Sorry, importeren is uitgeschakeld."
277
 
278
- #: lib/yit-plugin-panel.php:817
279
  msgid "Sorting successful."
280
  msgstr "Sorteren succesvol."
281
 
282
- #: lib/yit-plugin-panel.php:1265
283
  msgid "We need your support"
284
  msgstr "We hebben uw hulp nodig"
285
 
286
- #: lib/yit-plugin-panel.php:1266
287
  msgid "to keep updating and improving the plugin. Please,"
288
  msgstr "om de plugin te blijven updaten en verbeteren. A.u.b.,"
289
 
290
- #: lib/yit-plugin-panel.php:1268
291
  msgid "help us by leaving a five-star rating"
292
  msgstr "help ons door een vijf-sterenbeoordeling achter te laten"
293
 
294
- #: lib/yit-plugin-panel.php:1269
295
  msgid ":) Thanks!"
296
  msgstr ":) Bedankt!"
297
 
@@ -362,82 +389,178 @@ msgstr ""
362
  "Er is een fout opgetreden, wat waarschijnlijk betekend dat de feed uit te "
363
  "lucht is. Probeer het later opnieuw."
364
 
365
- #: lib/yith-system-status.php:105
366
  msgid "WordPress Version"
367
  msgstr "WordPress Versie"
368
 
369
- #: lib/yith-system-status.php:106
370
  msgid "WooCommerce Version"
371
  msgstr "WooCommerce Versie"
372
 
373
- #: lib/yith-system-status.php:107
374
  msgid "Available Memory"
375
  msgstr "Beschikbaar geheugen"
376
 
377
- #: lib/yith-system-status.php:108
378
  msgid "PHP Version"
379
  msgstr "PHP Versie"
380
 
381
- #: lib/yith-system-status.php:109
382
  msgid "TLS Version"
383
  msgstr "TLS Versie"
384
 
385
- #: lib/yith-system-status.php:110
386
  msgid "WordPress Cron"
387
  msgstr "WordPress Cron"
388
 
389
- #: lib/yith-system-status.php:111
390
  msgid "SimpleXML"
391
  msgstr "SimpleXML"
392
 
393
- #: lib/yith-system-status.php:112
394
  msgid "MultiByte String"
395
  msgstr "MultiByte String"
396
 
397
- #: lib/yith-system-status.php:113
398
  msgid "ImageMagick Version"
399
  msgstr "ImageMagick Versie"
400
 
401
- #: lib/yith-system-status.php:114
402
  msgid "GD Library"
403
  msgstr "GD Library"
404
 
405
- #: lib/yith-system-status.php:115
406
  msgid "Iconv Module"
407
  msgstr "Iconv Module"
408
 
409
- #: lib/yith-system-status.php:116
410
  msgid "OPCache Save Comments"
411
  msgstr "OPCache Save Comments"
412
 
413
- #: lib/yith-system-status.php:117
414
  msgid "URL FOpen"
415
  msgstr "URL FOpen"
416
 
417
- #: lib/yith-system-status.php:135 lib/yith-system-status.php:136
418
  msgid "System Status"
419
  msgstr "Systeem Status"
420
 
421
- #: lib/yith-system-status.php:179
422
  msgid "YITH Plugins"
423
  msgstr "YITH Plugins"
424
 
425
- #: lib/yith-system-status.php:180
426
  msgid "WooCommerce"
427
  msgstr "WooCommerce"
428
 
429
- #: lib/yith-system-status.php:297
430
  msgid "Warning!"
431
  msgstr "Waarschuwing!"
432
 
433
- #: lib/yith-system-status.php:298
 
 
434
  msgid ""
435
- "The system check has detected some compatibility issues on your "
436
- "installation. %sClick here%s to know more"
437
  msgstr ""
438
  "Het systeem heeft enkele compatibiliteitsproblemen gevonden op uw "
439
  "installatie. %sKlik hier%s om meer te weten te komen"
440
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
441
  #: templates/fields/ajax-customers.php:57
442
  msgid "Search Customers"
443
  msgstr "Zoek klanten"
@@ -568,108 +691,54 @@ msgstr "(Default: <i %s></i> )"
568
  msgid "Reset Defaults"
569
  msgstr "Herstellen naar standaard"
570
 
571
- #: templates/sysinfo/system-information-panel.php:30
572
  msgid "YITH System Information"
573
  msgstr "YITH System Informatie"
574
 
575
- #: templates/sysinfo/system-information-panel.php:38
576
- msgid "Site URL"
577
- msgstr "Site URL"
578
-
579
- #: templates/sysinfo/system-information-panel.php:46
580
- msgid "Output IP Address"
581
- msgstr "Output IP Address"
582
-
583
- #: templates/sysinfo/system-information-panel.php:76
584
- msgid "Enabled"
585
- msgstr "Ingeschakeld"
586
-
587
- #: templates/sysinfo/system-information-panel.php:76
588
- msgid "Disabled"
589
- msgstr "Uitgeschakeld"
590
-
591
- #: templates/sysinfo/system-information-panel.php:82
592
- msgid "N/A"
593
- msgstr "N.V.T"
594
-
595
- #: templates/sysinfo/system-information-panel.php:96
596
- msgid "%s needs %s enabled"
597
- msgstr "%s heeft nodig %s ingeschakeld"
598
-
599
- #: templates/sysinfo/system-information-panel.php:98
600
- msgid "%s needs at least %s of available memory"
601
- msgstr "%s heeft ten minste %s beschikbaar geheugen nodig"
602
-
603
- #: templates/sysinfo/system-information-panel.php:100
604
- #: templates/sysinfo/system-information-panel.php:149
605
- msgid ""
606
- "For optimal functioning of our plugins, we suggest setting at least %s of "
607
- "available memory"
608
  msgstr ""
609
- "Voor het optimaal functioneren van de plugins, adviseren wij minstens %s "
610
- "beschikbaar geheugen te hebben"
611
 
612
- #: templates/sysinfo/system-information-panel.php:102
613
- #: templates/sysinfo/system-information-panel.php:137
614
- #: templates/sysinfo/system-information-panel.php:151
615
- msgid ""
616
- "Read more %s here%s or contact your hosting company in order to increase it."
617
  msgstr ""
618
- "Lees %s hier%s meer, of neem contact op met uw hostingmaatschappij om het te "
619
- "verhogen."
620
 
621
- #: templates/sysinfo/system-information-panel.php:105
622
- msgid "%s needs at least %s version"
623
- msgstr "%s heeft minstens %s versie nodig"
 
624
 
625
- #: templates/sysinfo/system-information-panel.php:116
626
- msgid ""
627
- "Update it to the latest version in order to benefit of all new features and "
628
- "security updates."
629
- msgstr ""
630
- "Bijwerken naar de nieuwste versie om te profiteren van alle nieuwe functies "
631
- "en beveiligingsupdates."
632
 
633
- #: templates/sysinfo/system-information-panel.php:122
634
- msgid "Contact your hosting company in order to update it."
635
- msgstr "Neem contact op met uw hostingmaatschappij om het bij te werken."
636
 
637
- #: templates/sysinfo/system-information-panel.php:126
638
- msgid "Remove %s from %s file"
639
- msgstr "Verwijder %s uit %s bestand"
640
 
641
- #: templates/sysinfo/system-information-panel.php:134
642
- msgid "Contact your hosting company in order to enable it."
643
- msgstr "Neem contact op met uw hostingmaatschappij om dit in te schakelen."
644
 
645
- #: templates/sysinfo/system-information-panel.php:157
646
- msgid ""
647
- "We cannot determine which <b>TLS</b> version is installed because <b>cURL</"
648
- "b> module is disabled. Ask your hosting company to enable it."
649
  msgstr ""
650
- "We kunnen niet bepalen welke <b>TLS</b> versie is geïnstalleerd omdat de "
651
- "<b>cURL</b> module is uitgeschakeld. Vraag uw hostingmaatschappij om het in "
652
- "te schakelen."
653
 
654
- #: templates/sysinfo/system-information-panel.php:160
655
- msgid ""
656
- "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
657
- "install it."
658
  msgstr ""
659
- "<b>ImageMagick</b> module is niet geïnstalleerd. Vraag uw "
660
- "hositngmaatschappij om het te installeren."
661
 
662
- #: templates/sysinfo/system-information-panel.php:172
663
  msgid "Show full PHPInfo"
664
  msgstr "Toon volledige PHPInfo"
665
 
666
- #: templates/sysinfo/system-information-panel.php:176
667
- msgid "Back to System panel"
668
- msgstr "Terug naar systeempaneel"
669
-
670
- #: templates/sysinfo/system-information-panel.php:193
671
- msgid "Back to top"
672
- msgstr "Terug naar boven"
673
 
674
  #: yit-plugin.php:194
675
  msgid "License"
@@ -813,6 +882,13 @@ msgctxt "Action links"
813
  msgid "Settings"
814
  msgstr "Instellingen"
815
 
 
 
 
 
 
 
 
816
  #~ msgctxt "ON/OFF button: use MAX 3 characters!"
817
  #~ msgid "ON"
818
  #~ msgstr "AAN"
@@ -1147,8 +1223,5 @@ msgstr "Instellingen"
1147
  #~ msgid "Renew license"
1148
  #~ msgstr "Licentie vernieuwen"
1149
 
1150
- #~ msgid "Select All"
1151
- #~ msgstr "Selecteer alles"
1152
-
1153
  #~ msgid "Deselect All"
1154
  #~ msgstr "Selectie ongedaan maken"
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2020-08-07 14:15:08+00:00\n"
8
  "PO-Revision-Date: 2020-04-06 15:05+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
22
  "X-Textdomain-Support: yes\n"
23
  "X-Poedit-SearchPath-0: .\n"
24
 
25
+ #: lib/yit-assets.php:102
26
+ msgid "Clear"
27
+ msgstr ""
28
+
29
+ #: lib/yit-assets.php:103
30
+ msgid "Clear color"
31
+ msgstr ""
32
+
33
+ #: lib/yit-assets.php:104
34
+ #, fuzzy
35
+ msgid "Default"
36
+ msgstr "Instellen als standaard"
37
+
38
+ #: lib/yit-assets.php:105
39
+ #, fuzzy
40
+ msgid "Select default color"
41
+ msgstr "Instellen als standaard"
42
+
43
+ #: lib/yit-assets.php:106
44
+ #, fuzzy
45
+ msgid "Select Color"
46
+ msgstr "Selecteer alles"
47
+
48
+ #: lib/yit-assets.php:107
49
+ msgid "Color value"
50
+ msgstr ""
51
+
52
  #: lib/yit-cpt-unlimited.php:462 lib/yit-cpt-unlimited.php:576
53
  #: lib/yit-cpt-unlimited.php:721 lib/yit-cpt-unlimited.php:1636
54
  msgid "Add %s"
233
  msgid "Upload multiple files"
234
  msgstr "Upload meerdere bestanden"
235
 
236
+ #: lib/yit-plugin-panel-wc.php:426
237
  msgid "The changes you have made will be lost if you leave this page."
238
  msgstr "Als je deze pagina verlaat zullen alle wijzigingen verloren gaan."
239
 
241
  msgid "Plugin Settings"
242
  msgstr "Plugin instellingen"
243
 
244
+ #: lib/yit-plugin-panel.php:454 lib/yit-plugin-panel.php:457
245
  msgid "How to install premium version"
246
  msgstr "Hoe installeer ik de premium versie"
247
 
248
+ #: lib/yit-plugin-panel.php:617 lib/yit-plugin-subpanel.php:151
249
  #: templates/panel/woocommerce/woocommerce-form.php:14
250
  msgid "Save Changes"
251
  msgstr "Wijzigingen opslaan"
252
 
253
+ #: lib/yit-plugin-panel.php:621 lib/yit-plugin-subpanel.php:154
254
  #: templates/panel/woocommerce/woocommerce-form.php:17
255
  msgid ""
256
  "If you continue with this action, you will reset all options in this page."
257
  msgstr "Als u deze actie voortzet, zult u alle opties op deze pagina resetten."
258
 
259
+ #: lib/yit-plugin-panel.php:624 lib/yit-plugin-subpanel.php:156
260
  msgid "Reset to default"
261
  msgstr "Resetten naar standaard"
262
 
263
+ #: lib/yit-plugin-panel.php:625 lib/yit-plugin-subpanel.php:157
264
  #: templates/panel/woocommerce/woocommerce-form.php:21
265
  msgid "Are you sure?"
266
  msgstr "Weet u het zeker?"
267
 
268
+ #: lib/yit-plugin-panel.php:823
269
  msgid ""
270
  "The element you have entered already exists. Please, enter another name."
271
  msgstr "Het element dat u hebt ingevoerd bestaat al. Voer een andere naam in."
272
 
273
+ #: lib/yit-plugin-panel.php:824
274
  msgid "Settings saved"
275
  msgstr "Instellingen opgeslagen"
276
 
277
+ #: lib/yit-plugin-panel.php:825
278
  msgid "Settings reset"
279
  msgstr "Instellingen resetten"
280
 
281
+ #: lib/yit-plugin-panel.php:826
282
  msgid "Element deleted correctly."
283
  msgstr "Element succesvol verwijderd."
284
 
285
+ #: lib/yit-plugin-panel.php:827 lib/yit-plugin-panel.php:828
286
  msgid "Element updated correctly."
287
  msgstr "Element juist bijgewerkt."
288
 
289
+ #: lib/yit-plugin-panel.php:829
290
  msgid "Database imported correctly."
291
  msgstr "Database juist geïmporteerd."
292
 
293
+ #: lib/yit-plugin-panel.php:830
294
  msgid "An error has occurred during import. Please try again."
295
  msgstr "Er is een fout opgetreden tijdens importeren. Probeer opnieuw."
296
 
297
+ #: lib/yit-plugin-panel.php:831
298
  msgid "The added file is not valid."
299
  msgstr "Het toegevoegde bestand is ongeldig."
300
 
301
+ #: lib/yit-plugin-panel.php:832
302
  msgid "Sorry, import is disabled."
303
  msgstr "Sorry, importeren is uitgeschakeld."
304
 
305
+ #: lib/yit-plugin-panel.php:833
306
  msgid "Sorting successful."
307
  msgstr "Sorteren succesvol."
308
 
309
+ #: lib/yit-plugin-panel.php:1281
310
  msgid "We need your support"
311
  msgstr "We hebben uw hulp nodig"
312
 
313
+ #: lib/yit-plugin-panel.php:1282
314
  msgid "to keep updating and improving the plugin. Please,"
315
  msgstr "om de plugin te blijven updaten en verbeteren. A.u.b.,"
316
 
317
+ #: lib/yit-plugin-panel.php:1284
318
  msgid "help us by leaving a five-star rating"
319
  msgstr "help ons door een vijf-sterenbeoordeling achter te laten"
320
 
321
+ #: lib/yit-plugin-panel.php:1285
322
  msgid ":) Thanks!"
323
  msgstr ":) Bedankt!"
324
 
389
  "Er is een fout opgetreden, wat waarschijnlijk betekend dat de feed uit te "
390
  "lucht is. Probeer het later opnieuw."
391
 
392
+ #: lib/yith-system-status.php:111
393
  msgid "WordPress Version"
394
  msgstr "WordPress Versie"
395
 
396
+ #: lib/yith-system-status.php:112
397
  msgid "WooCommerce Version"
398
  msgstr "WooCommerce Versie"
399
 
400
+ #: lib/yith-system-status.php:113
401
  msgid "Available Memory"
402
  msgstr "Beschikbaar geheugen"
403
 
404
+ #: lib/yith-system-status.php:114
405
  msgid "PHP Version"
406
  msgstr "PHP Versie"
407
 
408
+ #: lib/yith-system-status.php:115
409
  msgid "TLS Version"
410
  msgstr "TLS Versie"
411
 
412
+ #: lib/yith-system-status.php:116
413
  msgid "WordPress Cron"
414
  msgstr "WordPress Cron"
415
 
416
+ #: lib/yith-system-status.php:117
417
  msgid "SimpleXML"
418
  msgstr "SimpleXML"
419
 
420
+ #: lib/yith-system-status.php:118
421
  msgid "MultiByte String"
422
  msgstr "MultiByte String"
423
 
424
+ #: lib/yith-system-status.php:119
425
  msgid "ImageMagick Version"
426
  msgstr "ImageMagick Versie"
427
 
428
+ #: lib/yith-system-status.php:120
429
  msgid "GD Library"
430
  msgstr "GD Library"
431
 
432
+ #: lib/yith-system-status.php:121
433
  msgid "Iconv Module"
434
  msgstr "Iconv Module"
435
 
436
+ #: lib/yith-system-status.php:122
437
  msgid "OPCache Save Comments"
438
  msgstr "OPCache Save Comments"
439
 
440
+ #: lib/yith-system-status.php:123
441
  msgid "URL FOpen"
442
  msgstr "URL FOpen"
443
 
444
+ #: lib/yith-system-status.php:141 lib/yith-system-status.php:142
445
  msgid "System Status"
446
  msgstr "Systeem Status"
447
 
448
+ #: lib/yith-system-status.php:184
449
  msgid "YITH Plugins"
450
  msgstr "YITH Plugins"
451
 
452
+ #: lib/yith-system-status.php:192
453
  msgid "WooCommerce"
454
  msgstr "WooCommerce"
455
 
456
+ #: lib/yith-system-status.php:330
457
  msgid "Warning!"
458
  msgstr "Waarschuwing!"
459
 
460
+ #. translators: %1$s open link tag, %2$s open link tag
461
+ #: lib/yith-system-status.php:334
462
+ #, fuzzy
463
  msgid ""
464
+ "The system check has detected some compatibility issues on your installation."
465
+ "%1$sClick here%2$s to know more"
466
  msgstr ""
467
  "Het systeem heeft enkele compatibiliteitsproblemen gevonden op uw "
468
  "installatie. %sKlik hier%s om meer te weten te komen"
469
 
470
+ #: lib/yith-system-status.php:473
471
+ msgid "Enabled"
472
+ msgstr "Ingeschakeld"
473
+
474
+ #: lib/yith-system-status.php:473
475
+ msgid "Disabled"
476
+ msgstr "Uitgeschakeld"
477
+
478
+ #: lib/yith-system-status.php:478
479
+ msgid "N/A"
480
+ msgstr "N.V.T"
481
+
482
+ #. translators: %1$s plugin name, %2$s requirement name
483
+ #: lib/yith-system-status.php:506
484
+ #, fuzzy
485
+ msgid "%1$s needs %2$s enabled"
486
+ msgstr "%s heeft nodig %s ingeschakeld"
487
+
488
+ #. translators: %1$s plugin name, %2$s required memory amount
489
+ #: lib/yith-system-status.php:509
490
+ #, fuzzy
491
+ msgid "%1$s needs at least %2$s of available memory"
492
+ msgstr "%s heeft ten minste %s beschikbaar geheugen nodig"
493
+
494
+ #. translators: %1$s plugin name, %2$s version number
495
+ #: lib/yith-system-status.php:512
496
+ #, fuzzy
497
+ msgid "%1$s needs at least %2$s version"
498
+ msgstr "%s heeft minstens %s versie nodig"
499
+
500
+ #: lib/yith-system-status.php:537
501
+ msgid ""
502
+ "Update it to the latest version in order to benefit of all new features and "
503
+ "security updates."
504
+ msgstr ""
505
+ "Bijwerken naar de nieuwste versie om te profiteren van alle nieuwe functies "
506
+ "en beveiligingsupdates."
507
+
508
+ #: lib/yith-system-status.php:541 lib/yith-system-status.php:547
509
+ msgid "Contact your hosting company in order to update it."
510
+ msgstr "Neem contact op met uw hostingmaatschappij om het bij te werken."
511
+
512
+ #: lib/yith-system-status.php:545
513
+ #, fuzzy
514
+ msgid "Contact your hosting company in order to install it."
515
+ msgstr "Neem contact op met uw hostingmaatschappij om dit in te schakelen."
516
+
517
+ #. translators: %1$s code, %2$s file name
518
+ #: lib/yith-system-status.php:552
519
+ #, fuzzy
520
+ msgid "Remove %1$s from %2$s file"
521
+ msgstr "Verwijder %s uit %s bestand"
522
+
523
+ #: lib/yith-system-status.php:560
524
+ msgid "Contact your hosting company in order to enable it."
525
+ msgstr "Neem contact op met uw hostingmaatschappij om dit in te schakelen."
526
+
527
+ #. translators: %1$s opening link tag, %2$s closing link tag
528
+ #: lib/yith-system-status.php:564 lib/yith-system-status.php:588
529
+ #, fuzzy
530
+ msgid ""
531
+ "Read more %1$shere%2$s or contact your hosting company in order to increase "
532
+ "it."
533
+ msgstr ""
534
+ "Lees %s hier%s meer, of neem contact op met uw hostingmaatschappij om het te "
535
+ "verhogen."
536
+
537
+ #. translators: %s recommended memory amount
538
+ #: lib/yith-system-status.php:585
539
+ msgid ""
540
+ "For optimal functioning of our plugins, we suggest setting at least %s of "
541
+ "available memory"
542
+ msgstr ""
543
+ "Voor het optimaal functioneren van de plugins, adviseren wij minstens %s "
544
+ "beschikbaar geheugen te hebben"
545
+
546
+ #. translators: %1$s TLS label, %2$s cURL label
547
+ #: lib/yith-system-status.php:593
548
+ #, fuzzy
549
+ msgid ""
550
+ "The system check cannot determine which %1$s version is installed because "
551
+ "%2$s module is disabled. Ask your hosting company to enable it."
552
+ msgstr ""
553
+ "We kunnen niet bepalen welke <b>TLS</b> versie is geïnstalleerd omdat de "
554
+ "<b>cURL</b> module is uitgeschakeld. Vraag uw hostingmaatschappij om het in "
555
+ "te schakelen."
556
+
557
+ #. translators: %1$s TLS label
558
+ #: lib/yith-system-status.php:596
559
+ msgid ""
560
+ "The system check cannot determine which %1$s version is installed due to a "
561
+ "connection issue between your site and our server."
562
+ msgstr ""
563
+
564
  #: templates/fields/ajax-customers.php:57
565
  msgid "Search Customers"
566
  msgstr "Zoek klanten"
691
  msgid "Reset Defaults"
692
  msgstr "Herstellen naar standaard"
693
 
694
+ #: templates/sysinfo/system-information-panel.php:39
695
  msgid "YITH System Information"
696
  msgstr "YITH System Informatie"
697
 
698
+ #: templates/sysinfo/system-information-panel.php:50
699
+ msgid "WP debug.log file"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
700
  msgstr ""
 
 
701
 
702
+ #: templates/sysinfo/system-information-panel.php:54
703
+ msgid "PHP error_log file"
 
 
 
704
  msgstr ""
 
 
705
 
706
+ #: templates/sysinfo/system-information-panel.php:59
707
+ #: templates/sysinfo/system-information-panel.php:83
708
+ msgid "Back to System panel"
709
+ msgstr "Terug naar systeempaneel"
710
 
711
+ #: templates/sysinfo/system-information-panel.php:96
712
+ msgid "Back to top"
713
+ msgstr "Terug naar boven"
 
 
 
 
714
 
715
+ #: templates/sysinfo/system-information-panel.php:104
716
+ msgid "Site URL"
717
+ msgstr "Site URL"
718
 
719
+ #: templates/sysinfo/system-information-panel.php:112
720
+ msgid "Output IP Address"
721
+ msgstr "Output IP Address"
722
 
723
+ #: templates/sysinfo/system-information-panel.php:120
724
+ msgid "Defined WP_CACHE"
725
+ msgstr ""
726
 
727
+ #: templates/sysinfo/system-information-panel.php:123
728
+ msgid "Yes"
 
 
729
  msgstr ""
 
 
 
730
 
731
+ #: templates/sysinfo/system-information-panel.php:123
732
+ msgid "No"
 
 
733
  msgstr ""
 
 
734
 
735
+ #: templates/sysinfo/system-information-panel.php:159
736
  msgid "Show full PHPInfo"
737
  msgstr "Toon volledige PHPInfo"
738
 
739
+ #: templates/sysinfo/system-information-panel.php:167
740
+ msgid "Show log files"
741
+ msgstr ""
 
 
 
 
742
 
743
  #: yit-plugin.php:194
744
  msgid "License"
882
  msgid "Settings"
883
  msgstr "Instellingen"
884
 
885
+ #~ msgid ""
886
+ #~ "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
887
+ #~ "install it."
888
+ #~ msgstr ""
889
+ #~ "<b>ImageMagick</b> module is niet geïnstalleerd. Vraag uw "
890
+ #~ "hositngmaatschappij om het te installeren."
891
+
892
  #~ msgctxt "ON/OFF button: use MAX 3 characters!"
893
  #~ msgid "ON"
894
  #~ msgstr "AAN"
1223
  #~ msgid "Renew license"
1224
  #~ msgstr "Licentie vernieuwen"
1225
 
 
 
 
1226
  #~ msgid "Deselect All"
1227
  #~ msgstr "Selectie ongedaan maken"
plugin-fw/languages/yith-plugin-fw.pot CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2020-04-23 06:42:33+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -24,6 +24,30 @@ msgstr ""
24
  "X-Textdomain-Support: yes\n"
25
  "X-Generator: grunt-wp-i18n 1.0.3\n"
26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  #: lib/yit-cpt-unlimited.php:462 lib/yit-cpt-unlimited.php:576
28
  #: lib/yit-cpt-unlimited.php:721 lib/yit-cpt-unlimited.php:1636
29
  msgid "Add %s"
@@ -198,7 +222,7 @@ msgstr ""
198
  msgid "Upload multiple files"
199
  msgstr ""
200
 
201
- #: lib/yit-plugin-panel-wc.php:399
202
  msgid "The changes you have made will be lost if you leave this page."
203
  msgstr ""
204
 
@@ -206,82 +230,82 @@ msgstr ""
206
  msgid "Plugin Settings"
207
  msgstr ""
208
 
209
- #: lib/yit-plugin-panel.php:455 lib/yit-plugin-panel.php:458
210
  msgid "How to install premium version"
211
  msgstr ""
212
 
213
- #: lib/yit-plugin-panel.php:603 lib/yit-plugin-subpanel.php:151
214
  #: templates/panel/woocommerce/woocommerce-form.php:14
215
  msgid "Save Changes"
216
  msgstr ""
217
 
218
- #: lib/yit-plugin-panel.php:606 lib/yit-plugin-subpanel.php:154
219
  #: templates/panel/woocommerce/woocommerce-form.php:17
220
  msgid "If you continue with this action, you will reset all options in this page."
221
  msgstr ""
222
 
223
- #: lib/yit-plugin-panel.php:608 lib/yit-plugin-subpanel.php:156
224
  msgid "Reset to default"
225
  msgstr ""
226
 
227
- #: lib/yit-plugin-panel.php:609 lib/yit-plugin-subpanel.php:157
228
  #: templates/panel/woocommerce/woocommerce-form.php:21
229
  msgid "Are you sure?"
230
  msgstr ""
231
 
232
- #: lib/yit-plugin-panel.php:807
233
  msgid "The element you have entered already exists. Please, enter another name."
234
  msgstr ""
235
 
236
- #: lib/yit-plugin-panel.php:808
237
  msgid "Settings saved"
238
  msgstr ""
239
 
240
- #: lib/yit-plugin-panel.php:809
241
  msgid "Settings reset"
242
  msgstr ""
243
 
244
- #: lib/yit-plugin-panel.php:810
245
  msgid "Element deleted correctly."
246
  msgstr ""
247
 
248
- #: lib/yit-plugin-panel.php:811 lib/yit-plugin-panel.php:812
249
  msgid "Element updated correctly."
250
  msgstr ""
251
 
252
- #: lib/yit-plugin-panel.php:813
253
  msgid "Database imported correctly."
254
  msgstr ""
255
 
256
- #: lib/yit-plugin-panel.php:814
257
  msgid "An error has occurred during import. Please try again."
258
  msgstr ""
259
 
260
- #: lib/yit-plugin-panel.php:815
261
  msgid "The added file is not valid."
262
  msgstr ""
263
 
264
- #: lib/yit-plugin-panel.php:816
265
  msgid "Sorry, import is disabled."
266
  msgstr ""
267
 
268
- #: lib/yit-plugin-panel.php:817
269
  msgid "Sorting successful."
270
  msgstr ""
271
 
272
- #: lib/yit-plugin-panel.php:1265
273
  msgid "We need your support"
274
  msgstr ""
275
 
276
- #: lib/yit-plugin-panel.php:1266
277
  msgid "to keep updating and improving the plugin. Please,"
278
  msgstr ""
279
 
280
- #: lib/yit-plugin-panel.php:1268
281
  msgid "help us by leaving a five-star rating"
282
  msgstr ""
283
 
284
- #: lib/yit-plugin-panel.php:1269
285
  msgid ":) Thanks!"
286
  msgstr ""
287
 
@@ -339,78 +363,157 @@ msgid ""
339
  "later."
340
  msgstr ""
341
 
342
- #: lib/yith-system-status.php:105
343
  msgid "WordPress Version"
344
  msgstr ""
345
 
346
- #: lib/yith-system-status.php:106
347
  msgid "WooCommerce Version"
348
  msgstr ""
349
 
350
- #: lib/yith-system-status.php:107
351
  msgid "Available Memory"
352
  msgstr ""
353
 
354
- #: lib/yith-system-status.php:108
355
  msgid "PHP Version"
356
  msgstr ""
357
 
358
- #: lib/yith-system-status.php:109
359
  msgid "TLS Version"
360
  msgstr ""
361
 
362
- #: lib/yith-system-status.php:110
363
  msgid "WordPress Cron"
364
  msgstr ""
365
 
366
- #: lib/yith-system-status.php:111
367
  msgid "SimpleXML"
368
  msgstr ""
369
 
370
- #: lib/yith-system-status.php:112
371
  msgid "MultiByte String"
372
  msgstr ""
373
 
374
- #: lib/yith-system-status.php:113
375
  msgid "ImageMagick Version"
376
  msgstr ""
377
 
378
- #: lib/yith-system-status.php:114
379
  msgid "GD Library"
380
  msgstr ""
381
 
382
- #: lib/yith-system-status.php:115
383
  msgid "Iconv Module"
384
  msgstr ""
385
 
386
- #: lib/yith-system-status.php:116
387
  msgid "OPCache Save Comments"
388
  msgstr ""
389
 
390
- #: lib/yith-system-status.php:117
391
  msgid "URL FOpen"
392
  msgstr ""
393
 
394
- #: lib/yith-system-status.php:135 lib/yith-system-status.php:136
395
  msgid "System Status"
396
  msgstr ""
397
 
398
- #: lib/yith-system-status.php:179
399
  msgid "YITH Plugins"
400
  msgstr ""
401
 
402
- #: lib/yith-system-status.php:180
403
  msgid "WooCommerce"
404
  msgstr ""
405
 
406
- #: lib/yith-system-status.php:297
407
  msgid "Warning!"
408
  msgstr ""
409
 
410
- #: lib/yith-system-status.php:298
 
411
  msgid ""
412
  "The system check has detected some compatibility issues on your "
413
- "installation. %sClick here%s to know more"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
414
  msgstr ""
415
 
416
  #: templates/fields/ajax-customers.php:57
@@ -543,95 +646,53 @@ msgstr ""
543
  msgid "Reset Defaults"
544
  msgstr ""
545
 
546
- #: templates/sysinfo/system-information-panel.php:30
547
  msgid "YITH System Information"
548
  msgstr ""
549
 
550
- #: templates/sysinfo/system-information-panel.php:38
551
- msgid "Site URL"
552
  msgstr ""
553
 
554
- #: templates/sysinfo/system-information-panel.php:46
555
- msgid "Output IP Address"
556
- msgstr ""
557
-
558
- #: templates/sysinfo/system-information-panel.php:76
559
- msgid "Enabled"
560
  msgstr ""
561
 
562
- #: templates/sysinfo/system-information-panel.php:76
563
- msgid "Disabled"
564
- msgstr ""
565
-
566
- #: templates/sysinfo/system-information-panel.php:82
567
- msgid "N/A"
568
  msgstr ""
569
 
570
  #: templates/sysinfo/system-information-panel.php:96
571
- msgid "%s needs %s enabled"
572
- msgstr ""
573
-
574
- #: templates/sysinfo/system-information-panel.php:98
575
- msgid "%s needs at least %s of available memory"
576
- msgstr ""
577
-
578
- #: templates/sysinfo/system-information-panel.php:100
579
- #: templates/sysinfo/system-information-panel.php:149
580
- msgid ""
581
- "For optimal functioning of our plugins, we suggest setting at least %s of "
582
- "available memory"
583
- msgstr ""
584
-
585
- #: templates/sysinfo/system-information-panel.php:102
586
- #: templates/sysinfo/system-information-panel.php:137
587
- #: templates/sysinfo/system-information-panel.php:151
588
- msgid "Read more %s here%s or contact your hosting company in order to increase it."
589
- msgstr ""
590
-
591
- #: templates/sysinfo/system-information-panel.php:105
592
- msgid "%s needs at least %s version"
593
- msgstr ""
594
-
595
- #: templates/sysinfo/system-information-panel.php:116
596
- msgid ""
597
- "Update it to the latest version in order to benefit of all new features and "
598
- "security updates."
599
  msgstr ""
600
 
601
- #: templates/sysinfo/system-information-panel.php:122
602
- msgid "Contact your hosting company in order to update it."
603
  msgstr ""
604
 
605
- #: templates/sysinfo/system-information-panel.php:126
606
- msgid "Remove %s from %s file"
607
  msgstr ""
608
 
609
- #: templates/sysinfo/system-information-panel.php:134
610
- msgid "Contact your hosting company in order to enable it."
611
  msgstr ""
612
 
613
- #: templates/sysinfo/system-information-panel.php:157
614
- msgid ""
615
- "We cannot determine which <b>TLS</b> version is installed because "
616
- "<b>cURL</b> module is disabled. Ask your hosting company to enable it."
617
  msgstr ""
618
 
619
- #: templates/sysinfo/system-information-panel.php:160
620
- msgid ""
621
- "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
622
- "install it."
623
  msgstr ""
624
 
625
- #: templates/sysinfo/system-information-panel.php:172
626
  msgid "Show full PHPInfo"
627
  msgstr ""
628
 
629
- #: templates/sysinfo/system-information-panel.php:176
630
- msgid "Back to System panel"
631
- msgstr ""
632
-
633
- #: templates/sysinfo/system-information-panel.php:193
634
- msgid "Back to top"
635
  msgstr ""
636
 
637
  #: yit-plugin.php:194
4
  msgstr ""
5
  "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2020-08-07 14:15:08+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
24
  "X-Textdomain-Support: yes\n"
25
  "X-Generator: grunt-wp-i18n 1.0.3\n"
26
 
27
+ #: lib/yit-assets.php:102
28
+ msgid "Clear"
29
+ msgstr ""
30
+
31
+ #: lib/yit-assets.php:103
32
+ msgid "Clear color"
33
+ msgstr ""
34
+
35
+ #: lib/yit-assets.php:104
36
+ msgid "Default"
37
+ msgstr ""
38
+
39
+ #: lib/yit-assets.php:105
40
+ msgid "Select default color"
41
+ msgstr ""
42
+
43
+ #: lib/yit-assets.php:106
44
+ msgid "Select Color"
45
+ msgstr ""
46
+
47
+ #: lib/yit-assets.php:107
48
+ msgid "Color value"
49
+ msgstr ""
50
+
51
  #: lib/yit-cpt-unlimited.php:462 lib/yit-cpt-unlimited.php:576
52
  #: lib/yit-cpt-unlimited.php:721 lib/yit-cpt-unlimited.php:1636
53
  msgid "Add %s"
222
  msgid "Upload multiple files"
223
  msgstr ""
224
 
225
+ #: lib/yit-plugin-panel-wc.php:426
226
  msgid "The changes you have made will be lost if you leave this page."
227
  msgstr ""
228
 
230
  msgid "Plugin Settings"
231
  msgstr ""
232
 
233
+ #: lib/yit-plugin-panel.php:454 lib/yit-plugin-panel.php:457
234
  msgid "How to install premium version"
235
  msgstr ""
236
 
237
+ #: lib/yit-plugin-panel.php:617 lib/yit-plugin-subpanel.php:151
238
  #: templates/panel/woocommerce/woocommerce-form.php:14
239
  msgid "Save Changes"
240
  msgstr ""
241
 
242
+ #: lib/yit-plugin-panel.php:621 lib/yit-plugin-subpanel.php:154
243
  #: templates/panel/woocommerce/woocommerce-form.php:17
244
  msgid "If you continue with this action, you will reset all options in this page."
245
  msgstr ""
246
 
247
+ #: lib/yit-plugin-panel.php:624 lib/yit-plugin-subpanel.php:156
248
  msgid "Reset to default"
249
  msgstr ""
250
 
251
+ #: lib/yit-plugin-panel.php:625 lib/yit-plugin-subpanel.php:157
252
  #: templates/panel/woocommerce/woocommerce-form.php:21
253
  msgid "Are you sure?"
254
  msgstr ""
255
 
256
+ #: lib/yit-plugin-panel.php:823
257
  msgid "The element you have entered already exists. Please, enter another name."
258
  msgstr ""
259
 
260
+ #: lib/yit-plugin-panel.php:824
261
  msgid "Settings saved"
262
  msgstr ""
263
 
264
+ #: lib/yit-plugin-panel.php:825
265
  msgid "Settings reset"
266
  msgstr ""
267
 
268
+ #: lib/yit-plugin-panel.php:826
269
  msgid "Element deleted correctly."
270
  msgstr ""
271
 
272
+ #: lib/yit-plugin-panel.php:827 lib/yit-plugin-panel.php:828
273
  msgid "Element updated correctly."
274
  msgstr ""
275
 
276
+ #: lib/yit-plugin-panel.php:829
277
  msgid "Database imported correctly."
278
  msgstr ""
279
 
280
+ #: lib/yit-plugin-panel.php:830
281
  msgid "An error has occurred during import. Please try again."
282
  msgstr ""
283
 
284
+ #: lib/yit-plugin-panel.php:831
285
  msgid "The added file is not valid."
286
  msgstr ""
287
 
288
+ #: lib/yit-plugin-panel.php:832
289
  msgid "Sorry, import is disabled."
290
  msgstr ""
291
 
292
+ #: lib/yit-plugin-panel.php:833
293
  msgid "Sorting successful."
294
  msgstr ""
295
 
296
+ #: lib/yit-plugin-panel.php:1281
297
  msgid "We need your support"
298
  msgstr ""
299
 
300
+ #: lib/yit-plugin-panel.php:1282
301
  msgid "to keep updating and improving the plugin. Please,"
302
  msgstr ""
303
 
304
+ #: lib/yit-plugin-panel.php:1284
305
  msgid "help us by leaving a five-star rating"
306
  msgstr ""
307
 
308
+ #: lib/yit-plugin-panel.php:1285
309
  msgid ":) Thanks!"
310
  msgstr ""
311
 
363
  "later."
364
  msgstr ""
365
 
366
+ #: lib/yith-system-status.php:111
367
  msgid "WordPress Version"
368
  msgstr ""
369
 
370
+ #: lib/yith-system-status.php:112
371
  msgid "WooCommerce Version"
372
  msgstr ""
373
 
374
+ #: lib/yith-system-status.php:113
375
  msgid "Available Memory"
376
  msgstr ""
377
 
378
+ #: lib/yith-system-status.php:114
379
  msgid "PHP Version"
380
  msgstr ""
381
 
382
+ #: lib/yith-system-status.php:115
383
  msgid "TLS Version"
384
  msgstr ""
385
 
386
+ #: lib/yith-system-status.php:116
387
  msgid "WordPress Cron"
388
  msgstr ""
389
 
390
+ #: lib/yith-system-status.php:117
391
  msgid "SimpleXML"
392
  msgstr ""
393
 
394
+ #: lib/yith-system-status.php:118
395
  msgid "MultiByte String"
396
  msgstr ""
397
 
398
+ #: lib/yith-system-status.php:119
399
  msgid "ImageMagick Version"
400
  msgstr ""
401
 
402
+ #: lib/yith-system-status.php:120
403
  msgid "GD Library"
404
  msgstr ""
405
 
406
+ #: lib/yith-system-status.php:121
407
  msgid "Iconv Module"
408
  msgstr ""
409
 
410
+ #: lib/yith-system-status.php:122
411
  msgid "OPCache Save Comments"
412
  msgstr ""
413
 
414
+ #: lib/yith-system-status.php:123
415
  msgid "URL FOpen"
416
  msgstr ""
417
 
418
+ #: lib/yith-system-status.php:141 lib/yith-system-status.php:142
419
  msgid "System Status"
420
  msgstr ""
421
 
422
+ #: lib/yith-system-status.php:184
423
  msgid "YITH Plugins"
424
  msgstr ""
425
 
426
+ #: lib/yith-system-status.php:192
427
  msgid "WooCommerce"
428
  msgstr ""
429
 
430
+ #: lib/yith-system-status.php:330
431
  msgid "Warning!"
432
  msgstr ""
433
 
434
+ #: lib/yith-system-status.php:334
435
+ #. translators: %1$s open link tag, %2$s open link tag
436
  msgid ""
437
  "The system check has detected some compatibility issues on your "
438
+ "installation.%1$sClick here%2$s to know more"
439
+ msgstr ""
440
+
441
+ #: lib/yith-system-status.php:473
442
+ msgid "Enabled"
443
+ msgstr ""
444
+
445
+ #: lib/yith-system-status.php:473
446
+ msgid "Disabled"
447
+ msgstr ""
448
+
449
+ #: lib/yith-system-status.php:478
450
+ msgid "N/A"
451
+ msgstr ""
452
+
453
+ #: lib/yith-system-status.php:506
454
+ #. translators: %1$s plugin name, %2$s requirement name
455
+ msgid "%1$s needs %2$s enabled"
456
+ msgstr ""
457
+
458
+ #: lib/yith-system-status.php:509
459
+ #. translators: %1$s plugin name, %2$s required memory amount
460
+ msgid "%1$s needs at least %2$s of available memory"
461
+ msgstr ""
462
+
463
+ #: lib/yith-system-status.php:512
464
+ #. translators: %1$s plugin name, %2$s version number
465
+ msgid "%1$s needs at least %2$s version"
466
+ msgstr ""
467
+
468
+ #: lib/yith-system-status.php:537
469
+ msgid ""
470
+ "Update it to the latest version in order to benefit of all new features and "
471
+ "security updates."
472
+ msgstr ""
473
+
474
+ #: lib/yith-system-status.php:541 lib/yith-system-status.php:547
475
+ msgid "Contact your hosting company in order to update it."
476
+ msgstr ""
477
+
478
+ #: lib/yith-system-status.php:545
479
+ msgid "Contact your hosting company in order to install it."
480
+ msgstr ""
481
+
482
+ #: lib/yith-system-status.php:552
483
+ #. translators: %1$s code, %2$s file name
484
+ msgid "Remove %1$s from %2$s file"
485
+ msgstr ""
486
+
487
+ #: lib/yith-system-status.php:560
488
+ msgid "Contact your hosting company in order to enable it."
489
+ msgstr ""
490
+
491
+ #: lib/yith-system-status.php:564 lib/yith-system-status.php:588
492
+ #. translators: %1$s opening link tag, %2$s closing link tag
493
+ msgid ""
494
+ "Read more %1$shere%2$s or contact your hosting company in order to increase "
495
+ "it."
496
+ msgstr ""
497
+
498
+ #: lib/yith-system-status.php:585
499
+ #. translators: %s recommended memory amount
500
+ msgid ""
501
+ "For optimal functioning of our plugins, we suggest setting at least %s of "
502
+ "available memory"
503
+ msgstr ""
504
+
505
+ #: lib/yith-system-status.php:593
506
+ #. translators: %1$s TLS label, %2$s cURL label
507
+ msgid ""
508
+ "The system check cannot determine which %1$s version is installed because "
509
+ "%2$s module is disabled. Ask your hosting company to enable it."
510
+ msgstr ""
511
+
512
+ #: lib/yith-system-status.php:596
513
+ #. translators: %1$s TLS label
514
+ msgid ""
515
+ "The system check cannot determine which %1$s version is installed due to a "
516
+ "connection issue between your site and our server."
517
  msgstr ""
518
 
519
  #: templates/fields/ajax-customers.php:57
646
  msgid "Reset Defaults"
647
  msgstr ""
648
 
649
+ #: templates/sysinfo/system-information-panel.php:39
650
  msgid "YITH System Information"
651
  msgstr ""
652
 
653
+ #: templates/sysinfo/system-information-panel.php:50
654
+ msgid "WP debug.log file"
655
  msgstr ""
656
 
657
+ #: templates/sysinfo/system-information-panel.php:54
658
+ msgid "PHP error_log file"
 
 
 
 
659
  msgstr ""
660
 
661
+ #: templates/sysinfo/system-information-panel.php:59
662
+ #: templates/sysinfo/system-information-panel.php:83
663
+ msgid "Back to System panel"
 
 
 
664
  msgstr ""
665
 
666
  #: templates/sysinfo/system-information-panel.php:96
667
+ msgid "Back to top"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
668
  msgstr ""
669
 
670
+ #: templates/sysinfo/system-information-panel.php:104
671
+ msgid "Site URL"
672
  msgstr ""
673
 
674
+ #: templates/sysinfo/system-information-panel.php:112
675
+ msgid "Output IP Address"
676
  msgstr ""
677
 
678
+ #: templates/sysinfo/system-information-panel.php:120
679
+ msgid "Defined WP_CACHE"
680
  msgstr ""
681
 
682
+ #: templates/sysinfo/system-information-panel.php:123
683
+ msgid "Yes"
 
 
684
  msgstr ""
685
 
686
+ #: templates/sysinfo/system-information-panel.php:123
687
+ msgid "No"
 
 
688
  msgstr ""
689
 
690
+ #: templates/sysinfo/system-information-panel.php:159
691
  msgid "Show full PHPInfo"
692
  msgstr ""
693
 
694
+ #: templates/sysinfo/system-information-panel.php:167
695
+ msgid "Show log files"
 
 
 
 
696
  msgstr ""
697
 
698
  #: yit-plugin.php:194
plugin-fw/lib/yit-assets.php CHANGED
@@ -7,97 +7,111 @@
7
  * http://www.gnu.org/licenses/gpl-3.0.txt
8
  */
9
 
10
- !defined( 'ABSPATH' ) && exit; // Exit if accessed directly
11
-
12
- if ( !class_exists( 'YIT_Assets' ) ) {
13
- /**
14
- * YIT Assets
15
- *
16
- * @class YIT_Assets
17
- * @package YITH
18
- * @since 3.0.0
19
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
20
- */
21
- class YIT_Assets {
22
- /** @var string */
23
- public $version = '1.0.0';
24
-
25
- /** @var YIT_Assets */
26
- private static $_instance;
27
-
28
- /** @return YIT_Assets */
29
- public static function instance() {
30
- return !is_null( self::$_instance ) ? self::$_instance : self::$_instance = new self();
31
- }
32
-
33
- /**
34
- * Constructor
35
- *
36
- * @since 1.0
37
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
38
- */
39
- private function __construct() {
40
- $this->version = yith_plugin_fw_get_version();
41
- add_action( 'admin_enqueue_scripts', array( $this, 'register_styles_and_scripts' ) );
42
- }
43
-
44
- /**
45
- * Register styles and scripts
46
- */
47
- public function register_styles_and_scripts() {
48
- global $wp_scripts, $woocommerce;
49
-
50
- $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
51
-
52
- //scripts
53
- wp_register_script( 'yith-colorpicker', YIT_CORE_PLUGIN_URL . '/assets/js/yith-colorpicker.min.js', array( 'jquery', 'wp-color-picker' ), $this->version, true );
54
- wp_register_script( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/js/yith-fields' . $suffix . '.js', array( 'jquery', 'jquery-ui-datepicker', 'yith-colorpicker', 'codemirror', 'codemirror-javascript', 'jquery-ui-slider', 'jquery-ui-sortable' ), $this->version, true );
55
-
56
- wp_register_script( 'yit-metabox', YIT_CORE_PLUGIN_URL . '/assets/js/metabox' . $suffix . '.js', array( 'jquery', 'wp-color-picker', 'yith-plugin-fw-fields' ), $this->version, true );
57
- wp_register_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel' . $suffix . '.js', array( 'jquery', 'wp-color-picker', 'jquery-ui-sortable', 'yith-plugin-fw-fields' ), $this->version, true );
58
- wp_register_script( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/js/codemirror/codemirror.js', array( 'jquery' ), '3.15', true );
59
- wp_register_script( 'codemirror-javascript', YIT_CORE_PLUGIN_URL . '/assets/js/codemirror/javascript.js', array( 'jquery', 'codemirror' ), '3.15', true );
60
- wp_register_script( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/js/jquery.colorbox' . $suffix . '.js', array( 'jquery' ), '1.6.3', true );
61
- wp_register_script( 'yith_how_to', YIT_CORE_PLUGIN_URL . '/assets/js/how-to' . $suffix . '.js', array( 'jquery' ), $this->version, true );
62
- wp_register_script( 'yith-plugin-fw-wp-pages', YIT_CORE_PLUGIN_URL . '/assets/js/wp-pages' . $suffix . '.js', array( 'jquery' ), $this->version, false );
63
-
64
- //styles
65
- $jquery_version = isset( $wp_scripts->registered[ 'jquery-ui-core' ]->ver ) ? $wp_scripts->registered[ 'jquery-ui-core' ]->ver : '1.9.2';
66
- wp_register_style( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/css/codemirror/codemirror.css' );
67
- wp_register_style( 'yit-plugin-style', YIT_CORE_PLUGIN_URL . '/assets/css/yit-plugin-panel.css', array(), $this->version );
68
- wp_register_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:400,500,600,700,800,100,200,300,900' );
69
- wp_register_style( 'yit-jquery-ui-style', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.css', array(), $jquery_version );
70
- wp_register_style( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/css/colorbox.css', array(), $this->version );
71
- wp_register_style( 'yit-upgrade-to-pro', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrade-to-pro.css', array( 'colorbox' ), $this->version );
72
- wp_register_style( 'yit-plugin-metaboxes', YIT_CORE_PLUGIN_URL . '/assets/css/metaboxes.css', array(), $this->version );
73
- wp_register_style( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/css/yith-fields.css', false, $this->version );
74
-
75
- $wc_version_suffix = '';
76
- if ( function_exists( 'WC' ) || !empty( $woocommerce ) ) {
77
- $woocommerce_version = function_exists( 'WC' ) ? WC()->version : $woocommerce->version;
78
- $wc_version_suffix = version_compare( $woocommerce_version, '3.0.0', '>=' ) ? '' : '-wc-2.6';
79
-
80
- wp_register_style( 'woocommerce_admin_styles', $woocommerce->plugin_url() . '/assets/css/admin.css', array(), $woocommerce_version );
81
- } else {
82
- wp_register_script( 'select2', '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js', array( 'jquery' ), '4.0.3', true );
83
- wp_register_style( 'yith-select2-no-wc', YIT_CORE_PLUGIN_URL . '/assets/css/yith-select2-no-wc.css', false, $this->version );
84
- }
85
-
86
- wp_register_script( 'yith-enhanced-select', YIT_CORE_PLUGIN_URL . '/assets/js/yith-enhanced-select' . $wc_version_suffix . $suffix . '.js', array( 'jquery', 'select2' ), $this->version, true );
87
- wp_localize_script( 'yith-enhanced-select', 'yith_framework_enhanced_select_params', array(
88
- 'ajax_url' => admin_url( 'admin-ajax.php' ),
89
- 'search_posts_nonce' => wp_create_nonce( 'search-posts' ),
90
- 'search_terms_nonce' => wp_create_nonce( 'search-terms' ),
91
- 'search_customers_nonce' => wp_create_nonce( 'search-customers' ),
92
- ) );
93
-
94
- wp_localize_script( 'yith-plugin-fw-fields', 'yith_framework_fw_fields', array(
95
- 'admin_url' => admin_url( 'admin.php' ),
96
- 'ajax_url' => admin_url( 'admin-ajax.php' ),
97
- ) );
98
- wp_enqueue_style( 'yith-plugin-fw-admin', YIT_CORE_PLUGIN_URL . '/assets/css/admin.css', array(), $this->version );
99
- }
100
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  }
102
 
103
  YIT_Assets::instance();
7
  * http://www.gnu.org/licenses/gpl-3.0.txt
8
  */
9
 
10
+ ! defined( 'ABSPATH' ) && exit; // Exit if accessed directly
11
+
12
+ if ( ! class_exists( 'YIT_Assets' ) ) {
13
+ /**
14
+ * YIT Assets
15
+ *
16
+ * @class YIT_Assets
17
+ * @package YITH
18
+ * @since 3.0.0
19
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
20
+ */
21
+ class YIT_Assets {
22
+ /** @var string */
23
+ public $version = '1.0.0';
24
+
25
+ /** @var YIT_Assets */
26
+ private static $_instance;
27
+
28
+ /** @return YIT_Assets */
29
+ public static function instance() {
30
+ return ! is_null( self::$_instance ) ? self::$_instance : self::$_instance = new self();
31
+ }
32
+
33
+ /**
34
+ * Constructor
35
+ *
36
+ * @since 1.0
37
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
38
+ */
39
+ private function __construct() {
40
+ $this->version = yith_plugin_fw_get_version();
41
+ add_action( 'admin_enqueue_scripts', array( $this, 'register_styles_and_scripts' ) );
42
+ }
43
+
44
+ /**
45
+ * Register styles and scripts
46
+ */
47
+ public function register_styles_and_scripts() {
48
+ global $wp_scripts, $woocommerce, $wp_version;
49
+
50
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
51
+
52
+ //scripts
53
+ wp_register_script( 'yith-colorpicker', YIT_CORE_PLUGIN_URL . '/assets/js/yith-colorpicker.min.js', array( 'jquery', 'wp-color-picker' ), $this->version, true );
54
+ wp_register_script( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/js/yith-fields' . $suffix . '.js', array( 'jquery', 'jquery-ui-datepicker', 'yith-colorpicker', 'codemirror', 'codemirror-javascript', 'jquery-ui-slider', 'jquery-ui-sortable' ), $this->version, true );
55
+
56
+ wp_register_script( 'yit-metabox', YIT_CORE_PLUGIN_URL . '/assets/js/metabox' . $suffix . '.js', array( 'jquery', 'wp-color-picker', 'yith-plugin-fw-fields' ), $this->version, true );
57
+ wp_register_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel' . $suffix . '.js', array( 'jquery', 'wp-color-picker', 'jquery-ui-sortable', 'yith-plugin-fw-fields' ), $this->version, true );
58
+ wp_register_script( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/js/codemirror/codemirror.js', array( 'jquery' ), '3.15', true );
59
+ wp_register_script( 'codemirror-javascript', YIT_CORE_PLUGIN_URL . '/assets/js/codemirror/javascript.js', array( 'jquery', 'codemirror' ), '3.15', true );
60
+ wp_register_script( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/js/jquery.colorbox' . $suffix . '.js', array( 'jquery' ), '1.6.3', true );
61
+ wp_register_script( 'yith_how_to', YIT_CORE_PLUGIN_URL . '/assets/js/how-to' . $suffix . '.js', array( 'jquery' ), $this->version, true );
62
+ wp_register_script( 'yith-plugin-fw-wp-pages', YIT_CORE_PLUGIN_URL . '/assets/js/wp-pages' . $suffix . '.js', array( 'jquery' ), $this->version, false );
63
+
64
+ //styles
65
+ $jquery_version = isset( $wp_scripts->registered['jquery-ui-core']->ver ) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.9.2';
66
+ wp_register_style( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/css/codemirror/codemirror.css' );
67
+ wp_register_style( 'yit-plugin-style', YIT_CORE_PLUGIN_URL . '/assets/css/yit-plugin-panel.css', array(), $this->version );
68
+ wp_register_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:400,500,600,700,800,100,200,300,900' );
69
+ wp_register_style( 'yit-jquery-ui-style', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.css', array(), $jquery_version );
70
+ wp_register_style( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/css/colorbox.css', array(), $this->version );
71
+ wp_register_style( 'yit-upgrade-to-pro', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrade-to-pro.css', array( 'colorbox' ), $this->version );
72
+ wp_register_style( 'yit-plugin-metaboxes', YIT_CORE_PLUGIN_URL . '/assets/css/metaboxes.css', array(), $this->version );
73
+ wp_register_style( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/css/yith-fields.css', false, $this->version );
74
+
75
+ $wc_version_suffix = '';
76
+ if ( function_exists( 'WC' ) || ! empty( $woocommerce ) ) {
77
+ $woocommerce_version = function_exists( 'WC' ) ? WC()->version : $woocommerce->version;
78
+ $wc_version_suffix = version_compare( $woocommerce_version, '3.0.0', '>=' ) ? '' : '-wc-2.6';
79
+
80
+ wp_register_style( 'woocommerce_admin_styles', $woocommerce->plugin_url() . '/assets/css/admin.css', array(), $woocommerce_version );
81
+ } else {
82
+ wp_register_script( 'select2', '//cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js', array( 'jquery' ), '4.0.3', true );
83
+ wp_register_style( 'yith-select2-no-wc', YIT_CORE_PLUGIN_URL . '/assets/css/yith-select2-no-wc.css', false, $this->version );
84
+ }
85
+
86
+ wp_register_script( 'yith-enhanced-select', YIT_CORE_PLUGIN_URL . '/assets/js/yith-enhanced-select' . $wc_version_suffix . $suffix . '.js', array( 'jquery', 'select2' ), $this->version, true );
87
+ wp_localize_script( 'yith-enhanced-select', 'yith_framework_enhanced_select_params', array(
88
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
89
+ 'search_posts_nonce' => wp_create_nonce( 'search-posts' ),
90
+ 'search_terms_nonce' => wp_create_nonce( 'search-terms' ),
91
+ 'search_customers_nonce' => wp_create_nonce( 'search-customers' ),
92
+ ) );
93
+
94
+ wp_localize_script( 'yith-plugin-fw-fields', 'yith_framework_fw_fields', array(
95
+ 'admin_url' => admin_url( 'admin.php' ),
96
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
97
+ ) );
98
+
99
+
100
+ // Localize Colorpicker to avoid issues with WordPress 5.5
101
+ if ( version_compare( $wp_version, '5.5-RC', '>=' ) ) {
102
+ wp_localize_script( 'yith-colorpicker', 'wpColorPickerL10n', array(
103
+ 'clear' => __( 'Clear' ),
104
+ 'clearAriaLabel' => __( 'Clear color' ),
105
+ 'defaultString' => __( 'Default' ),
106
+ 'defaultAriaLabel' => __( 'Select default color' ),
107
+ 'pick' => __( 'Select Color' ),
108
+ 'defaultLabel' => __( 'Color value' ),
109
+ ) );
110
+ }
111
+
112
+ wp_enqueue_style( 'yith-plugin-fw-admin', YIT_CORE_PLUGIN_URL . '/assets/css/admin.css', array(), $this->version );
113
+ }
114
+ }
115
  }
116
 
117
  YIT_Assets::instance();
plugin-fw/lib/yit-plugin-panel-wc.php CHANGED
@@ -94,8 +94,9 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
94
  add_action( 'yith_plugin_fw_get_field_after', array( $this, 'add_yith_ui' ) );
95
  add_action( 'yith_plugin_fw_before_woocommerce_panel', array( $this, 'add_plugin_banner' ), 10, 1 );
96
  add_action( 'admin_action_yith_plugin_fw_save_toggle_element', array( $this, 'save_toggle_element_options' ) );
 
97
 
98
- add_action( 'admin_enqueue_scripts', array( $this, 'init_wp_with_tabs' ), 11 );
99
  add_action( 'admin_init', array( $this, 'maybe_redirect_to_proper_wp_page' ) );
100
 
101
  // init actions once to prevent multiple actions
@@ -302,20 +303,13 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
302
 
303
  $yit_options = $this->get_main_array_options();
304
  $option_key = $this->get_current_option_key();
305
-
306
- foreach ( $yit_options as $key => $options_list ){
307
- foreach ( $options_list as $value ){
308
- if( ! empty( $value['yith-type'] ) && 'toggle-element-fixed' == $value['yith-type'] && isset( $value['save_single_options'] ) && true === $value['save_single_options'] ){
309
- $yit_options[ $key ] = array_merge( $yit_options[ $key ] , $value['elements'] );
310
- }
311
- }
312
- }
313
 
314
  if ( version_compare( WC()->version, '2.4.0', '>=' ) ) {
315
  if ( !empty( $yit_options[ $option_key ] ) ) {
316
  foreach ( $yit_options[ $option_key ] as $option ) {
317
  if ( isset( $option[ 'id' ] ) && isset( $_POST[ $option[ 'id' ] ] ) && isset( $option[ 'type' ] ) && !in_array( $option[ 'type' ], self::$wc_type ) ) {
318
- $_POST[ $option[ 'id' ] ] = maybe_serialize( $_POST[ $option[ 'id' ] ] );
319
  }
320
  }
321
  }
@@ -347,18 +341,43 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
347
 
348
  $yit_options = $this->get_main_array_options();
349
  $option_key = $this->get_current_option_key();
 
 
 
 
 
350
  foreach ( $yit_options[ $option_key ] as $id => $option ) {
351
- if ( isset( $option[ 'yith-type' ] ) && $option[ 'yith-type' ] == 'multi-colorpicker' && !empty( $option[ 'colorpickers' ] ) ) {
352
- $default = [];
353
- foreach ( $option[ 'colorpickers' ] as $colorpicker ) {
354
- $default[ $colorpicker[ 'id' ] ] = isset( $colorpicker[ 'default' ] ) ? $colorpicker[ 'default' ] : '';
355
- }
356
- update_option( $option[ 'id' ], $default );
357
- } elseif ( isset( $option[ 'default' ] ) ) {
358
- update_option( $option[ 'id' ], $option[ 'default' ] );
359
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
360
  }
361
 
 
 
 
 
 
 
362
  do_action( 'yit_panel_wc_after_reset' );
363
  }
364
  }
@@ -500,8 +519,8 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
500
  * @since 2.0
501
  */
502
  public function maybe_unserialize_panel_data( $value, $option, $raw_value ) {
503
- if ( !version_compare( WC()->version, '2.4.0', '>=' ) || !isset( $option[ 'type' ] ) || in_array( $option[ 'type' ], self::$wc_type ) ) {
504
- return $value;
505
  }
506
 
507
  $yit_options = $this->get_main_array_options();
@@ -627,6 +646,9 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
627
  }
628
  $field[ 'value' ] = $value;
629
 
 
 
 
630
  require( YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-option-row.php' );
631
  }
632
  }
@@ -696,5 +718,47 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
696
 
697
  parent::print_tabs_nav( $args );
698
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
699
  }
700
  }
94
  add_action( 'yith_plugin_fw_get_field_after', array( $this, 'add_yith_ui' ) );
95
  add_action( 'yith_plugin_fw_before_woocommerce_panel', array( $this, 'add_plugin_banner' ), 10, 1 );
96
  add_action( 'admin_action_yith_plugin_fw_save_toggle_element', array( $this, 'save_toggle_element_options' ) );
97
+ add_filter( 'woocommerce_admin_settings_sanitize_option', array( $this, 'sanitize_onoff_value' ), 20, 3 );
98
 
99
+ add_action( 'admin_enqueue_scripts', array( $this, 'init_wp_with_tabs' ), 11 );
100
  add_action( 'admin_init', array( $this, 'maybe_redirect_to_proper_wp_page' ) );
101
 
102
  // init actions once to prevent multiple actions
303
 
304
  $yit_options = $this->get_main_array_options();
305
  $option_key = $this->get_current_option_key();
306
+ $yit_options = $this->check_for_save_single_option( $yit_options );
 
 
 
 
 
 
 
307
 
308
  if ( version_compare( WC()->version, '2.4.0', '>=' ) ) {
309
  if ( !empty( $yit_options[ $option_key ] ) ) {
310
  foreach ( $yit_options[ $option_key ] as $option ) {
311
  if ( isset( $option[ 'id' ] ) && isset( $_POST[ $option[ 'id' ] ] ) && isset( $option[ 'type' ] ) && !in_array( $option[ 'type' ], self::$wc_type ) ) {
312
+ $_POST[ $option[ 'id' ] ] = maybe_serialize( $_POST[ $option[ 'id' ] ] );
313
  }
314
  }
315
  }
341
 
342
  $yit_options = $this->get_main_array_options();
343
  $option_key = $this->get_current_option_key();
344
+ $yit_options = $this->check_for_save_single_option( $yit_options );
345
+
346
+ // Collect an array of options to be saved as array and not as single option.
347
+ $array_options = array();
348
+
349
  foreach ( $yit_options[ $option_key ] as $id => $option ) {
350
+
351
+ // make sure option id is not an array
352
+ $matches = array();
353
+ isset( $option['id'] ) && preg_match('/(.*)\[(.*)\]/', $option['id'], $matches );
354
+
355
+ if( ! empty( $matches ) && isset( $option['default'] ) ) {
356
+ if( ! empty( $matches[2] ) ) {
357
+ $array_options[ $matches[1] ][ $matches[2] ] = $option[ 'default' ];
358
+ } else {
359
+ $array_options[ $matches[1] ][] = $option[ 'default' ];
360
+ }
361
+ }
362
+ else {
363
+ if ( isset( $option['yith-type'] ) && $option['yith-type'] == 'multi-colorpicker' && ! empty( $option['colorpickers'] ) ) {
364
+ $default = [];
365
+ foreach ( $option['colorpickers'] as $colorpicker ) {
366
+ $default[ $colorpicker['id'] ] = isset( $colorpicker['default'] ) ? $colorpicker['default'] : '';
367
+ }
368
+ update_option( $option['id'], $default );
369
+ } elseif ( isset( $option['default'] ) ) {
370
+ update_option( $option['id'], $option['default'] );
371
+ }
372
+ }
373
  }
374
 
375
+ // Save array options if any
376
+ foreach ( $array_options as $key => $value ) {
377
+ update_option( $key, $value );
378
+ }
379
+
380
+
381
  do_action( 'yit_panel_wc_after_reset' );
382
  }
383
  }
519
  * @since 2.0
520
  */
521
  public function maybe_unserialize_panel_data( $value, $option, $raw_value ) {
522
+ if ( ! version_compare( WC()->version, '2.4.0', '>=' ) || !isset( $option[ 'type' ] ) || in_array( $option[ 'type' ], self::$wc_type ) ) {
523
+ return $value;
524
  }
525
 
526
  $yit_options = $this->get_main_array_options();
646
  }
647
  $field[ 'value' ] = $value;
648
 
649
+ // let's filter field data just before print
650
+ $field = apply_filters( 'yith_plugin_fw_wc_panel_field_data', $field );
651
+
652
  require( YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-option-row.php' );
653
  }
654
  }
718
 
719
  parent::print_tabs_nav( $args );
720
  }
721
+
722
+ /**
723
+ * Sanitize OnOff Option
724
+ *
725
+ * @param $value mixed Option value
726
+ * @param $option mixed Option settings array
727
+ * @param $raw_value string Raw option value
728
+ * @return mixed Filtered return value
729
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
730
+ * @since 3.0.0
731
+ */
732
+ public static function sanitize_onoff_value( $value, $option, $raw_value ) {
733
+ if ( isset( $option[ 'type' ] ) && in_array( $option[ 'type' ], array( 'checkbox', 'onoff' ) ) ) {
734
+ $value = yith_plugin_fw_is_true( $raw_value ) ? 'yes' : 'no';
735
+
736
+ if ( !empty( $option[ 'yith-sanitize-callback' ] ) && is_callable( $option[ 'yith-sanitize-callback' ] ) ) {
737
+ $value = call_user_func( $option[ 'yith-sanitize-callback' ], $value );
738
+ }
739
+ }
740
+
741
+ return $value;
742
+ }
743
+
744
+ /**
745
+ * Check if need to save the toggle element to a single options instead of an array
746
+ *
747
+ * @param $yit_options mixed|array Original options array
748
+ *
749
+ * @return mixed|array New options array
750
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
751
+ * @since 3.0.0
752
+ */
753
+ public function check_for_save_single_option( $yit_options ){
754
+ foreach ( $yit_options as $key => $options_list ){
755
+ foreach ( $options_list as $value ){
756
+ if( ! empty( $value['yith-type'] ) && 'toggle-element-fixed' == $value['yith-type'] && isset( $value['save_single_options'] ) && true === $value['save_single_options'] ){
757
+ $yit_options[ $key ] = array_merge( $yit_options[ $key ] , $value['elements'] );
758
+ }
759
+ }
760
+ }
761
+ return $yit_options;
762
+ }
763
  }
764
  }
plugin-fw/lib/yit-plugin-panel.php CHANGED
@@ -7,116 +7,115 @@
7
  * http://www.gnu.org/licenses/gpl-3.0.txt
8
  */
9
 
10
- if ( !defined( 'ABSPATH' ) ) {
11
- exit;
12
  } // Exit if accessed directly
13
 
14
- if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
15
- /**
16
- * YIT Plugin Panel
17
- * Setting Page to Manage Plugins
18
- *
19
- * @class YIT_Plugin_Panel
20
- * @package YITH
21
- * @since 1.0
22
- * @author Your Inspiration Themes
23
- */
24
- class YIT_Plugin_Panel {
25
 
26
- /**
27
- * @var string version of class
28
- */
29
- public $version = '1.0.0';
30
 
31
- /**
32
- * @var array a setting list of parameters
33
- */
34
- public $settings = array();
35
 
36
- /**
37
- * @var array
38
- */
39
- protected $_tabs_path_files;
40
 
41
- /**
42
- * @var array
43
- */
44
- protected $_main_array_options;
45
 
46
- /**
47
- * @var array
48
- */
49
- protected $_tabs_hierarchy;
50
 
51
- /**
52
- * @var array
53
- */
54
- protected static $_panel_tabs_in_wp_pages = array();
55
 
56
- /**
57
- * @var array
58
- */
59
- public $links;
60
 
61
- /**
62
- * @var bool
63
- */
64
- protected static $_actions_initialized = false;
65
 
66
- /**
67
- * Constructor
68
- *
69
- * @param array $args
70
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
71
- * @since 1.0
72
- */
73
- public function __construct( $args = array() ) {
74
 
75
- if ( !empty( $args ) ) {
76
 
77
- $default_args = array(
78
- 'parent_slug' => 'edit.php?',
79
- 'page_title' => __( 'Plugin Settings', 'yith-plugin-fw' ),
80
- 'menu_title' => __( 'Settings', 'yith-plugin-fw' ),
81
- 'capability' => 'manage_options',
82
- 'icon_url' => '',
83
- 'position' => null
84
- );
85
 
86
- $args = apply_filters( 'yit_plugin_fw_panel_option_args', wp_parse_args( $args, $default_args ) );
87
- if ( isset( $args[ 'parent_page' ] ) && 'yit_plugin_panel' === $args[ 'parent_page' ] )
88
- $args[ 'parent_page' ] = 'yith_plugin_panel';
89
 
90
- $this->settings = $args;
91
- $this->_tabs_path_files = $this->get_tabs_path_files();
92
 
93
- if ( isset( $this->settings[ 'create_menu_page' ] ) && $this->settings[ 'create_menu_page' ] ) {
94
- $this->add_menu_page();
95
- }
96
 
97
- if ( !empty( $this->settings[ 'links' ] ) ) {
98
- $this->links = $this->settings[ 'links' ];
99
- }
100
 
101
- add_action( 'admin_init', array( $this, 'register_settings' ) );
102
- add_action( 'admin_menu', array( $this, 'add_setting_page' ), 20 );
103
- add_action( 'admin_menu', array( $this, 'add_premium_version_upgrade_to_menu' ), 100 );
104
- add_action( 'admin_bar_menu', array( $this, 'add_admin_bar_menu' ), 100 );
105
- add_action( 'admin_init', array( $this, 'add_fields' ) );
106
 
107
- add_action( 'admin_enqueue_scripts', array( $this, 'init_wp_with_tabs' ), 11 );
108
  add_action( 'admin_init', array( $this, 'maybe_redirect_to_proper_wp_page' ) );
109
 
110
- // init actions once to prevent multiple actions
111
- static::_init_actions();
112
- }
113
 
114
- add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
115
 
116
  //yith-plugin-ui
117
  add_action( 'yith_plugin_fw_before_yith_panel', array( $this, 'add_plugin_banner' ), 10, 1 );
118
  add_action( 'wp_ajax_yith_plugin_fw_save_toggle_element', array( $this, 'save_toggle_element_options' ) );
119
-
120
  }
121
 
122
  /**
@@ -131,7 +130,7 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
131
  $excluded_post_types = array( 'product', 'page', 'post' );
132
 
133
  return in_array( $pagenow, array( 'post.php', 'post-new.php', 'edit.php' ), true ) &&
134
- ! in_array( $post_type, $excluded_post_types, true );
135
  }
136
 
137
  /**
@@ -146,1213 +145,1230 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
146
  $excluded_taxonomies = array( 'category', 'post_tag', 'product_cat', 'product_tag' );
147
 
148
  return in_array( $pagenow, array( 'edit-tags.php', 'term.php' ), true ) &&
149
- ! in_array( $taxonomy, $excluded_taxonomies, true );
150
  }
151
 
152
- /**
153
- * Init actions to show YITH Panel tabs in WP Pages
154
- *
155
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
156
- * @since 3.4.0
157
- */
158
- public function init_wp_with_tabs() {
159
- if ( !current_user_can( $this->settings[ 'capability' ] ) ) {
160
- return;
161
- }
162
 
163
- global $post_type, $taxonomy;
164
- $tabs = false;
165
 
166
- if ( $this->is_custom_post_type_page() ) {
167
- $tabs = $this->get_post_type_tabs( $post_type );
168
- } else if ( $this->is_custom_taxonomy_page() ) {
169
- $tabs = $this->get_taxonomy_tabs( $taxonomy );
170
- }
171
 
172
- if ( $tabs ) {
173
- // tabs_in_edit
174
- $current_tab_args = array(
175
- 'page' => $this->settings[ 'page' ],
176
- 'current_tab' => isset( $tabs[ 'tab' ] ) ? $tabs[ 'tab' ] : '',
177
- 'current_sub_tab' => isset( $tabs[ 'sub_tab' ] ) ? $tabs[ 'sub_tab' ] : ''
178
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
 
180
- wp_enqueue_style( 'yit-plugin-style' );
181
- wp_enqueue_style( 'yith-plugin-fw-fields' );
182
- wp_enqueue_script( 'yith-plugin-fw-wp-pages' );
183
-
184
- if ( !self::$_panel_tabs_in_wp_pages ) {
185
- self::$_panel_tabs_in_wp_pages = $current_tab_args;
186
- add_action( 'all_admin_notices', array( $this, 'print_panel_tabs_in_wp_pages' ) );
187
- add_action( 'admin_footer', array( $this, 'print_panel_tabs_in_wp_pages_end' ) );
188
- add_filter( 'parent_file', array( $this, 'set_parent_file_to_handle_menu_for_wp_pages' ) );
189
- add_filter( 'submenu_file', array( $this, 'set_submenu_file_to_handle_menu_for_wp_pages' ), 10, 2 );
190
- }
191
- }
192
- }
193
 
194
- /**
195
- * Init actions once to prevent multiple actions
196
- *
197
- * @since 3.0.0
198
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
199
- */
200
- protected static function _init_actions() {
201
- if ( !static::$_actions_initialized ) {
202
- add_filter( 'admin_body_class', array( __CLASS__, 'add_body_class' ) );
203
 
204
- // sort plugins by name in YITH Plugins menu
205
- add_action( 'admin_menu', array( __CLASS__, 'sort_plugins' ), 90 );
206
- add_filter( 'add_menu_classes', array( __CLASS__, 'add_menu_class_in_yith_plugin' ) );
207
 
 
 
 
208
 
209
- static::$_actions_initialized = true;
210
- }
211
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
 
213
- protected function _maybe_init_vars() {
214
- if ( !isset( $this->_main_array_options ) && !isset( $this->_tabs_hierarchy ) ) {
215
- $options_path = $this->settings[ 'options-path' ];
216
- $this->_main_array_options = array();
217
- $this->_tabs_hierarchy = array();
218
-
219
- foreach ( $this->settings[ 'admin-tabs' ] as $item => $v ) {
220
- $path = trailingslashit( $options_path ) . $item . '-options.php';
221
- $path = apply_filters( 'yith_plugin_panel_item_options_path', $path, $options_path, $item, $this );
222
- if ( file_exists( $path ) ) {
223
- $_tab = include $path;
224
- $this->_main_array_options = array_merge( $this->_main_array_options, $_tab );
225
- $sub_tabs = $this->get_sub_tabs( $_tab );
226
- $current_tab_key = array_keys( $_tab )[ 0 ];
227
-
228
- $this->_tabs_hierarchy[ $current_tab_key ] = array_merge( array( 'parent' => '', 'has_sub_tabs' => !!$sub_tabs ), $this->get_tab_info_by_options( $_tab[ $current_tab_key ] ) );
229
-
230
- foreach ( $sub_tabs as $sub_item => $sub_options ) {
231
- if ( strpos( $sub_item, $item . '-' ) === 0 ) {
232
- $sub_item = substr( $sub_item, strlen( $item ) + 1 );
233
- }
234
- $sub_tab_path = $options_path . '/' . $item . '/' . $sub_item . '-options.php';
235
- $sub_tab_path = apply_filters( 'yith_plugin_panel_sub_tab_item_options_path', $sub_tab_path, $sub_tabs, $sub_item, $this );
236
-
237
- if ( file_exists( $sub_tab_path ) ) {
238
- $_sub_tab = include $sub_tab_path;
239
- $this->_main_array_options = array_merge( $this->_main_array_options, $_sub_tab );
240
-
241
- $current_sub_tab_key = array_keys( $_sub_tab )[ 0 ];
242
- $this->_tabs_hierarchy[ $current_sub_tab_key ] = array_merge( array( 'parent' => $current_tab_key ), $this->get_tab_info_by_options( $_sub_tab[ $current_sub_tab_key ] ) );
243
- }
244
- }
245
- }
246
- }
247
- }
248
- }
249
 
250
- /**
251
- * Add yith-plugin-fw-panel in body classes in Panel pages
252
- *
253
- * @param $admin_body_classes
254
- * @return string
255
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
256
- * @since 3.0.0
257
- */
258
- public static function add_body_class( $admin_body_classes ) {
259
- global $pagenow;
260
- if ( ( 'admin.php' == $pagenow && strpos( get_current_screen()->id, 'yith-plugins_page' ) !== false ) )
261
- $admin_body_classes = substr_count( $admin_body_classes, ' yith-plugin-fw-panel ' ) == 0 ? $admin_body_classes . ' yith-plugin-fw-panel ' : $admin_body_classes;
262
 
263
- return $admin_body_classes;
264
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
 
266
- /**
267
- * Add Menu page link
268
- *
269
- * @return void
270
- * @since 1.0
271
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
272
- */
273
- public function add_menu_page() {
274
- global $admin_page_hooks;
275
-
276
- if ( !isset( $admin_page_hooks[ 'yith_plugin_panel' ] ) ) {
277
- $position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
278
- $capability = apply_filters( 'yit_plugin_panel_menu_page_capability', 'manage_options' );
279
- $show = apply_filters( 'yit_plugin_panel_menu_page_show', true );
280
-
281
- // YITH text must not be translated
282
- if ( !!$show ) {
283
- add_menu_page( 'yith_plugin_panel', 'YITH', $capability, 'yith_plugin_panel', null, yith_plugin_fw_get_default_logo(), $position );
284
- $admin_page_hooks[ 'yith_plugin_panel' ] = 'yith-plugins'; // prevent issues for backward compatibility
285
- }
286
- }
287
- }
288
 
289
- /**
290
- * Remove duplicate submenu
291
- * Submenu page hack: Remove the duplicate YIT Plugin link on subpages
292
- *
293
- * @return void
294
- * @since 1.0
295
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
296
- */
297
- public function remove_duplicate_submenu_page() {
298
- /* === Duplicate Items Hack === */
299
- remove_submenu_page( 'yith_plugin_panel', 'yith_plugin_panel' );
300
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
 
302
- /**
303
- * Enqueue script and styles in admin side
304
- * Add style and scripts to administrator
305
- *
306
- * @return void
307
- * @since 1.0
308
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
309
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
310
- */
311
- public function admin_enqueue_scripts() {
312
- global $pagenow;
313
-
314
- // enqueue styles only in the current panel page
315
- if ( 'admin.php' === $pagenow && strpos( get_current_screen()->id, $this->settings[ 'page' ] ) !== false || apply_filters( 'yit_plugin_panel_asset_loading', false ) ) {
316
- wp_enqueue_media();
317
-
318
- wp_enqueue_style( 'yith-plugin-fw-fields' );
319
- wp_enqueue_style( 'yit-jquery-ui-style' );
320
- wp_enqueue_style( 'raleway-font' );
321
-
322
- wp_enqueue_script( 'jquery-ui' );
323
- wp_enqueue_script( 'jquery-ui-core' );
324
- wp_enqueue_script( 'jquery-ui-dialog' );
325
- wp_enqueue_script( 'yith_how_to' );
326
- wp_enqueue_script( 'yith-plugin-fw-fields' );
327
- }
328
 
329
- if ( ( 'admin.php' == $pagenow && yith_plugin_fw_is_panel() ) || apply_filters( 'yit_plugin_panel_asset_loading', false ) ) {
330
- wp_enqueue_media();
331
- wp_enqueue_style( 'yit-plugin-style' );
332
- wp_enqueue_script( 'yit-plugin-panel' );
333
- }
334
 
335
- if ( 'admin.php' == $pagenow && strpos( get_current_screen()->id, 'yith_upgrade_premium_version' ) !== false ) {
336
- wp_enqueue_style( 'yit-upgrade-to-pro' );
337
- wp_enqueue_script( 'colorbox' );
338
- }
339
 
340
- }
 
 
 
 
 
 
 
 
 
 
341
 
342
- /**
343
- * Register Settings
344
- * Generate wp-admin settings pages by registering your settings and using a few callbacks to control the output
345
- *
346
- * @return void
347
- * @since 1.0
348
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
349
- */
350
- public function register_settings() {
351
- register_setting( 'yit_' . $this->settings[ 'parent' ] . '_options', 'yit_' . $this->settings[ 'parent' ] . '_options', array( $this, 'options_validate' ) );
352
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
353
 
354
- /**
355
- * Options Validate
356
- * a callback function called by Register Settings function
357
- *
358
- * @param $input
359
- * @return array validate input fields
360
- * @since 1.0
361
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
362
- */
363
- public function options_validate( $input ) {
364
-
365
- $option_key = !empty( $input[ 'option_key' ] ) ? $input[ 'option_key' ] : 'general';
366
-
367
- $yit_options = $this->get_main_array_options();
368
-
369
- // default
370
- $valid_input = $this->get_options();
371
-
372
- $submit = ( !empty( $input[ 'submit-general' ] ) ? true : false );
373
- $reset = ( !empty( $input[ 'reset-general' ] ) ? true : false );
374
-
375
- foreach ( $yit_options[ $option_key ] as $section => $data ) {
376
- foreach ( $data as $option ) {
377
- if ( isset( $option[ 'sanitize_call' ] ) && isset( $option[ 'id' ] ) ) { //yiw_debug($option, false);
378
- if ( is_array( $option[ 'sanitize_call' ] ) ) :
379
- foreach ( $option[ 'sanitize_call' ] as $callback ) {
380
- if ( is_array( $input[ $option[ 'id' ] ] ) ) {
381
- $valid_input[ $option[ 'id' ] ] = array_map( $callback, $input[ $option[ 'id' ] ] );
382
- } else {
383
- $valid_input[ $option[ 'id' ] ] = call_user_func( $callback, $input[ $option[ 'id' ] ] );
384
- }
385
- }
386
- else :
387
- if ( is_array( $input[ $option[ 'id' ] ] ) ) {
388
- $valid_input[ $option[ 'id' ] ] = array_map( $option[ 'sanitize_call' ], $input[ $option[ 'id' ] ] );
389
- } else {
390
- $valid_input[ $option[ 'id' ] ] = call_user_func( $option[ 'sanitize_call' ], $input[ $option[ 'id' ] ] );
391
- }
392
- endif;
393
- } else {
394
- if ( isset( $option[ 'id' ] ) ) {
395
- $value = isset( $input[ $option[ 'id' ] ] ) ? $input[ $option[ 'id' ] ] : false;
396
- if ( isset( $option[ 'type' ] ) && in_array( $option[ 'type' ], array( 'checkbox', 'onoff' ) ) ) {
397
- $value = yith_plugin_fw_is_true( $value ) ? 'yes' : 'no';
398
- }
399
-
400
- if ( !empty( $option[ 'yith-sanitize-callback' ] ) && is_callable( $option[ 'yith-sanitize-callback' ] ) ) {
401
- $value = call_user_func( $option[ 'yith-sanitize-callback' ], $value );
402
- }
403
-
404
- $valid_input[ $option[ 'id' ] ] = $value;
405
- }
406
- }
407
-
408
- }
409
- }
410
 
411
- return $valid_input;
412
- }
413
 
414
- /**
415
- * Add Setting SubPage
416
- * add Setting SubPage to wordpress administrator
417
- *
418
- * @return array validate input fields
419
- * @since 1.0
420
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
421
- */
422
- public function add_setting_page() {
423
- $this->settings[ 'icon_url' ] = isset( $this->settings[ 'icon_url' ] ) ? $this->settings[ 'icon_url' ] : '';
424
- $this->settings[ 'position' ] = isset( $this->settings[ 'position' ] ) ? $this->settings[ 'position' ] : null;
425
- $parent = $this->settings[ 'parent_slug' ] . $this->settings[ 'parent_page' ];
426
-
427
- if ( !empty( $parent ) ) {
428
- add_submenu_page( $parent, $this->settings[ 'page_title' ], $this->settings[ 'menu_title' ], $this->settings[ 'capability' ], $this->settings[ 'page' ], array( $this, 'yit_panel' ) );
429
- } else {
430
- add_menu_page( $this->settings[ 'page_title' ], $this->settings[ 'menu_title' ], $this->settings[ 'capability' ], $this->settings[ 'page' ], array( $this, 'yit_panel' ), $this->settings[ 'icon_url' ], $this->settings[ 'position' ] );
431
- }
432
- /* === Duplicate Items Hack === */
433
- $this->remove_duplicate_submenu_page();
434
- do_action( 'yit_after_add_settings_page' );
435
 
436
 
437
- }
438
 
439
- /**
440
- * Add Premium Version upgrade menu item
441
- *
442
- * @return void
443
- * @since 2.9.13
444
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
445
- */
446
- public function add_premium_version_upgrade_to_menu() {
447
- /* === Add the How To menu item only if the customer haven't a premium version enabled === */
448
- if ( function_exists( 'YIT_Plugin_Licence' ) && !!YIT_Plugin_Licence()->get_products() ) {
449
- return;
450
- }
451
 
452
- global $submenu;
453
- if ( apply_filters( 'yit_show_upgrade_to_premium_version', isset( $submenu[ 'yith_plugin_panel' ] ) ) ) {
454
- $submenu[ 'yith_plugin_panel' ][ 'how_to' ] = array(
455
- sprintf( '%s%s%s', '<span id="yith-how-to-premium">', __( 'How to install premium version', 'yith-plugin-fw' ), '</span>' ),
456
- 'install_plugins',
457
- '//support.yithemes.com/hc/en-us/articles/217840988',
458
- __( 'How to install premium version', 'yith-plugin-fw' ),
459
- );
460
- }
461
- }
462
 
463
- /**
464
- * Print the tabs navigation
465
- *
466
- * @param array $args
467
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
468
- * @since 3.4.0
469
- */
470
- public function print_tabs_nav( $args = array() ) {
471
- $defaults = array(
472
- 'current_tab' => $this->get_current_tab(),
473
- 'premium_class' => isset( $this->settings[ 'class' ] ) ? 'yith-premium' : 'premium',
474
- 'page' => $this->settings[ 'page' ],
475
- 'parent_page' => $this->settings[ 'parent_page' ],
476
- 'wrapper_class' => 'nav-tab-wrapper'
477
- );
478
- $args = wp_parse_args( $args, $defaults );
479
- /**
480
- * @var string $current_tab
481
- * @var string $premium_class
482
- * @var string $page
483
- * @var string $parent_page
484
- * @var string $wrapper_class
485
- */
486
- extract( $args );
487
-
488
- $tabs = '';
489
-
490
- foreach ( $this->settings[ 'admin-tabs' ] as $tab => $tab_value ) {
491
- $active_class = ( $current_tab == $tab ) ? ' nav-tab-active' : '';
492
- $active_class .= 'premium' == $tab ? ' ' . $premium_class : '';
493
- $active_class = apply_filters( 'yith_plugin_fw_panel_active_tab_class', $active_class, $current_tab, $tab );
494
-
495
- $first_sub_tab = $this->get_first_sub_tab_key( $tab );
496
- $sub_tab = !!$first_sub_tab ? $first_sub_tab : '';
497
-
498
- $url = $this->get_nav_url( $page, $tab, $sub_tab, $parent_page );
499
-
500
- $tabs .= '<a class="nav-tab' . $active_class . '" href="' . $url . '">' . $tab_value . '</a>';
501
- }
502
- ?>
503
- <h2 class="<?php echo $wrapper_class ?>">
504
- <?php echo $tabs ?>
505
- </h2>
506
- <?php
507
- $this->print_sub_tabs_nav( $args );
508
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
509
 
510
- /**
511
- * @param string $page
512
- * @param string $tab
513
- * @param string $sub_tab
514
- * @param string $parent_page
515
- * @return string
516
- */
517
- public function get_nav_url( $page, $tab, $sub_tab = '', $parent_page = '' ) {
518
- $tab_hierarchy = $this->get_tabs_hierarchy();
519
- $key = !!$sub_tab ? $sub_tab : $tab;
520
-
521
- if ( isset( $tab_hierarchy[ $key ], $tab_hierarchy[ $key ][ 'type' ], $tab_hierarchy[ $key ][ 'post_type' ] ) && 'post_type' === $tab_hierarchy[ $key ][ 'type' ] ) {
522
- $url = admin_url( "edit.php?post_type={$tab_hierarchy[$key]['post_type']}" );
523
- } elseif ( isset( $tab_hierarchy[ $key ], $tab_hierarchy[ $key ][ 'type' ], $tab_hierarchy[ $key ][ 'taxonomy' ] ) && 'taxonomy' === $tab_hierarchy[ $key ][ 'type' ] ) {
524
- $url = admin_url( "edit-tags.php?taxonomy={$tab_hierarchy[$key]['taxonomy']}" );
525
- } else {
526
- $url = !!$parent_page ? "?{$parent_page}&" : '?';
527
- $url .= "page={$page}&tab={$tab}";
528
- $url .= !!$sub_tab ? "&sub_tab={$sub_tab}" : '';
529
- $url = admin_url( "admin.php{$url}" );
530
- }
531
 
532
- return apply_filters( 'yith_plugin_fw_panel_url', $url, $page, $tab, $sub_tab, $parent_page );
533
- }
534
 
535
- /**
536
- * Print the Sub-tabs navigation if the current tab has sub-tabs
537
- *
538
- * @param array $args
539
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
540
- * @since 3.4.0
541
- */
542
- public function print_sub_tabs_nav( $args = array() ) {
543
- $defaults = array(
544
- 'current_tab' => $this->get_current_tab(),
545
- 'page' => $this->settings[ 'page' ],
546
- 'current_sub_tab' => $this->get_current_sub_tab(),
547
- );
548
- $args = wp_parse_args( $args, $defaults );
549
-
550
- /**
551
- * @var string $current_tab
552
- * @var string $page
553
- * @var string $current_sub_tab
554
- */
555
- extract( $args );
556
-
557
- $sub_tabs = $this->get_sub_tabs( $current_tab );
558
-
559
- if ( $sub_tabs && $current_sub_tab ) {
560
- include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/sub-tabs-nav.php';
561
- }
562
- }
563
 
564
- /**
565
- * Show a tabbed panel to setting page
566
- * a callback function called by add_setting_page => add_submenu_page
567
- *
568
- * @return void
569
- * @since 1.0
570
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
571
- */
572
- public function yit_panel() {
573
- $yit_options = $this->get_main_array_options();
574
- $wrap_class = isset( $this->settings[ 'class' ] ) ? $this->settings[ 'class' ] : '';
575
-
576
- $option_key = $this->get_current_option_key();
577
- $custom_tab_action = $this->is_custom_tab( $yit_options, $option_key );
578
- ?>
579
- <div class="wrap <?php echo $wrap_class ?>">
580
- <div id="icon-themes" class="icon32"><br/></div>
581
- <?php
582
- do_action( 'yith_plugin_fw_before_yith_panel', $this->settings[ 'page' ] );
 
 
 
 
 
 
 
583
 
584
- $this->print_tabs_nav();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
585
 
586
- if ( $custom_tab_action ) {
587
- $this->print_custom_tab( $custom_tab_action );
588
- return;
589
- }
 
 
 
 
 
 
 
 
 
 
 
590
 
591
- $panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
592
- ?>
593
- <div id="wrap" class="yith-plugin-fw plugin-option yit-admin-panel-container">
594
- <?php $this->message(); ?>
595
- <div class="<?php echo $panel_content_class; ?>">
596
- <h2><?php echo $this->get_tab_title() ?></h2>
597
- <?php if ( $this->is_show_form() ) : ?>
598
- <form id="yith-plugin-fw-panel" method="post" action="options.php">
599
- <?php do_settings_sections( 'yit' ); ?>
600
- <p>&nbsp;</p>
601
- <?php settings_fields( 'yit_' . $this->settings[ 'parent' ] . '_options' ); ?>
602
- <input type="hidden" name="<?php echo $this->get_name_field( 'option_key' ) ?>" value="<?php echo esc_attr( $option_key ) ?>"/>
603
- <input type="submit" class="button-primary" value="<?php _e( 'Save Changes', 'yith-plugin-fw' ) ?>" style="float:left;margin-right:10px;"/>
604
- </form>
605
- <form method="post">
606
- <?php $warning = __( 'If you continue with this action, you will reset all options in this page.', 'yith-plugin-fw' ) ?>
607
- <input type="hidden" name="yit-action" value="reset"/>
608
- <input type="submit" name="yit-reset" class="button-secondary" value="<?php _e( 'Reset to default', 'yith-plugin-fw' ) ?>"
609
- onclick="return confirm('<?php echo $warning . '\n' . __( 'Are you sure?', 'yith-plugin-fw' ) ?>');"/>
610
- </form>
611
- <p>&nbsp;</p>
612
- <?php endif ?>
613
- </div>
614
- </div>
615
- </div>
616
- <?php
617
- }
618
 
619
- /**
620
- * Check if is a custom tab
621
- *
622
- * @param array $options
623
- * @param string $option_key
624
- * @return bool
625
- */
626
- public function is_custom_tab( $options, $option_key ) {
627
- foreach ( $options[ $option_key ] as $section => $option ) {
628
- if ( isset( $option[ 'type' ] ) && isset( $option[ 'action' ] ) && 'custom_tab' == $option[ 'type' ] && !empty( $option[ 'action' ] ) ) {
629
- return $option[ 'action' ];
630
- } else {
631
- return false;
632
- }
633
- }
634
 
635
- return false;
636
- }
 
 
 
 
 
 
 
637
 
638
- public function get_tab_type_by_options( $tab_options ) {
639
- $first = !!$tab_options && is_array( $tab_options ) ? current( $tab_options ) : array();
640
- $type = isset( $first[ 'type' ] ) ? $first[ 'type' ] : 'options';
641
- $special_types = array( 'post_type', 'taxonomy', 'custom_tab', 'multi_tab' );
642
- return in_array( $type, $special_types ) ? $type : 'options';
643
- }
644
 
645
- public function get_tab_info_by_options( $tab_options ) {
646
- $type = $this->get_tab_type_by_options( $tab_options );
647
- $info = array( 'type' => $type );
648
- $first = !!$tab_options && is_array( $tab_options ) ? current( $tab_options ) : array();
649
- if ( 'post_type' === $type ) {
650
- $info[ 'post_type' ] = isset( $first[ 'post_type' ] ) ? $first[ 'post_type' ] : '';
651
- } else if ( 'taxonomy' === $type ) {
652
- $info[ 'taxonomy' ] = isset( $first[ 'taxonomy' ] ) ? $first[ 'taxonomy' ] : '';
653
- }
 
 
 
654
 
655
- return $info;
656
- }
 
 
 
 
 
 
 
 
 
657
 
658
- /**
659
- * Fire the action to print the custom tab
660
- *
661
- * @param string $action Action to fire
662
- * @return void
663
- * @since 1.0
664
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
665
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
666
- */
667
- public function print_custom_tab( $action ) {
668
- do_action( $action );
669
- }
670
 
671
- /**
672
- * Add sections and fields to setting panel
673
- * read all options and show sections and fields
674
- *
675
- * @return void
676
- * @since 1.0
677
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
678
- */
679
- public function add_fields() {
680
- $yit_options = $this->get_main_array_options();
681
- $option_key = $this->get_current_option_key();
682
 
683
- if ( !$option_key ) {
684
- return;
685
- }
686
- foreach ( $yit_options[ $option_key ] as $section => $data ) {
687
- add_settings_section( "yit_settings_{$option_key}_{$section}", $this->get_section_title( $section ), $this->get_section_description( $section ), 'yit' );
688
- foreach ( $data as $option ) {
689
- if ( isset( $option[ 'id' ] ) && isset( $option[ 'type' ] ) && isset( $option[ 'name' ] ) ) {
690
- add_settings_field( "yit_setting_" . $option[ 'id' ], $option[ 'name' ], array( $this, 'render_field' ), 'yit', "yit_settings_{$option_key}_{$section}", array( 'option' => $option, 'label_for' => $this->get_id_field( $option[ 'id' ] ) ) );
691
- }
692
- }
693
- }
694
- }
695
 
 
696
 
697
- /**
698
- * Add the tabs to admin bar menu
699
- * set all tabs of settings page on wp admin bar
700
- *
701
- * @return void|array return void when capability is false
702
- * @since 1.0
703
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
704
- */
705
- public function add_admin_bar_menu() {
706
 
707
- global $wp_admin_bar;
 
708
 
709
- if ( !current_user_can( 'manage_options' ) ) {
710
- return;
711
- }
 
 
 
 
 
 
712
 
713
- if ( !empty( $this->settings[ 'admin_tabs' ] ) ) {
714
- foreach ( $this->settings[ 'admin-tabs' ] as $item => $title ) {
715
 
716
- $wp_admin_bar->add_menu( array(
717
- 'parent' => $this->settings[ 'parent' ],
718
- 'title' => $title,
719
- 'id' => $this->settings[ 'parent' ] . '-' . $item,
720
- 'href' => admin_url( 'themes.php' ) . '?page=' . $this->settings[ 'parent_page' ] . '&tab=' . $item
721
- ) );
722
- }
723
- }
724
- }
 
725
 
 
 
 
 
 
 
 
 
 
 
 
 
 
726
 
727
- /**
728
- * Get current tab
729
- * get the id of tab showed, return general is the current tab is not defined
730
- *
731
- * @return string
732
- * @since 1.0
733
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
734
- */
735
- function get_current_tab() {
736
- $admin_tabs = array_keys( $this->settings[ 'admin-tabs' ] );
737
 
738
- if ( !isset( $_GET[ 'page' ] ) || $_GET[ 'page' ] != $this->settings[ 'page' ] ) {
739
- return false;
740
- }
741
- if ( isset( $_REQUEST[ 'yit_tab_options' ] ) ) {
742
- return $_REQUEST[ 'yit_tab_options' ];
743
- } elseif ( isset( $_GET[ 'tab' ] ) ) {
744
- return $_GET[ 'tab' ];
745
- } elseif ( isset( $admin_tabs[ 0 ] ) ) {
746
- return $admin_tabs[ 0 ];
747
- } else {
748
- return 'general';
749
- }
750
- }
751
 
752
- /**
753
- * Get the current sub-tab
754
- *
755
- * @return string the key of the sub-tab if exists, empty string otherwise
756
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
757
- * @since 3.4.0
758
- */
759
- public function get_current_sub_tab() {
760
- $sub_tabs = $this->get_sub_tabs();
761
- $sub_tab = isset( $_REQUEST[ 'sub_tab' ] ) ? $_REQUEST[ 'sub_tab' ] : '';
762
-
763
- if ( $sub_tabs ) {
764
- if ( $sub_tab && !isset( $sub_tabs[ $sub_tab ] ) || !$sub_tab ) {
765
- $sub_tab = current( array_keys( $sub_tabs ) );
766
- }
767
- } else {
768
- $sub_tab = '';
769
- }
770
 
771
- return $sub_tab;
772
- }
 
 
 
 
 
 
 
 
 
 
773
 
774
- /**
775
- * Return the option key related to the current page
776
- * for sub-tabbed tabs, it will return the current sub-tab
777
- * fot normal tabs, it will return the current tab
778
- *
779
- * @return string the current sub-tab, if exists; the current tab otherwise
780
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
781
- * @since 3.4.0
782
- */
783
- public function get_current_option_key() {
784
- $current_tab = $this->get_current_tab();
785
- $current_sub_tab = $this->get_current_sub_tab();
786
 
787
- if ( !$current_tab ) {
788
- return false;
789
- }
790
 
791
- return $current_sub_tab ? $current_sub_tab : $current_tab;
792
- }
793
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
794
 
795
- /**
796
- * Message
797
- * define an array of message and show the content od message if
798
- * is find in the query string
799
- *
800
- * @return void
801
- * @since 1.0
802
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
803
- */
804
- public function message() {
805
-
806
- $message = array(
807
- 'element_exists' => $this->get_message( '<strong>' . __( 'The element you have entered already exists. Please, enter another name.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
808
- 'saved' => $this->get_message( '<strong>' . __( 'Settings saved', 'yith-plugin-fw' ) . '.</strong>', 'updated', false ),
809
- 'reset' => $this->get_message( '<strong>' . __( 'Settings reset', 'yith-plugin-fw' ) . '.</strong>', 'updated', false ),
810
- 'delete' => $this->get_message( '<strong>' . __( 'Element deleted correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
811
- 'updated' => $this->get_message( '<strong>' . __( 'Element updated correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
812
- 'settings-updated' => $this->get_message( '<strong>' . __( 'Element updated correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
813
- 'imported' => $this->get_message( '<strong>' . __( 'Database imported correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
814
- 'no-imported' => $this->get_message( '<strong>' . __( 'An error has occurred during import. Please try again.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
815
- 'file-not-valid' => $this->get_message( '<strong>' . __( 'The added file is not valid.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
816
- 'cant-import' => $this->get_message( '<strong>' . __( 'Sorry, import is disabled.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
817
- 'ord' => $this->get_message( '<strong>' . __( 'Sorting successful.', 'yith-plugin-fw' ) . '</strong>', 'updated', false )
818
- );
819
-
820
- foreach ( $message as $key => $value ) {
821
- if ( isset( $_GET[ $key ] ) ) {
822
- echo $message[ $key ];
823
- }
824
- }
825
 
826
- }
 
827
 
828
- /**
829
- * Get Message
830
- * return html code of message
831
- *
832
- * @param $message
833
- * @param string $type can be 'error' or 'updated'
834
- * @param bool $echo
835
- * @return string
836
- * @since 1.0
837
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
838
- */
839
- public function get_message( $message, $type = 'error', $echo = true ) {
840
- $message = '<div id="message" class="' . $type . ' fade"><p>' . $message . '</p></div>';
841
- if ( $echo ) {
842
- echo $message;
843
- }
844
 
845
- return $message;
846
- }
 
 
 
 
 
 
 
847
 
 
848
 
849
- /**
850
- * Get Tab Path Files
851
- * return an array with file names of tabs
852
- *
853
- * @return array
854
- * @since 1.0
855
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
856
- */
857
- function get_tabs_path_files() {
858
 
859
- $option_files_path = $this->settings[ 'options-path' ] . '/';
 
860
 
861
- $tabs = array();
 
 
862
 
863
- foreach ( ( array ) glob( $option_files_path . '*.php' ) as $filename ) {
864
- preg_match( '/(.*)-options\.(.*)/', basename( $filename ), $filename_parts );
865
 
866
- if ( !isset( $filename_parts[ 1 ] ) ) {
867
- continue;
868
- }
869
 
870
- $tab = $filename_parts[ 1 ];
 
871
 
872
- $tabs[ $tab ] = $filename;
873
- }
 
 
 
 
 
 
 
 
874
 
875
- return $tabs;
876
- }
877
 
878
- /**
879
- * Get main array options
880
- * return an array with all options defined on options-files
881
- *
882
- * @return array
883
- * @since 1.0
884
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
885
- */
886
- function get_main_array_options() {
887
- $this->_maybe_init_vars();
888
 
889
- return $this->_main_array_options;
890
- }
891
 
892
- function get_tabs_hierarchy() {
893
- $this->_maybe_init_vars();
 
 
 
 
 
 
 
 
 
 
894
 
895
- return $this->_tabs_hierarchy;
896
- }
 
 
 
 
 
897
 
898
- /**
899
- * Return the sub-tabs array of a specific tab
900
- *
901
- * @param array|bool $_tab the tab; if not set it'll be the current tab
902
- * @since 3.4.0
903
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
904
- * @return array sub-tabs array
905
- */
906
- public function get_sub_tabs( $_tab = false ) {
907
- if ( false === $_tab ) {
908
- $_tab = $this->get_current_tab();
909
- }
910
 
911
- if ( is_string( $_tab ) ) {
912
- $main_array_options = $this->get_main_array_options();
913
- $current_tab_options = isset( $main_array_options[ $_tab ] ) ? $main_array_options[ $_tab ] : array();
914
- if ( $current_tab_options ) {
915
- $_tab = array( $_tab => $current_tab_options );
916
- }
917
- }
 
 
918
 
919
- $_tab_options = !!$_tab && is_array( $_tab ) ? current( $_tab ) : false;
920
- $_first = !!$_tab_options && is_array( $_tab_options ) ? current( $_tab_options ) : false;
921
- if ( $_first && is_array( $_first ) && isset( $_first[ 'type' ] ) && 'multi_tab' === $_first[ 'type' ] && !empty( $_first[ 'sub-tabs' ] ) ) {
922
- return $_first[ 'sub-tabs' ];
923
- }
924
- return array();
925
- }
926
 
927
- public function get_first_sub_tab_key( $_tab = false ) {
928
- $key = false;
929
- if ( is_string( $_tab ) ) {
930
- $main_array_options = $this->get_main_array_options();
931
- $current_tab_options = isset( $main_array_options[ $_tab ] ) ? $main_array_options[ $_tab ] : array();
932
- if ( $current_tab_options ) {
933
- $_tab = array( $_tab => $current_tab_options );
934
- }
935
- }
936
 
937
- if ( ( $sub_tabs = $this->get_sub_tabs( $_tab ) ) ) {
938
- $key = current( array_keys( $sub_tabs ) );
939
- }
940
 
941
- return $key;
942
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
943
 
 
944
 
945
- /**
946
- * Set an array with all default options
947
- * put default options in an array
948
- *
949
- * @return array
950
- * @since 1.0
951
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
952
- */
953
- public function get_default_options() {
954
- $yit_options = $this->get_main_array_options();
955
- $default_options = array();
956
-
957
- foreach ( $yit_options as $tab => $sections ) {
958
- foreach ( $sections as $section ) {
959
- foreach ( $section as $id => $value ) {
960
- if ( isset( $value[ 'std' ] ) && isset( $value[ 'id' ] ) ) {
961
- $default_options[ $value[ 'id' ] ] = $value[ 'std' ];
962
- }
963
- }
964
- }
965
- }
966
 
967
- unset( $yit_options );
968
 
969
- return $default_options;
970
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
971
 
 
 
 
 
 
 
 
 
 
 
 
 
972
 
973
- /**
974
- * Get the title of the tab
975
- * return the title of tab
976
- *
977
- * @return string
978
- * @since 1.0
979
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
980
- */
981
- function get_tab_title() {
982
- $yit_options = $this->get_main_array_options();
983
- $option_key = $this->get_current_option_key();
984
-
985
- foreach ( $yit_options[ $option_key ] as $sections => $data ) {
986
- foreach ( $data as $option ) {
987
- if ( isset( $option[ 'type' ] ) && $option[ 'type' ] == 'title' ) {
988
- return $option[ 'name' ];
989
- }
990
- }
991
- }
992
- return '';
993
- }
994
 
995
- /**
996
- * Get the title of the section
997
- * return the title of section
998
- *
999
- * @param $section
1000
- * @return string
1001
- * @since 1.0
1002
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1003
- */
1004
- function get_section_title( $section ) {
1005
- $yit_options = $this->get_main_array_options();
1006
- $option_key = $this->get_current_option_key();
1007
-
1008
- foreach ( $yit_options[ $option_key ][ $section ] as $option ) {
1009
- if ( isset( $option[ 'type' ] ) && $option[ 'type' ] == 'section' ) {
1010
- return $option[ 'name' ];
1011
- }
1012
- }
1013
- return '';
1014
- }
1015
 
1016
- /**
1017
- * Get the description of the section
1018
- * return the description of section if is set
1019
- *
1020
- * @param $section
1021
- * @return string
1022
- * @since 1.0
1023
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1024
- */
1025
- function get_section_description( $section ) {
1026
- $yit_options = $this->get_main_array_options();
1027
- $option_key = $this->get_current_option_key();
1028
-
1029
- foreach ( $yit_options[ $option_key ][ $section ] as $option ) {
1030
- if ( isset( $option[ 'type' ] ) && $option[ 'type' ] == 'section' && isset( $option[ 'desc' ] ) ) {
1031
- return '<p>' . $option[ 'desc' ] . '</p>';
1032
- }
1033
- }
1034
- return '';
1035
- }
1036
 
1037
 
1038
- /**
1039
- * Show form when necessary
1040
- * return true if 'showform' is not defined
1041
- *
1042
- * @return bool
1043
- * @since 1.0
1044
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1045
- */
1046
- function is_show_form() {
1047
- $yit_options = $this->get_main_array_options();
1048
- $option_key = $this->get_current_option_key();
1049
-
1050
- foreach ( $yit_options[ $option_key ] as $sections => $data ) {
1051
- foreach ( $data as $option ) {
1052
- if ( !isset( $option[ 'type' ] ) || $option[ 'type' ] != 'title' ) {
1053
- continue;
1054
- }
1055
- if ( isset( $option[ 'showform' ] ) ) {
1056
- return $option[ 'showform' ];
1057
- } else {
1058
- return true;
1059
- }
1060
- }
1061
- }
1062
- }
1063
 
1064
- /**
1065
- * Get name field
1066
- * return a string with the name of the input field
1067
- *
1068
- * @param string $name
1069
- * @return string
1070
- * @since 1.0
1071
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1072
- */
1073
- function get_name_field( $name = '' ) {
1074
- return 'yit_' . $this->settings[ 'parent' ] . '_options[' . $name . ']';
1075
- }
1076
 
1077
- /**
1078
- * Get id field
1079
- * return a string with the id of the input field
1080
- *
1081
- * @param string $id
1082
- * @return string
1083
- * @since 1.0
1084
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1085
- */
1086
- function get_id_field( $id ) {
1087
- return 'yit_' . $this->settings[ 'parent' ] . '_options_' . $id;
1088
- }
1089
 
1090
 
1091
- /**
1092
- * Render the field showed in the setting page
1093
- * include the file of the option type, if file do not exists
1094
- * return a text area
1095
- *
1096
- * @param array $param
1097
- * @return void
1098
- * @since 1.0
1099
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1100
- */
1101
- function render_field( $param ) {
1102
 
1103
- if ( !empty( $param ) && isset( $param [ 'option' ] ) ) {
1104
- $option = $param [ 'option' ];
1105
- $db_options = $this->get_options();
1106
 
1107
- $custom_attributes = array();
1108
 
1109
- if ( !empty( $option[ 'custom_attributes' ] ) && is_array( $option[ 'custom_attributes' ] ) ) {
1110
- foreach ( $option[ 'custom_attributes' ] as $attribute => $attribute_value ) {
1111
- $custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
1112
- }
1113
- }
1114
 
1115
- $custom_attributes = implode( ' ', $custom_attributes );
1116
- $std = isset( $option[ 'std' ] ) ? $option[ 'std' ] : '';
1117
- $db_value = ( isset( $db_options[ $option[ 'id' ] ] ) ) ? $db_options[ $option[ 'id' ] ] : $std;
1118
 
1119
- if ( isset( $option[ 'deps' ] ) )
1120
- $deps = $option[ 'deps' ];
1121
 
1122
- if ( 'on-off' === $option[ 'type' ] )
1123
- $option[ 'type' ] = 'onoff';
1124
 
1125
- if ( $field_template_path = yith_plugin_fw_get_field_template_path( $option ) ) {
1126
- $field_container_path = apply_filters( 'yith_plugin_fw_panel_field_container_template_path', YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/panel-field-container.php', $option );
1127
- file_exists( $field_container_path ) && include( $field_container_path );
1128
- } else {
1129
- do_action( "yit_panel_{$option['type']}", $option, $db_value, $custom_attributes );
1130
- }
1131
- }
1132
- }
1133
 
1134
- /**
1135
- * Get options from db
1136
- * return the options from db, if the options aren't defined in the db,
1137
- * get the default options ad add the options in the db
1138
- *
1139
- * @return array
1140
- * @since 1.0
1141
- * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1142
- */
1143
- public function get_options() {
1144
- $options = get_option( 'yit_' . $this->settings[ 'parent' ] . '_options' );
1145
- if ( $options === false || ( isset( $_REQUEST[ 'yit-action' ] ) && $_REQUEST[ 'yit-action' ] == 'reset' ) ) {
1146
- $options = $this->get_default_options();
1147
- }
1148
 
1149
- return $options;
1150
- }
1151
 
1152
- /**
1153
- * Show a box panel with specific content in two columns as a new woocommerce type
1154
- *
1155
- * @param array $args
1156
- * @return void
1157
- * @since 1.0
1158
- * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
1159
- */
1160
- public static function add_infobox( $args = array() ) {
1161
- if ( !empty( $args ) ) {
1162
- extract( $args );
1163
- require_once( YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/boxinfo.php' );
1164
- }
1165
- }
1166
 
1167
- /**
1168
- * Show a box panel with specific content in two columns as a new woocommerce type
1169
- *
1170
- * @param array $args
1171
- * @return void
1172
- * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
1173
- */
1174
- public static function add_videobox( $args = array() ) {
1175
 
1176
- }
1177
 
1178
- /**
1179
- * Fire the action to print the custom tab
1180
- *
1181
- * @return void
1182
- * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
1183
- */
1184
- public function print_video_box() {
1185
 
1186
- }
1187
 
1188
- /**
1189
- * sort plugins by name in YITH Plugins menu
1190
- *
1191
- * @since 3.0.0
1192
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
1193
- */
1194
- public static function sort_plugins() {
1195
- global $submenu;
1196
- if ( !empty( $submenu[ 'yith_plugin_panel' ] ) ) {
1197
- $sorted_plugins = $submenu[ 'yith_plugin_panel' ];
1198
 
1199
- usort( $sorted_plugins, function ( $a, $b ) {
1200
- return strcmp( current( $a ), current( $b ) );
1201
- } );
1202
 
1203
- $submenu[ 'yith_plugin_panel' ] = $sorted_plugins;
1204
- }
1205
- }
1206
 
1207
- /**
1208
- * add menu class in YITH Plugins menu
1209
- *
1210
- * @since 3.0.0
1211
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
1212
- */
1213
- public static function add_menu_class_in_yith_plugin( $menu ) {
1214
- global $submenu;
1215
-
1216
- if ( !empty( $submenu[ 'yith_plugin_panel' ] ) ) {
1217
- $item_count = count( $submenu[ 'yith_plugin_panel' ] );
1218
- $columns = absint( $item_count / 20 ) + 1;
1219
- $columns = max( 1, min( $columns, 3 ) );
1220
- $columns = apply_filters( 'yith_plugin_fw_yith_plugins_menu_columns', $columns, $item_count );
1221
-
1222
- if ( $columns > 1 ) {
1223
- $class = "yith-plugin-fw-menu-$columns-columns";
1224
- foreach ( $menu as $order => $top ) {
1225
- if ( 'yith_plugin_panel' === $top[ 2 ] ) {
1226
- $c = $menu[ $order ][ 4 ];
1227
- $menu[ $order ][ 4 ] = add_cssclass( $class, $c );
1228
- break;
1229
- }
1230
- }
1231
- }
1232
- }
1233
 
1234
- return $menu;
1235
- }
1236
 
1237
- /**
1238
- * Check if inside the admin tab there's the premium tab to
1239
- * check if the plugin is a free or not
1240
- *
1241
- * @author Emanuela Castorina
1242
- */
1243
- function is_free() {
1244
- return ( !empty( $this->settings[ 'admin-tabs' ] ) && isset( $this->settings[ 'admin-tabs' ][ 'premium' ] ) );
1245
- }
1246
 
1247
- /**
1248
- * Add plugin banner
1249
- */
1250
- public function add_plugin_banner( $page ) {
1251
 
1252
- if ( $page != $this->settings[ 'page' ] || !isset( $this->settings[ 'class' ] ) ) {
1253
- return;
1254
- }
1255
 
1256
- if ( $this->is_free() && isset( $this->settings[ 'plugin_slug' ] ) ):
1257
- $rate_link = apply_filters( 'yith_plugin_fw_rate_url', 'https://wordpress.org/support/plugin/' . $this->settings[ 'plugin_slug' ] . '/reviews/?rate=5#new-post' );
1258
- ?>
1259
- <h1 class="notice-container"></h1>
1260
- <div class="yith-plugin-fw-banner">
1261
- <h1><?php echo esc_html( $this->settings[ 'page_title' ] ) ?></h1>
1262
- </div>
1263
- <div class="yith-plugin-fw-rate">
1264
- <?php printf('<strong>%s</strong> %s <a href="%s" target="_blank"><u>%s</u> <span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span></a> %s',
1265
- __('We need your support','yith-plugin-fw'),
1266
- __('to keep updating and improving the plugin. Please,','yith-plugin-fw'),
1267
- $rate_link,
1268
- __('help us by leaving a five-star rating','yith-plugin-fw' ),
1269
- __(':) Thanks!','yith-plugin-fw' ) )?>
1270
- </div>
1271
- <?php else: ?>
1272
- <h1 class="notice-container"></h1>
1273
- <div class="yith-plugin-fw-banner">
1274
- <h1><?php echo esc_html( $this->settings[ 'page_title' ] ) ?></h1>
1275
- </div>
1276
- <?php endif ?>
1277
- <?php
1278
- }
1279
 
1280
- /**
1281
- * Add additional element after print the field.
1282
- *
1283
- * @since 3.2
1284
- * @author Emanuela Castorina
1285
- */
1286
- public function add_yith_ui( $field ) {
1287
- global $pagenow;
1288
 
1289
- $screen = function_exists('get_current_screen') ? get_current_screen() : false;
1290
 
1291
- if ( empty( $this->settings[ 'class' ] ) || !isset( $field[ 'type' ] ) ) {
1292
- return;
1293
- }
1294
- if ( 'admin.php' === $pagenow && $screen && strpos( $screen->id, $this->settings[ 'page' ] ) !== false ) {
1295
- switch ( $field[ 'type' ] ) {
1296
- case 'datepicker':
1297
- echo '<span class="yith-icon icon-calendar"></span>';
1298
- break;
1299
- default:
1300
- break;
1301
- }
1302
- }
1303
- }
1304
 
1305
 
1306
- public function get_post_type_tabs( $post_type ) {
1307
- $tabs = array();
1308
 
1309
- foreach ( $this->get_tabs_hierarchy() as $key => $info ) {
1310
- if ( isset( $info[ 'type' ], $info[ 'post_type' ] ) && 'post_type' === $info[ 'type' ] && $post_type === $info[ 'post_type' ] ) {
1311
- if ( !empty( $info[ 'parent' ] ) ) {
1312
- $tabs = array( 'tab' => $info[ 'parent' ], 'sub_tab' => $key );
1313
- } else {
1314
- $tabs = array( 'tab' => $key );
1315
- }
1316
- break;
1317
- }
1318
- }
1319
 
1320
  $panel_page = isset( $this->settings['page'] ) ? $this->settings['page'] : 'general';
1321
 
1322
  return apply_filters( "yith_plugin_fw_panel_{$panel_page}_get_post_type_tabs", $tabs, $post_type );
1323
- }
1324
 
1325
- public function get_taxonomy_tabs( $taxonomy ) {
1326
- $tabs = array();
1327
-
1328
- foreach ( $this->get_tabs_hierarchy() as $key => $info ) {
1329
- if ( isset( $info[ 'type' ], $info[ 'taxonomy' ] ) && 'taxonomy' === $info[ 'type' ] && $taxonomy === $info[ 'taxonomy' ] ) {
1330
- if ( !empty( $info[ 'parent' ] ) ) {
1331
- $tabs = array( 'tab' => $info[ 'parent' ], 'sub_tab' => $key );
1332
- } else {
1333
- $tabs = array( 'tab' => $key );
1334
- }
1335
- break;
1336
- }
1337
- }
1338
 
1339
  $panel_page = isset( $this->settings['page'] ) ? $this->settings['page'] : 'general';
1340
 
1341
  return apply_filters( "yith_plugin_fw_panel_{$panel_page}_get_taxonomy_tabs", $tabs, $taxonomy );
1342
- }
1343
 
1344
 
1345
- /**
1346
- * If the panel page is a WP Page, this will redirect you to the correct page
1347
- * useful when a Post Type (Taxonomy) is the first tab of your panel, so when you open your panel it'll open the Post Type (Taxonomy) list
1348
- *
1349
- * @since 3.4.0
1350
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
1351
- */
1352
- public function maybe_redirect_to_proper_wp_page() {
1353
- global $pagenow;
1354
  if ( 'admin.php' === $pagenow && isset( $_GET['page'] ) && $this->settings['page'] === $_GET['page'] &&
1355
- ! $this->is_custom_taxonomy_page() && ! $this->is_custom_post_type_page() && ! isset( $_REQUEST['yith-plugin-fw-panel-skip-redirect'] ) ) {
1356
  $url = $this->get_nav_url( $this->settings['page'], $this->get_current_tab(), $this->get_current_sub_tab() );
1357
  if ( strpos( $url, 'edit.php' ) !== false || strpos( $url, 'edit-tags.php' ) !== false ) {
1358
  wp_safe_redirect( add_query_arg( array( 'yith-plugin-fw-panel-skip-redirect' => 1 ), $url ) );
@@ -1371,6 +1387,8 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
1371
  public function print_panel_tabs_in_wp_pages() {
1372
  if ( self::$_panel_tabs_in_wp_pages ) {
1373
  wp_enqueue_style( 'yit-plugin-style' );
 
 
1374
  $wrap_class = isset( $this->settings[ 'class' ] ) ? $this->settings[ 'class' ] : '';
1375
 
1376
  ?>
@@ -1418,6 +1436,4 @@ if ( !class_exists( 'YIT_Plugin_Panel' ) ) {
1418
  return true;
1419
  }
1420
  }
1421
-
1422
-
1423
  }
7
  * http://www.gnu.org/licenses/gpl-3.0.txt
8
  */
9
 
10
+ if ( ! defined( 'ABSPATH' ) ) {
11
+ exit;
12
  } // Exit if accessed directly
13
 
14
+ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
15
+ /**
16
+ * YIT Plugin Panel
17
+ * Setting Page to Manage Plugins
18
+ *
19
+ * @class YIT_Plugin_Panel
20
+ * @package YITH
21
+ * @since 1.0
22
+ * @author Your Inspiration Themes
23
+ */
24
+ class YIT_Plugin_Panel {
25
 
26
+ /**
27
+ * @var string version of class
28
+ */
29
+ public $version = '1.0.0';
30
 
31
+ /**
32
+ * @var array a setting list of parameters
33
+ */
34
+ public $settings = array();
35
 
36
+ /**
37
+ * @var array
38
+ */
39
+ protected $_tabs_path_files;
40
 
41
+ /**
42
+ * @var array
43
+ */
44
+ protected $_main_array_options;
45
 
46
+ /**
47
+ * @var array
48
+ */
49
+ protected $_tabs_hierarchy;
50
 
51
+ /**
52
+ * @var array
53
+ */
54
+ protected static $_panel_tabs_in_wp_pages = array();
55
 
56
+ /**
57
+ * @var array
58
+ */
59
+ public $links;
60
 
61
+ /**
62
+ * @var bool
63
+ */
64
+ protected static $_actions_initialized = false;
65
 
66
+ /**
67
+ * Constructor
68
+ *
69
+ * @param array $args
70
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
71
+ * @since 1.0
72
+ */
73
+ public function __construct( $args = array() ) {
74
 
75
+ if ( ! empty( $args ) ) {
76
 
77
+ $default_args = array(
78
+ 'parent_slug' => 'edit.php?',
79
+ 'page_title' => __( 'Plugin Settings', 'yith-plugin-fw' ),
80
+ 'menu_title' => __( 'Settings', 'yith-plugin-fw' ),
81
+ 'capability' => 'manage_options',
82
+ 'icon_url' => '',
83
+ 'position' => null,
84
+ );
85
 
86
+ $args = apply_filters( 'yit_plugin_fw_panel_option_args', wp_parse_args( $args, $default_args ) );
87
+ if ( isset( $args['parent_page'] ) && 'yit_plugin_panel' === $args['parent_page'] )
88
+ $args['parent_page'] = 'yith_plugin_panel';
89
 
90
+ $this->settings = $args;
91
+ $this->_tabs_path_files = $this->get_tabs_path_files();
92
 
93
+ if ( isset( $this->settings['create_menu_page'] ) && $this->settings['create_menu_page'] ) {
94
+ $this->add_menu_page();
95
+ }
96
 
97
+ if ( ! empty( $this->settings['links'] ) ) {
98
+ $this->links = $this->settings['links'];
99
+ }
100
 
101
+ add_action( 'admin_init', array( $this, 'register_settings' ) );
102
+ add_action( 'admin_menu', array( $this, 'add_setting_page' ), 20 );
103
+ add_action( 'admin_menu', array( $this, 'add_premium_version_upgrade_to_menu' ), 100 );
104
+ add_action( 'admin_bar_menu', array( $this, 'add_admin_bar_menu' ), 100 );
105
+ add_action( 'admin_init', array( $this, 'add_fields' ) );
106
 
107
+ add_action( 'admin_enqueue_scripts', array( $this, 'init_wp_with_tabs' ), 11 );
108
  add_action( 'admin_init', array( $this, 'maybe_redirect_to_proper_wp_page' ) );
109
 
110
+ // init actions once to prevent multiple actions
111
+ static::_init_actions();
112
+ }
113
 
114
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
115
 
116
  //yith-plugin-ui
117
  add_action( 'yith_plugin_fw_before_yith_panel', array( $this, 'add_plugin_banner' ), 10, 1 );
118
  add_action( 'wp_ajax_yith_plugin_fw_save_toggle_element', array( $this, 'save_toggle_element_options' ) );
 
119
  }
120
 
121
  /**
130
  $excluded_post_types = array( 'product', 'page', 'post' );
131
 
132
  return in_array( $pagenow, array( 'post.php', 'post-new.php', 'edit.php' ), true ) &&
133
+ ! in_array( $post_type, $excluded_post_types, true );
134
  }
135
 
136
  /**
145
  $excluded_taxonomies = array( 'category', 'post_tag', 'product_cat', 'product_tag' );
146
 
147
  return in_array( $pagenow, array( 'edit-tags.php', 'term.php' ), true ) &&
148
+ ! in_array( $taxonomy, $excluded_taxonomies, true );
149
  }
150
 
151
+ /**
152
+ * Init actions to show YITH Panel tabs in WP Pages
153
+ *
154
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
155
+ * @since 3.4.0
156
+ */
157
+ public function init_wp_with_tabs() {
158
+ if ( ! current_user_can( $this->settings['capability'] ) ) {
159
+ return;
160
+ }
161
 
162
+ global $post_type, $taxonomy;
163
+ $tabs = false;
164
 
165
+ if ( $this->is_custom_post_type_page() ) {
166
+ $tabs = $this->get_post_type_tabs( $post_type );
167
+ } else if ( $this->is_custom_taxonomy_page() ) {
168
+ $tabs = $this->get_taxonomy_tabs( $taxonomy );
169
+ }
170
 
171
+ if ( $tabs ) {
172
+ // tabs_in_edit
173
+ $current_tab_args = array(
174
+ 'page' => $this->settings['page'],
175
+ 'current_tab' => isset( $tabs['tab'] ) ? $tabs['tab'] : '',
176
+ 'current_sub_tab' => isset( $tabs['sub_tab'] ) ? $tabs['sub_tab'] : '',
177
+ );
178
+
179
+ wp_enqueue_style( 'yit-plugin-style' );
180
+ wp_enqueue_style( 'yith-plugin-fw-fields' );
181
+ wp_enqueue_script( 'yith-plugin-fw-wp-pages' );
182
+
183
+ if ( ! self::$_panel_tabs_in_wp_pages ) {
184
+ self::$_panel_tabs_in_wp_pages = $current_tab_args;
185
+ add_action( 'all_admin_notices', array( $this, 'print_panel_tabs_in_wp_pages' ) );
186
+ add_action( 'admin_footer', array( $this, 'print_panel_tabs_in_wp_pages_end' ) );
187
+ add_filter( 'parent_file', array( $this, 'set_parent_file_to_handle_menu_for_wp_pages' ) );
188
+ add_filter( 'submenu_file', array( $this, 'set_submenu_file_to_handle_menu_for_wp_pages' ), 10, 2 );
189
+ }
190
+ }
191
+ }
192
 
193
+ /**
194
+ * Init actions once to prevent multiple actions
195
+ *
196
+ * @since 3.0.0
197
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
198
+ */
199
+ protected static function _init_actions() {
200
+ if ( ! static::$_actions_initialized ) {
201
+ add_filter( 'admin_body_class', array( __CLASS__, 'add_body_class' ) );
 
 
 
 
202
 
203
+ // sort plugins by name in YITH Plugins menu
204
+ add_action( 'admin_menu', array( __CLASS__, 'sort_plugins' ), 90 );
205
+ add_filter( 'add_menu_classes', array( __CLASS__, 'add_menu_class_in_yith_plugin' ) );
 
 
 
 
 
 
206
 
 
 
 
207
 
208
+ static::$_actions_initialized = true;
209
+ }
210
+ }
211
 
212
+ protected function _maybe_init_vars() {
213
+ if ( ! isset( $this->_main_array_options ) && ! isset( $this->_tabs_hierarchy ) ) {
214
+ $options_path = $this->settings['options-path'];
215
+ $this->_main_array_options = array();
216
+ $this->_tabs_hierarchy = array();
217
+
218
+ foreach ( $this->settings['admin-tabs'] as $item => $v ) {
219
+ $path = trailingslashit( $options_path ) . $item . '-options.php';
220
+ $path = apply_filters( 'yith_plugin_panel_item_options_path', $path, $options_path, $item, $this );
221
+ if ( file_exists( $path ) ) {
222
+ $_tab = include $path;
223
+ $this->_main_array_options = array_merge( $this->_main_array_options, $_tab );
224
+ $sub_tabs = $this->get_sub_tabs( $_tab );
225
+ $current_tab_key = array_keys( $_tab )[0];
226
+
227
+ $this->_tabs_hierarchy[ $current_tab_key ] = array_merge( array( 'parent' => '', 'has_sub_tabs' => ! ! $sub_tabs ), $this->get_tab_info_by_options( $_tab[ $current_tab_key ] ) );
228
+
229
+ foreach ( $sub_tabs as $sub_item => $sub_options ) {
230
+ if ( strpos( $sub_item, $item . '-' ) === 0 ) {
231
+ $sub_item = substr( $sub_item, strlen( $item ) + 1 );
232
+ }
233
+ $sub_tab_path = $options_path . '/' . $item . '/' . $sub_item . '-options.php';
234
+ $sub_tab_path = apply_filters( 'yith_plugin_panel_sub_tab_item_options_path', $sub_tab_path, $sub_tabs, $sub_item, $this );
235
+
236
+ if ( file_exists( $sub_tab_path ) ) {
237
+ $_sub_tab = include $sub_tab_path;
238
+ $this->_main_array_options = array_merge( $this->_main_array_options, $_sub_tab );
239
+
240
+ $current_sub_tab_key = array_keys( $_sub_tab )[0];
241
+ $this->_tabs_hierarchy[ $current_sub_tab_key ] = array_merge( array( 'parent' => $current_tab_key ), $this->get_tab_info_by_options( $_sub_tab[ $current_sub_tab_key ] ) );
242
+ }
243
+ }
244
+ }
245
+ }
246
+ }
247
+ }
248
 
249
+ /**
250
+ * Add yith-plugin-fw-panel in body classes in Panel pages
251
+ *
252
+ * @param $admin_body_classes
253
+ * @return string
254
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
255
+ * @since 3.0.0
256
+ */
257
+ public static function add_body_class( $admin_body_classes ) {
258
+ global $pagenow;
259
+ if ( ( 'admin.php' == $pagenow && strpos( get_current_screen()->id, 'yith-plugins_page' ) !== false ) )
260
+ $admin_body_classes = substr_count( $admin_body_classes, ' yith-plugin-fw-panel ' ) == 0 ? $admin_body_classes . ' yith-plugin-fw-panel ' : $admin_body_classes;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
261
 
262
+ return $admin_body_classes;
263
+ }
 
 
 
 
 
 
 
 
 
 
264
 
265
+ /**
266
+ * Add Menu page link
267
+ *
268
+ * @return void
269
+ * @since 1.0
270
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
271
+ */
272
+ public function add_menu_page() {
273
+ global $admin_page_hooks;
274
+
275
+ if ( ! isset( $admin_page_hooks['yith_plugin_panel'] ) ) {
276
+ $position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
277
+ $capability = apply_filters( 'yit_plugin_panel_menu_page_capability', 'manage_options' );
278
+ $show = apply_filters( 'yit_plugin_panel_menu_page_show', true );
279
+
280
+ // YITH text must not be translated
281
+ if ( ! ! $show ) {
282
+ add_menu_page( 'yith_plugin_panel', 'YITH', $capability, 'yith_plugin_panel', null, yith_plugin_fw_get_default_logo(), $position );
283
+ $admin_page_hooks['yith_plugin_panel'] = 'yith-plugins'; // prevent issues for backward compatibility
284
+ }
285
+ }
286
+ }
287
 
288
+ /**
289
+ * Remove duplicate submenu
290
+ * Submenu page hack: Remove the duplicate YIT Plugin link on subpages
291
+ *
292
+ * @return void
293
+ * @since 1.0
294
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
295
+ */
296
+ public function remove_duplicate_submenu_page() {
297
+ /* === Duplicate Items Hack === */
298
+ remove_submenu_page( 'yith_plugin_panel', 'yith_plugin_panel' );
299
+ }
 
 
 
 
 
 
 
 
 
 
300
 
301
+ /**
302
+ * Enqueue script and styles in admin side
303
+ * Add style and scripts to administrator
304
+ *
305
+ * @return void
306
+ * @since 1.0
307
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
308
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
309
+ */
310
+ public function admin_enqueue_scripts() {
311
+ global $pagenow;
312
+
313
+ // enqueue styles only in the current panel page
314
+ if ( 'admin.php' === $pagenow && strpos( get_current_screen()->id, $this->settings['page'] ) !== false || apply_filters( 'yit_plugin_panel_asset_loading', false ) ) {
315
+ wp_enqueue_media();
316
+
317
+ wp_enqueue_style( 'yith-plugin-fw-fields' );
318
+ wp_enqueue_style( 'yit-jquery-ui-style' );
319
+ wp_enqueue_style( 'raleway-font' );
320
+
321
+ wp_enqueue_script( 'jquery-ui' );
322
+ wp_enqueue_script( 'jquery-ui-core' );
323
+ wp_enqueue_script( 'jquery-ui-dialog' );
324
+ wp_enqueue_script( 'yith_how_to' );
325
+ wp_enqueue_script( 'yith-plugin-fw-fields' );
326
+ }
327
 
328
+ if ( ( 'admin.php' == $pagenow && yith_plugin_fw_is_panel() ) || apply_filters( 'yit_plugin_panel_asset_loading', false ) ) {
329
+ wp_enqueue_media();
330
+ wp_enqueue_style( 'yit-plugin-style' );
331
+ wp_enqueue_script( 'yit-plugin-panel' );
332
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
333
 
334
+ if ( 'admin.php' == $pagenow && strpos( get_current_screen()->id, 'yith_upgrade_premium_version' ) !== false ) {
335
+ wp_enqueue_style( 'yit-upgrade-to-pro' );
336
+ wp_enqueue_script( 'colorbox' );
337
+ }
 
338
 
339
+ }
 
 
 
340
 
341
+ /**
342
+ * Register Settings
343
+ * Generate wp-admin settings pages by registering your settings and using a few callbacks to control the output
344
+ *
345
+ * @return void
346
+ * @since 1.0
347
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
348
+ */
349
+ public function register_settings() {
350
+ register_setting( 'yit_' . $this->settings['parent'] . '_options', 'yit_' . $this->settings['parent'] . '_options', array( $this, 'options_validate' ) );
351
+ }
352
 
353
+ /**
354
+ * Options Validate
355
+ * a callback function called by Register Settings function
356
+ *
357
+ * @param $input
358
+ * @return array validate input fields
359
+ * @since 1.0
360
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
361
+ */
362
+ public function options_validate( $input ) {
363
+
364
+ $option_key = ! empty( $input['option_key'] ) ? $input['option_key'] : 'general';
365
+
366
+ $yit_options = $this->get_main_array_options();
367
+
368
+ // default
369
+ $valid_input = $this->get_options();
370
+
371
+ $submit = ( ! empty( $input['submit-general'] ) ? true : false );
372
+ $reset = ( ! empty( $input['reset-general'] ) ? true : false );
373
+
374
+ foreach ( $yit_options[ $option_key ] as $section => $data ) {
375
+ foreach ( $data as $option ) {
376
+ if ( isset( $option['sanitize_call'] ) && isset( $option['id'] ) ) { //yiw_debug($option, false);
377
+ if ( is_array( $option['sanitize_call'] ) ) :
378
+ foreach ( $option['sanitize_call'] as $callback ) {
379
+ if ( is_array( $input[ $option['id'] ] ) ) {
380
+ $valid_input[ $option['id'] ] = array_map( $callback, $input[ $option['id'] ] );
381
+ } else {
382
+ $valid_input[ $option['id'] ] = call_user_func( $callback, $input[ $option['id'] ] );
383
+ }
384
+ }
385
+ else :
386
+ if ( is_array( $input[ $option['id'] ] ) ) {
387
+ $valid_input[ $option['id'] ] = array_map( $option['sanitize_call'], $input[ $option['id'] ] );
388
+ } else {
389
+ $valid_input[ $option['id'] ] = call_user_func( $option['sanitize_call'], $input[ $option['id'] ] );
390
+ }
391
+ endif;
392
+ } else {
393
+ if ( isset( $option['id'] ) ) {
394
+ $value = isset( $input[ $option['id'] ] ) ? $input[ $option['id'] ] : false;
395
+ if ( isset( $option['type'] ) && in_array( $option['type'], array( 'checkbox', 'onoff' ) ) ) {
396
+ $value = yith_plugin_fw_is_true( $value ) ? 'yes' : 'no';
397
+ }
398
+
399
+ if ( ! empty( $option['yith-sanitize-callback'] ) && is_callable( $option['yith-sanitize-callback'] ) ) {
400
+ $value = call_user_func( $option['yith-sanitize-callback'], $value );
401
+ }
402
+
403
+ $valid_input[ $option['id'] ] = $value;
404
+ }
405
+ }
406
 
407
+ }
408
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
409
 
410
+ return $valid_input;
411
+ }
412
 
413
+ /**
414
+ * Add Setting SubPage
415
+ * add Setting SubPage to wordpress administrator
416
+ *
417
+ * @return array validate input fields
418
+ * @since 1.0
419
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
420
+ */
421
+ public function add_setting_page() {
422
+ $this->settings['icon_url'] = isset( $this->settings['icon_url'] ) ? $this->settings['icon_url'] : '';
423
+ $this->settings['position'] = isset( $this->settings['position'] ) ? $this->settings['position'] : null;
424
+ $parent = $this->settings['parent_slug'] . $this->settings['parent_page'];
425
+
426
+ if ( ! empty( $parent ) ) {
427
+ add_submenu_page( $parent, $this->settings['page_title'], $this->settings['menu_title'], $this->settings['capability'], $this->settings['page'], array( $this, 'yit_panel' ) );
428
+ } else {
429
+ add_menu_page( $this->settings['page_title'], $this->settings['menu_title'], $this->settings['capability'], $this->settings['page'], array( $this, 'yit_panel' ), $this->settings['icon_url'], $this->settings['position'] );
430
+ }
431
+ /* === Duplicate Items Hack === */
432
+ $this->remove_duplicate_submenu_page();
433
+ do_action( 'yit_after_add_settings_page' );
434
 
435
 
436
+ }
437
 
438
+ /**
439
+ * Add Premium Version upgrade menu item
440
+ *
441
+ * @return void
442
+ * @since 2.9.13
443
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
444
+ */
445
+ public function add_premium_version_upgrade_to_menu() {
446
+ /* === Add the How To menu item only if the customer haven't a premium version enabled === */
447
+ if ( function_exists( 'YIT_Plugin_Licence' ) && ! ! YIT_Plugin_Licence()->get_products() ) {
448
+ return;
449
+ }
450
 
451
+ global $submenu;
452
+ if ( apply_filters( 'yit_show_upgrade_to_premium_version', isset( $submenu['yith_plugin_panel'] ) ) ) {
453
+ $submenu['yith_plugin_panel']['how_to'] = array(
454
+ sprintf( '%s%s%s', '<span id="yith-how-to-premium">', __( 'How to install premium version', 'yith-plugin-fw' ), '</span>' ),
455
+ 'install_plugins',
456
+ '//support.yithemes.com/hc/en-us/articles/217840988',
457
+ __( 'How to install premium version', 'yith-plugin-fw' ),
458
+ );
459
+ }
460
+ }
461
 
462
+ /**
463
+ * Print the tabs navigation
464
+ *
465
+ * @param array $args
466
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
467
+ * @since 3.4.0
468
+ */
469
+ public function print_tabs_nav( $args = array() ) {
470
+ $defaults = array(
471
+ 'current_tab' => $this->get_current_tab(),
472
+ 'premium_class' => isset( $this->settings['class'] ) ? 'yith-premium' : 'premium',
473
+ 'page' => $this->settings['page'],
474
+ 'parent_page' => $this->settings['parent_page'],
475
+ 'wrapper_class' => 'nav-tab-wrapper',
476
+ );
477
+ $args = wp_parse_args( $args, $defaults );
478
+ /**
479
+ * @var string $current_tab
480
+ * @var string $premium_class
481
+ * @var string $page
482
+ * @var string $parent_page
483
+ * @var string $wrapper_class
484
+ */
485
+ extract( $args );
486
+
487
+ $tabs = '<ul class="yith-plugin-fw-tabs">';
488
+
489
+ foreach ( $this->settings['admin-tabs'] as $tab => $tab_value ) {
490
+ $active_class = ( $current_tab == $tab ) ? ' nav-tab-active' : '';
491
+ $active_class .= 'premium' == $tab ? ' ' . $premium_class : '';
492
+ $active_class = apply_filters( 'yith_plugin_fw_panel_active_tab_class', $active_class, $current_tab, $tab );
493
+
494
+ $first_sub_tab = $this->get_first_sub_tab_key( $tab );
495
+ $sub_tab = ! ! $first_sub_tab ? $first_sub_tab : '';
496
+ $sub_tabs = $this->get_sub_tabs( $tab );
497
+ $url = $this->get_nav_url( $page, $tab, $sub_tab, $parent_page );
498
+ $icon = ( $current_tab !== $tab && $sub_tabs ) ? '<i class="yith-icon yith-icon-arrow_down"></i>' : '';
499
+
500
+ $tabs .= '<li class="yith-plugin-fw-tab-element">';
501
+ $tabs .= '<a class="nav-tab' . $active_class . '" href="' . $url . '">' . $tab_value . $icon . '</a>';
502
+
503
+ if ( $current_tab !== $tab && $sub_tabs ) {
504
+ $tabs .= '<div class="nav-subtab-wrap"><ul class="nav-subtab">';
505
+ foreach ( $sub_tabs as $_key => $_tab ) {
506
+ $url = $this->get_nav_url( $page, $tab, $_key );
507
+ $tabs .= '<li class="nav-subtab-item"><a href="' . $url . '">' . $_tab['title'] . '</a></li>';
508
+ }
509
+ $tabs .= '</ul></div>';
510
+ }
511
+ $tabs .= '</li>';
512
+ }
513
+ $tabs .= '</ul>';
514
+ ?>
515
+ <h2 class="<?php echo $wrapper_class ?>">
516
+ <?php echo $tabs ?>
517
+ </h2>
518
+ <?php
519
+ $this->print_sub_tabs_nav( $args );
520
+ }
521
 
522
+ /**
523
+ * @param string $page
524
+ * @param string $tab
525
+ * @param string $sub_tab
526
+ * @param string $parent_page
527
+ * @return string
528
+ */
529
+ public function get_nav_url( $page, $tab, $sub_tab = '', $parent_page = '' ) {
530
+ $tab_hierarchy = $this->get_tabs_hierarchy();
531
+ $key = ! ! $sub_tab ? $sub_tab : $tab;
532
+
533
+ if ( isset( $tab_hierarchy[ $key ], $tab_hierarchy[ $key ]['type'], $tab_hierarchy[ $key ]['post_type'] ) && 'post_type' === $tab_hierarchy[ $key ]['type'] ) {
534
+ $url = admin_url( "edit.php?post_type={$tab_hierarchy[$key]['post_type']}" );
535
+ } elseif ( isset( $tab_hierarchy[ $key ], $tab_hierarchy[ $key ]['type'], $tab_hierarchy[ $key ]['taxonomy'] ) && 'taxonomy' === $tab_hierarchy[ $key ]['type'] ) {
536
+ $url = admin_url( "edit-tags.php?taxonomy={$tab_hierarchy[$key]['taxonomy']}" );
537
+ } else {
538
+ $url = ! ! $parent_page ? "?{$parent_page}&" : '?';
539
+ $url .= "page={$page}&tab={$tab}";
540
+ $url .= ! ! $sub_tab ? "&sub_tab={$sub_tab}" : '';
541
+ $url = admin_url( "admin.php{$url}" );
542
+ }
543
 
544
+ return apply_filters( 'yith_plugin_fw_panel_url', $url, $page, $tab, $sub_tab, $parent_page );
545
+ }
546
 
547
+ /**
548
+ * Print the Sub-tabs navigation if the current tab has sub-tabs
549
+ *
550
+ * @param array $args
551
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
552
+ * @since 3.4.0
553
+ */
554
+ public function print_sub_tabs_nav( $args = array() ) {
555
+ $defaults = array(
556
+ 'current_tab' => $this->get_current_tab(),
557
+ 'page' => $this->settings['page'],
558
+ 'current_sub_tab' => $this->get_current_sub_tab(),
559
+ );
560
+ $args = wp_parse_args( $args, $defaults );
561
+
562
+ /**
563
+ * @var string $current_tab
564
+ * @var string $page
565
+ * @var string $current_sub_tab
566
+ */
567
+ extract( $args );
568
+
569
+ $sub_tabs = $this->get_sub_tabs( $current_tab );
570
+
571
+ if ( $sub_tabs && $current_sub_tab ) {
572
+ include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/sub-tabs-nav.php';
573
+ }
574
+ }
575
 
576
+ /**
577
+ * Show a tabbed panel to setting page
578
+ * a callback function called by add_setting_page => add_submenu_page
579
+ *
580
+ * @return void
581
+ * @since 1.0
582
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
583
+ */
584
+ public function yit_panel() {
585
+ $yit_options = $this->get_main_array_options();
586
+ $wrap_class = isset( $this->settings['class'] ) ? $this->settings['class'] : '';
587
+
588
+ $option_key = $this->get_current_option_key();
589
+ $custom_tab_action = $this->is_custom_tab( $yit_options, $option_key );
590
+ ?>
591
+ <div class="wrap <?php echo $wrap_class ?>">
592
+ <div id="icon-themes" class="icon32"><br/></div>
593
+ <?php
594
+ do_action( 'yith_plugin_fw_before_yith_panel', $this->settings['page'] );
595
+
596
+ $this->print_tabs_nav();
597
+
598
+ if ( $custom_tab_action ) {
599
+ $this->print_custom_tab( $custom_tab_action );
600
+ return;
601
+ }
602
 
603
+ $panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admin-panel-content-wrap' );
604
+ ?>
605
+ <div id="wrap" class="yith-plugin-fw plugin-option yit-admin-panel-container">
606
+ <?php $this->message(); ?>
607
+ <div class="<?php echo $panel_content_class; ?>">
608
+ <h2><?php echo $this->get_tab_title() ?></h2>
609
+ <?php if ( $this->is_show_form() ) : ?>
610
+ <form id="yith-plugin-fw-panel" method="post" action="options.php">
611
+ <?php do_settings_sections( 'yit' ); ?>
612
+ <p>&nbsp;</p>
613
+ <?php settings_fields( 'yit_' . $this->settings['parent'] . '_options' ); ?>
614
+ <input type="hidden" name="<?php echo $this->get_name_field( 'option_key' ) ?>"
615
+ value="<?php echo esc_attr( $option_key ) ?>"/>
616
+ <input type="submit" class="button-primary"
617
+ value="<?php _e( 'Save Changes', 'yith-plugin-fw' ) ?>"
618
+ style="float:left;margin-right:10px;"/>
619
+ </form>
620
+ <form method="post">
621
+ <?php $warning = __( 'If you continue with this action, you will reset all options in this page.', 'yith-plugin-fw' ) ?>
622
+ <input type="hidden" name="yit-action" value="reset"/>
623
+ <input type="submit" name="yit-reset" class="button-secondary"
624
+ value="<?php _e( 'Reset to default', 'yith-plugin-fw' ) ?>"
625
+ onclick="return confirm('<?php echo $warning . '\n' . __( 'Are you sure?', 'yith-plugin-fw' ) ?>');"/>
626
+ </form>
627
+ <p>&nbsp;</p>
628
+ <?php endif ?>
629
+ </div>
630
+ </div>
631
+ </div>
632
+ <?php
633
+ }
634
 
635
+ /**
636
+ * Check if is a custom tab
637
+ *
638
+ * @param array $options
639
+ * @param string $option_key
640
+ * @return bool
641
+ */
642
+ public function is_custom_tab( $options, $option_key ) {
643
+ foreach ( $options[ $option_key ] as $section => $option ) {
644
+ if ( isset( $option['type'] ) && isset( $option['action'] ) && 'custom_tab' == $option['type'] && ! empty( $option['action'] ) ) {
645
+ return $option['action'];
646
+ } else {
647
+ return false;
648
+ }
649
+ }
650
 
651
+ return false;
652
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
653
 
654
+ public function get_tab_type_by_options( $tab_options ) {
655
+ $first = ! ! $tab_options && is_array( $tab_options ) ? current( $tab_options ) : array();
656
+ $type = isset( $first['type'] ) ? $first['type'] : 'options';
657
+ $special_types = array( 'post_type', 'taxonomy', 'custom_tab', 'multi_tab' );
658
+ return in_array( $type, $special_types ) ? $type : 'options';
659
+ }
 
 
 
 
 
 
 
 
 
660
 
661
+ public function get_tab_info_by_options( $tab_options ) {
662
+ $type = $this->get_tab_type_by_options( $tab_options );
663
+ $info = array( 'type' => $type );
664
+ $first = ! ! $tab_options && is_array( $tab_options ) ? current( $tab_options ) : array();
665
+ if ( 'post_type' === $type ) {
666
+ $info['post_type'] = isset( $first['post_type'] ) ? $first['post_type'] : '';
667
+ } else if ( 'taxonomy' === $type ) {
668
+ $info['taxonomy'] = isset( $first['taxonomy'] ) ? $first['taxonomy'] : '';
669
+ }
670
 
671
+ return $info;
672
+ }
 
 
 
 
673
 
674
+ /**
675
+ * Fire the action to print the custom tab
676
+ *
677
+ * @param string $action Action to fire
678
+ * @return void
679
+ * @since 1.0
680
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
681
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
682
+ */
683
+ public function print_custom_tab( $action ) {
684
+ do_action( $action );
685
+ }
686
 
687
+ /**
688
+ * Add sections and fields to setting panel
689
+ * read all options and show sections and fields
690
+ *
691
+ * @return void
692
+ * @since 1.0
693
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
694
+ */
695
+ public function add_fields() {
696
+ $yit_options = $this->get_main_array_options();
697
+ $option_key = $this->get_current_option_key();
698
 
699
+ if ( ! $option_key ) {
700
+ return;
701
+ }
702
+ foreach ( $yit_options[ $option_key ] as $section => $data ) {
703
+ add_settings_section( "yit_settings_{$option_key}_{$section}", $this->get_section_title( $section ), $this->get_section_description( $section ), 'yit' );
704
+ foreach ( $data as $option ) {
705
+ if ( isset( $option['id'] ) && isset( $option['type'] ) && isset( $option['name'] ) ) {
706
+ add_settings_field( "yit_setting_" . $option['id'], $option['name'], array( $this, 'render_field' ), 'yit', "yit_settings_{$option_key}_{$section}", array( 'option' => $option, 'label_for' => $this->get_id_field( $option['id'] ) ) );
707
+ }
708
+ }
709
+ }
710
+ }
711
 
 
 
 
 
 
 
 
 
 
 
 
712
 
713
+ /**
714
+ * Add the tabs to admin bar menu
715
+ * set all tabs of settings page on wp admin bar
716
+ *
717
+ * @return void|array return void when capability is false
718
+ * @since 1.0
719
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
720
+ */
721
+ public function add_admin_bar_menu() {
 
 
 
722
 
723
+ global $wp_admin_bar;
724
 
725
+ if ( ! current_user_can( 'manage_options' ) ) {
726
+ return;
727
+ }
 
 
 
 
 
 
728
 
729
+ if ( ! empty( $this->settings['admin_tabs'] ) ) {
730
+ foreach ( $this->settings['admin-tabs'] as $item => $title ) {
731
 
732
+ $wp_admin_bar->add_menu( array(
733
+ 'parent' => $this->settings['parent'],
734
+ 'title' => $title,
735
+ 'id' => $this->settings['parent'] . '-' . $item,
736
+ 'href' => admin_url( 'themes.php' ) . '?page=' . $this->settings['parent_page'] . '&tab=' . $item,
737
+ ) );
738
+ }
739
+ }
740
+ }
741
 
 
 
742
 
743
+ /**
744
+ * Get current tab
745
+ * get the id of tab showed, return general is the current tab is not defined
746
+ *
747
+ * @return string
748
+ * @since 1.0
749
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
750
+ */
751
+ function get_current_tab() {
752
+ $admin_tabs = array_keys( $this->settings['admin-tabs'] );
753
 
754
+ if ( ! isset( $_GET['page'] ) || $_GET['page'] != $this->settings['page'] ) {
755
+ return false;
756
+ }
757
+ if ( isset( $_REQUEST['yit_tab_options'] ) ) {
758
+ return $_REQUEST['yit_tab_options'];
759
+ } elseif ( isset( $_GET['tab'] ) ) {
760
+ return $_GET['tab'];
761
+ } elseif ( isset( $admin_tabs[0] ) ) {
762
+ return $admin_tabs[0];
763
+ } else {
764
+ return 'general';
765
+ }
766
+ }
767
 
768
+ /**
769
+ * Get the current sub-tab
770
+ *
771
+ * @return string the key of the sub-tab if exists, empty string otherwise
772
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
773
+ * @since 3.4.0
774
+ */
775
+ public function get_current_sub_tab() {
776
+ $sub_tabs = $this->get_sub_tabs();
777
+ $sub_tab = isset( $_REQUEST['sub_tab'] ) ? $_REQUEST['sub_tab'] : '';
778
 
779
+ if ( $sub_tabs ) {
780
+ if ( $sub_tab && ! isset( $sub_tabs[ $sub_tab ] ) || ! $sub_tab ) {
781
+ $sub_tab = current( array_keys( $sub_tabs ) );
782
+ }
783
+ } else {
784
+ $sub_tab = '';
785
+ }
 
 
 
 
 
 
786
 
787
+ return $sub_tab;
788
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
789
 
790
+ /**
791
+ * Return the option key related to the current page
792
+ * for sub-tabbed tabs, it will return the current sub-tab
793
+ * fot normal tabs, it will return the current tab
794
+ *
795
+ * @return string the current sub-tab, if exists; the current tab otherwise
796
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
797
+ * @since 3.4.0
798
+ */
799
+ public function get_current_option_key() {
800
+ $current_tab = $this->get_current_tab();
801
+ $current_sub_tab = $this->get_current_sub_tab();
802
 
803
+ if ( ! $current_tab ) {
804
+ return false;
805
+ }
 
 
 
 
 
 
 
 
 
806
 
807
+ return $current_sub_tab ? $current_sub_tab : $current_tab;
808
+ }
 
809
 
 
 
810
 
811
+ /**
812
+ * Message
813
+ * define an array of message and show the content od message if
814
+ * is find in the query string
815
+ *
816
+ * @return void
817
+ * @since 1.0
818
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
819
+ */
820
+ public function message() {
821
+
822
+ $message = array(
823
+ 'element_exists' => $this->get_message( '<strong>' . __( 'The element you have entered already exists. Please, enter another name.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
824
+ 'saved' => $this->get_message( '<strong>' . __( 'Settings saved', 'yith-plugin-fw' ) . '.</strong>', 'updated', false ),
825
+ 'reset' => $this->get_message( '<strong>' . __( 'Settings reset', 'yith-plugin-fw' ) . '.</strong>', 'updated', false ),
826
+ 'delete' => $this->get_message( '<strong>' . __( 'Element deleted correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
827
+ 'updated' => $this->get_message( '<strong>' . __( 'Element updated correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
828
+ 'settings-updated' => $this->get_message( '<strong>' . __( 'Element updated correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
829
+ 'imported' => $this->get_message( '<strong>' . __( 'Database imported correctly.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
830
+ 'no-imported' => $this->get_message( '<strong>' . __( 'An error has occurred during import. Please try again.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
831
+ 'file-not-valid' => $this->get_message( '<strong>' . __( 'The added file is not valid.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
832
+ 'cant-import' => $this->get_message( '<strong>' . __( 'Sorry, import is disabled.', 'yith-plugin-fw' ) . '</strong>', 'error', false ),
833
+ 'ord' => $this->get_message( '<strong>' . __( 'Sorting successful.', 'yith-plugin-fw' ) . '</strong>', 'updated', false ),
834
+ );
835
+
836
+ foreach ( $message as $key => $value ) {
837
+ if ( isset( $_GET[ $key ] ) ) {
838
+ echo $message[ $key ];
839
+ }
840
+ }
841
+
842
+ }
843
 
844
+ /**
845
+ * Get Message
846
+ * return html code of message
847
+ *
848
+ * @param $message
849
+ * @param string $type can be 'error' or 'updated'
850
+ * @param bool $echo
851
+ * @return string
852
+ * @since 1.0
853
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
854
+ */
855
+ public function get_message( $message, $type = 'error', $echo = true ) {
856
+ $message = '<div id="message" class="' . $type . ' fade"><p>' . $message . '</p></div>';
857
+ if ( $echo ) {
858
+ echo $message;
859
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
860
 
861
+ return $message;
862
+ }
863
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
864
 
865
+ /**
866
+ * Get Tab Path Files
867
+ * return an array with file names of tabs
868
+ *
869
+ * @return array
870
+ * @since 1.0
871
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
872
+ */
873
+ function get_tabs_path_files() {
874
 
875
+ $option_files_path = $this->settings['options-path'] . '/';
876
 
877
+ $tabs = array();
 
 
 
 
 
 
 
 
878
 
879
+ foreach ( ( array )glob( $option_files_path . '*.php' ) as $filename ) {
880
+ preg_match( '/(.*)-options\.(.*)/', basename( $filename ), $filename_parts );
881
 
882
+ if ( ! isset( $filename_parts[1] ) ) {
883
+ continue;
884
+ }
885
 
886
+ $tab = $filename_parts[1];
 
887
 
888
+ $tabs[ $tab ] = $filename;
889
+ }
 
890
 
891
+ return $tabs;
892
+ }
893
 
894
+ /**
895
+ * Get main array options
896
+ * return an array with all options defined on options-files
897
+ *
898
+ * @return array
899
+ * @since 1.0
900
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
901
+ */
902
+ function get_main_array_options() {
903
+ $this->_maybe_init_vars();
904
 
905
+ return $this->_main_array_options;
906
+ }
907
 
908
+ function get_tabs_hierarchy() {
909
+ $this->_maybe_init_vars();
 
 
 
 
 
 
 
 
910
 
911
+ return $this->_tabs_hierarchy;
912
+ }
913
 
914
+ /**
915
+ * Return the sub-tabs array of a specific tab
916
+ *
917
+ * @param array|bool $_tab the tab; if not set it'll be the current tab
918
+ * @since 3.4.0
919
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
920
+ * @return array sub-tabs array
921
+ */
922
+ public function get_sub_tabs( $_tab = false ) {
923
+ if ( false === $_tab ) {
924
+ $_tab = $this->get_current_tab();
925
+ }
926
 
927
+ if ( is_string( $_tab ) ) {
928
+ $main_array_options = $this->get_main_array_options();
929
+ $current_tab_options = isset( $main_array_options[ $_tab ] ) ? $main_array_options[ $_tab ] : array();
930
+ if ( $current_tab_options ) {
931
+ $_tab = array( $_tab => $current_tab_options );
932
+ }
933
+ }
934
 
935
+ $_tab_options = ! ! $_tab && is_array( $_tab ) ? current( $_tab ) : false;
936
+ $_first = ! ! $_tab_options && is_array( $_tab_options ) ? current( $_tab_options ) : false;
937
+ if ( $_first && is_array( $_first ) && isset( $_first['type'] ) && 'multi_tab' === $_first['type'] && ! empty( $_first['sub-tabs'] ) ) {
938
+ return $_first['sub-tabs'];
939
+ }
940
+ return array();
941
+ }
 
 
 
 
 
942
 
943
+ public function get_first_sub_tab_key( $_tab = false ) {
944
+ $key = false;
945
+ if ( is_string( $_tab ) ) {
946
+ $main_array_options = $this->get_main_array_options();
947
+ $current_tab_options = isset( $main_array_options[ $_tab ] ) ? $main_array_options[ $_tab ] : array();
948
+ if ( $current_tab_options ) {
949
+ $_tab = array( $_tab => $current_tab_options );
950
+ }
951
+ }
952
 
953
+ if ( ( $sub_tabs = $this->get_sub_tabs( $_tab ) ) ) {
954
+ $key = current( array_keys( $sub_tabs ) );
955
+ }
 
 
 
 
956
 
957
+ return $key;
958
+ }
 
 
 
 
 
 
 
959
 
 
 
 
960
 
961
+ /**
962
+ * Set an array with all default options
963
+ * put default options in an array
964
+ *
965
+ * @return array
966
+ * @since 1.0
967
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
968
+ */
969
+ public function get_default_options() {
970
+ $yit_options = $this->get_main_array_options();
971
+ $default_options = array();
972
+
973
+ foreach ( $yit_options as $tab => $sections ) {
974
+ foreach ( $sections as $section ) {
975
+ foreach ( $section as $id => $value ) {
976
+ if ( isset( $value['std'] ) && isset( $value['id'] ) ) {
977
+ $default_options[ $value['id'] ] = $value['std'];
978
+ }
979
+ }
980
+ }
981
+ }
982
 
983
+ unset( $yit_options );
984
 
985
+ return $default_options;
986
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
987
 
 
988
 
989
+ /**
990
+ * Get the title of the tab
991
+ * return the title of tab
992
+ *
993
+ * @return string
994
+ * @since 1.0
995
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
996
+ */
997
+ function get_tab_title() {
998
+ $yit_options = $this->get_main_array_options();
999
+ $option_key = $this->get_current_option_key();
1000
+
1001
+ foreach ( $yit_options[ $option_key ] as $sections => $data ) {
1002
+ foreach ( $data as $option ) {
1003
+ if ( isset( $option['type'] ) && $option['type'] == 'title' ) {
1004
+ return $option['name'];
1005
+ }
1006
+ }
1007
+ }
1008
+ return '';
1009
+ }
1010
 
1011
+ /**
1012
+ * Get the title of the section
1013
+ * return the title of section
1014
+ *
1015
+ * @param $section
1016
+ * @return string
1017
+ * @since 1.0
1018
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1019
+ */
1020
+ function get_section_title( $section ) {
1021
+ $yit_options = $this->get_main_array_options();
1022
+ $option_key = $this->get_current_option_key();
1023
 
1024
+ foreach ( $yit_options[ $option_key ][ $section ] as $option ) {
1025
+ if ( isset( $option['type'] ) && $option['type'] == 'section' ) {
1026
+ return $option['name'];
1027
+ }
1028
+ }
1029
+ return '';
1030
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1031
 
1032
+ /**
1033
+ * Get the description of the section
1034
+ * return the description of section if is set
1035
+ *
1036
+ * @param $section
1037
+ * @return string
1038
+ * @since 1.0
1039
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1040
+ */
1041
+ function get_section_description( $section ) {
1042
+ $yit_options = $this->get_main_array_options();
1043
+ $option_key = $this->get_current_option_key();
 
 
 
 
 
 
 
 
1044
 
1045
+ foreach ( $yit_options[ $option_key ][ $section ] as $option ) {
1046
+ if ( isset( $option['type'] ) && $option['type'] == 'section' && isset( $option['desc'] ) ) {
1047
+ return '<p>' . $option['desc'] . '</p>';
1048
+ }
1049
+ }
1050
+ return '';
1051
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
1052
 
1053
 
1054
+ /**
1055
+ * Show form when necessary
1056
+ * return true if 'showform' is not defined
1057
+ *
1058
+ * @return bool
1059
+ * @since 1.0
1060
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1061
+ */
1062
+ function is_show_form() {
1063
+ $yit_options = $this->get_main_array_options();
1064
+ $option_key = $this->get_current_option_key();
1065
+
1066
+ foreach ( $yit_options[ $option_key ] as $sections => $data ) {
1067
+ foreach ( $data as $option ) {
1068
+ if ( ! isset( $option['type'] ) || $option['type'] != 'title' ) {
1069
+ continue;
1070
+ }
1071
+ if ( isset( $option['showform'] ) ) {
1072
+ return $option['showform'];
1073
+ } else {
1074
+ return true;
1075
+ }
1076
+ }
1077
+ }
1078
+ }
1079
 
1080
+ /**
1081
+ * Get name field
1082
+ * return a string with the name of the input field
1083
+ *
1084
+ * @param string $name
1085
+ * @return string
1086
+ * @since 1.0
1087
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1088
+ */
1089
+ function get_name_field( $name = '' ) {
1090
+ return 'yit_' . $this->settings['parent'] . '_options[' . $name . ']';
1091
+ }
1092
 
1093
+ /**
1094
+ * Get id field
1095
+ * return a string with the id of the input field
1096
+ *
1097
+ * @param string $id
1098
+ * @return string
1099
+ * @since 1.0
1100
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1101
+ */
1102
+ function get_id_field( $id ) {
1103
+ return 'yit_' . $this->settings['parent'] . '_options_' . $id;
1104
+ }
1105
 
1106
 
1107
+ /**
1108
+ * Render the field showed in the setting page
1109
+ * include the file of the option type, if file do not exists
1110
+ * return a text area
1111
+ *
1112
+ * @param array $param
1113
+ * @return void
1114
+ * @since 1.0
1115
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1116
+ */
1117
+ function render_field( $param ) {
1118
 
1119
+ if ( ! empty( $param ) && isset( $param ['option'] ) ) {
1120
+ $option = $param ['option'];
1121
+ $db_options = $this->get_options();
1122
 
1123
+ $custom_attributes = array();
1124
 
1125
+ if ( ! empty( $option['custom_attributes'] ) && is_array( $option['custom_attributes'] ) ) {
1126
+ foreach ( $option['custom_attributes'] as $attribute => $attribute_value ) {
1127
+ $custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
1128
+ }
1129
+ }
1130
 
1131
+ $custom_attributes = implode( ' ', $custom_attributes );
1132
+ $std = isset( $option['std'] ) ? $option['std'] : '';
1133
+ $db_value = ( isset( $db_options[ $option['id'] ] ) ) ? $db_options[ $option['id'] ] : $std;
1134
 
1135
+ if ( isset( $option['deps'] ) )
1136
+ $deps = $option['deps'];
1137
 
1138
+ if ( 'on-off' === $option['type'] )
1139
+ $option['type'] = 'onoff';
1140
 
1141
+ if ( $field_template_path = yith_plugin_fw_get_field_template_path( $option ) ) {
1142
+ $field_container_path = apply_filters( 'yith_plugin_fw_panel_field_container_template_path', YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/panel-field-container.php', $option );
1143
+ file_exists( $field_container_path ) && include( $field_container_path );
1144
+ } else {
1145
+ do_action( "yit_panel_{$option['type']}", $option, $db_value, $custom_attributes );
1146
+ }
1147
+ }
1148
+ }
1149
 
1150
+ /**
1151
+ * Get options from db
1152
+ * return the options from db, if the options aren't defined in the db,
1153
+ * get the default options ad add the options in the db
1154
+ *
1155
+ * @return array
1156
+ * @since 1.0
1157
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
1158
+ */
1159
+ public function get_options() {
1160
+ $options = get_option( 'yit_' . $this->settings['parent'] . '_options' );
1161
+ if ( $options === false || ( isset( $_REQUEST['yit-action'] ) && $_REQUEST['yit-action'] == 'reset' ) ) {
1162
+ $options = $this->get_default_options();
1163
+ }
1164
 
1165
+ return $options;
1166
+ }
1167
 
1168
+ /**
1169
+ * Show a box panel with specific content in two columns as a new woocommerce type
1170
+ *
1171
+ * @param array $args
1172
+ * @return void
1173
+ * @since 1.0
1174
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
1175
+ */
1176
+ public static function add_infobox( $args = array() ) {
1177
+ if ( ! empty( $args ) ) {
1178
+ extract( $args );
1179
+ require_once( YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/boxinfo.php' );
1180
+ }
1181
+ }
1182
 
1183
+ /**
1184
+ * Show a box panel with specific content in two columns as a new woocommerce type
1185
+ *
1186
+ * @param array $args
1187
+ * @return void
1188
+ * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
1189
+ */
1190
+ public static function add_videobox( $args = array() ) {
1191
 
1192
+ }
1193
 
1194
+ /**
1195
+ * Fire the action to print the custom tab
1196
+ *
1197
+ * @return void
1198
+ * @deprecated 3.0.12 Do nothing! Method left to prevent Fatal Error if called directly
1199
+ */
1200
+ public function print_video_box() {
1201
 
1202
+ }
1203
 
1204
+ /**
1205
+ * sort plugins by name in YITH Plugins menu
1206
+ *
1207
+ * @since 3.0.0
1208
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
1209
+ */
1210
+ public static function sort_plugins() {
1211
+ global $submenu;
1212
+ if ( ! empty( $submenu['yith_plugin_panel'] ) ) {
1213
+ $sorted_plugins = $submenu['yith_plugin_panel'];
1214
 
1215
+ usort( $sorted_plugins, function ( $a, $b ) {
1216
+ return strcmp( current( $a ), current( $b ) );
1217
+ } );
1218
 
1219
+ $submenu['yith_plugin_panel'] = $sorted_plugins;
1220
+ }
1221
+ }
1222
 
1223
+ /**
1224
+ * add menu class in YITH Plugins menu
1225
+ *
1226
+ * @since 3.0.0
1227
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
1228
+ */
1229
+ public static function add_menu_class_in_yith_plugin( $menu ) {
1230
+ global $submenu;
1231
+
1232
+ if ( ! empty( $submenu['yith_plugin_panel'] ) ) {
1233
+ $item_count = count( $submenu['yith_plugin_panel'] );
1234
+ $columns = absint( $item_count / 20 ) + 1;
1235
+ $columns = max( 1, min( $columns, 3 ) );
1236
+ $columns = apply_filters( 'yith_plugin_fw_yith_plugins_menu_columns', $columns, $item_count );
1237
+
1238
+ if ( $columns > 1 ) {
1239
+ $class = "yith-plugin-fw-menu-$columns-columns";
1240
+ foreach ( $menu as $order => $top ) {
1241
+ if ( 'yith_plugin_panel' === $top[2] ) {
1242
+ $c = $menu[ $order ][4];
1243
+ $menu[ $order ][4] = add_cssclass( $class, $c );
1244
+ break;
1245
+ }
1246
+ }
1247
+ }
1248
+ }
1249
 
1250
+ return $menu;
1251
+ }
1252
 
1253
+ /**
1254
+ * Check if inside the admin tab there's the premium tab to
1255
+ * check if the plugin is a free or not
1256
+ *
1257
+ * @author Emanuela Castorina
1258
+ */
1259
+ function is_free() {
1260
+ return ( ! empty( $this->settings['admin-tabs'] ) && isset( $this->settings['admin-tabs']['premium'] ) );
1261
+ }
1262
 
1263
+ /**
1264
+ * Add plugin banner
1265
+ */
1266
+ public function add_plugin_banner( $page ) {
1267
 
1268
+ if ( $page != $this->settings['page'] || ! isset( $this->settings['class'] ) ) {
1269
+ return;
1270
+ }
1271
 
1272
+ if ( $this->is_free() && isset( $this->settings['plugin_slug'] ) ):
1273
+ $rate_link = apply_filters( 'yith_plugin_fw_rate_url', 'https://wordpress.org/support/plugin/' . $this->settings['plugin_slug'] . '/reviews/?rate=5#new-post' );
1274
+ ?>
1275
+ <h1 class="notice-container"></h1>
1276
+ <div class="yith-plugin-fw-banner">
1277
+ <h1><?php echo esc_html( $this->settings['page_title'] ) ?></h1>
1278
+ </div>
1279
+ <div class="yith-plugin-fw-rate">
1280
+ <?php printf( '<strong>%s</strong> %s <a href="%s" target="_blank"><u>%s</u> <span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span></a> %s',
1281
+ __( 'We need your support', 'yith-plugin-fw' ),
1282
+ __( 'to keep updating and improving the plugin. Please,', 'yith-plugin-fw' ),
1283
+ $rate_link,
1284
+ __( 'help us by leaving a five-star rating', 'yith-plugin-fw' ),
1285
+ __( ':) Thanks!', 'yith-plugin-fw' ) ) ?>
1286
+ </div>
1287
+ <?php else: ?>
1288
+ <h1 class="notice-container"></h1>
1289
+ <div class="yith-plugin-fw-banner">
1290
+ <h1><?php echo esc_html( $this->settings['page_title'] ) ?></h1>
1291
+ </div>
1292
+ <?php endif ?>
1293
+ <?php
1294
+ }
1295
 
1296
+ /**
1297
+ * Add additional element after print the field.
1298
+ *
1299
+ * @since 3.2
1300
+ * @author Emanuela Castorina
1301
+ */
1302
+ public function add_yith_ui( $field ) {
1303
+ global $pagenow;
1304
 
1305
+ $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : false;
1306
 
1307
+ if ( empty( $this->settings['class'] ) || ! isset( $field['type'] ) ) {
1308
+ return;
1309
+ }
1310
+ if ( 'admin.php' === $pagenow && $screen && strpos( $screen->id, $this->settings['page'] ) !== false ) {
1311
+ switch ( $field['type'] ) {
1312
+ case 'datepicker':
1313
+ echo '<span class="yith-icon yith-icon-calendar"></span>';
1314
+ break;
1315
+ default:
1316
+ break;
1317
+ }
1318
+ }
1319
+ }
1320
 
1321
 
1322
+ public function get_post_type_tabs( $post_type ) {
1323
+ $tabs = array();
1324
 
1325
+ foreach ( $this->get_tabs_hierarchy() as $key => $info ) {
1326
+ if ( isset( $info['type'], $info['post_type'] ) && 'post_type' === $info['type'] && $post_type === $info['post_type'] ) {
1327
+ if ( ! empty( $info['parent'] ) ) {
1328
+ $tabs = array( 'tab' => $info['parent'], 'sub_tab' => $key );
1329
+ } else {
1330
+ $tabs = array( 'tab' => $key );
1331
+ }
1332
+ break;
1333
+ }
1334
+ }
1335
 
1336
  $panel_page = isset( $this->settings['page'] ) ? $this->settings['page'] : 'general';
1337
 
1338
  return apply_filters( "yith_plugin_fw_panel_{$panel_page}_get_post_type_tabs", $tabs, $post_type );
1339
+ }
1340
 
1341
+ public function get_taxonomy_tabs( $taxonomy ) {
1342
+ $tabs = array();
1343
+
1344
+ foreach ( $this->get_tabs_hierarchy() as $key => $info ) {
1345
+ if ( isset( $info['type'], $info['taxonomy'] ) && 'taxonomy' === $info['type'] && $taxonomy === $info['taxonomy'] ) {
1346
+ if ( ! empty( $info['parent'] ) ) {
1347
+ $tabs = array( 'tab' => $info['parent'], 'sub_tab' => $key );
1348
+ } else {
1349
+ $tabs = array( 'tab' => $key );
1350
+ }
1351
+ break;
1352
+ }
1353
+ }
1354
 
1355
  $panel_page = isset( $this->settings['page'] ) ? $this->settings['page'] : 'general';
1356
 
1357
  return apply_filters( "yith_plugin_fw_panel_{$panel_page}_get_taxonomy_tabs", $tabs, $taxonomy );
1358
+ }
1359
 
1360
 
1361
+ /**
1362
+ * If the panel page is a WP Page, this will redirect you to the correct page
1363
+ * useful when a Post Type (Taxonomy) is the first tab of your panel, so when you open your panel it'll open the Post Type (Taxonomy) list
1364
+ *
1365
+ * @since 3.4.0
1366
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
1367
+ */
1368
+ public function maybe_redirect_to_proper_wp_page() {
1369
+ global $pagenow;
1370
  if ( 'admin.php' === $pagenow && isset( $_GET['page'] ) && $this->settings['page'] === $_GET['page'] &&
1371
+ ! $this->is_custom_taxonomy_page() && ! $this->is_custom_post_type_page() && ! isset( $_REQUEST['yith-plugin-fw-panel-skip-redirect'] ) ) {
1372
  $url = $this->get_nav_url( $this->settings['page'], $this->get_current_tab(), $this->get_current_sub_tab() );
1373
  if ( strpos( $url, 'edit.php' ) !== false || strpos( $url, 'edit-tags.php' ) !== false ) {
1374
  wp_safe_redirect( add_query_arg( array( 'yith-plugin-fw-panel-skip-redirect' => 1 ), $url ) );
1387
  public function print_panel_tabs_in_wp_pages() {
1388
  if ( self::$_panel_tabs_in_wp_pages ) {
1389
  wp_enqueue_style( 'yit-plugin-style' );
1390
+ wp_enqueue_script( 'yit-plugin-panel' );
1391
+
1392
  $wrap_class = isset( $this->settings[ 'class' ] ) ? $this->settings[ 'class' ] : '';
1393
 
1394
  ?>
1436
  return true;
1437
  }
1438
  }
 
 
1439
  }
plugin-fw/lib/yith-system-status.php CHANGED
@@ -13,6 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
13
  } // Exit if accessed directly
14
 
15
  if ( ! class_exists( 'YITH_System_Status' ) ) {
 
16
  /**
17
  * YITH System Status Panel
18
  *
@@ -38,13 +39,18 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
38
  /**
39
  * @var array requirements labels
40
  */
41
- protected $_requirement_labels = array();
 
 
 
 
 
42
 
43
  /**
44
  * Single instance of the class
45
  *
46
  * @since 1.0.0
47
- * @var \YITH_System_Status
48
  */
49
  protected static $_instance = null;
50
 
@@ -102,19 +108,19 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
102
  public function set_requirements_labels() {
103
 
104
  $this->_requirement_labels = array(
105
- 'min_wp_version' => __( 'WordPress Version', 'yith-plugin-fw' ),
106
- 'min_wc_version' => __( 'WooCommerce Version', 'yith-plugin-fw' ),
107
- 'wp_memory_limit' => __( 'Available Memory', 'yith-plugin-fw' ),
108
- 'min_php_version' => __( 'PHP Version', 'yith-plugin-fw' ),
109
- 'min_tls_version' => __( 'TLS Version', 'yith-plugin-fw' ),
110
- 'wp_cron_enabled' => __( 'WordPress Cron', 'yith-plugin-fw' ),
111
- 'simplexml_enabled' => __( 'SimpleXML', 'yith-plugin-fw' ),
112
- 'mbstring_enabled' => __( 'MultiByte String', 'yith-plugin-fw' ),
113
- 'imagick_version' => __( 'ImageMagick Version', 'yith-plugin-fw' ),
114
- 'gd_enabled' => __( 'GD Library', 'yith-plugin-fw' ),
115
- 'iconv_enabled' => __( 'Iconv Module', 'yith-plugin-fw' ),
116
- 'opcache_enabled' => __( 'OPCache Save Comments', 'yith-plugin-fw' ),
117
- 'url_fopen_enabled' => __( 'URL FOpen', 'yith-plugin-fw' ),
118
  );
119
 
120
  }
@@ -129,11 +135,11 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
129
  public function add_submenu_page() {
130
 
131
  $system_info = get_option( 'yith_system_info', array() );
132
- $error_notice = ( isset( $system_info['errors'] ) && $system_info['errors'] === true ? ' <span class="yith-system-info-menu update-plugins">!</span>' : '' );
133
  $settings = array(
134
  'parent_page' => 'yith_plugin_panel',
135
- 'page_title' => __( 'System Status', 'yith-plugin-fw' ),
136
- 'menu_title' => __( 'System Status', 'yith-plugin-fw' ) . $error_notice,
137
  'capability' => 'manage_options',
138
  'page' => $this->_page,
139
  );
@@ -157,8 +163,7 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
157
  */
158
  public function show_information_panel() {
159
 
160
- $path = defined( 'YIT_CORE_PLUGIN_PATH' ) ? YIT_CORE_PLUGIN_PATH : get_template_directory() . '/core/plugin-fw/';
161
- $labels = $this->_requirement_labels;
162
 
163
  require_once( $path . '/templates/sysinfo/system-information-panel.php' );
164
 
@@ -173,15 +178,26 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
173
  */
174
  public function check_system_status() {
175
 
176
-
177
- if ( '' == get_option( 'yith_system_info' ) || ( isset( $_GET['page'] ) && $_GET['page'] == $this->_page ) ) {
178
-
179
- $this->add_requirements( __( 'YITH Plugins', 'yith-plugin-fw' ), array( 'min_wp_version' => '4.9', 'min_wc_version' => '3.4', 'min_php_version' => '5.6.20' ) );
180
- $this->add_requirements( __( 'WooCommerce', 'yith-plugin-fw' ), array( 'wp_memory_limit' => '64M' ) );
 
 
 
 
 
 
 
 
 
 
 
181
 
182
  $system_info = $this->get_system_info();
183
  $check_results = array();
184
- $errors = false;
185
 
186
  foreach ( $system_info as $key => $value ) {
187
  $check_results[ $key ] = array( 'value' => $value );
@@ -191,44 +207,61 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
191
  foreach ( $this->_plugins_requirements[ $key ] as $plugin_name => $required_value ) {
192
 
193
  switch ( $key ) {
194
- case 'wp_cron_enabled' :
195
- case 'mbstring_enabled' :
196
  case 'simplexml_enabled':
197
  case 'gd_enabled':
198
  case 'iconv_enabled':
199
  case 'url_fopen_enabled':
200
- case 'opcache_enabled' :
201
-
202
  if ( ! $value ) {
203
  $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
204
- $errors = true;
205
  }
206
  break;
207
 
208
- case 'wp_memory_limit' :
209
  $required_memory = $this->memory_size_to_num( $required_value );
210
 
211
  if ( $required_memory > $value ) {
212
  $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
213
- $errors = true;
 
 
 
214
  }
215
  break;
216
 
217
  default:
218
- if ( ! version_compare( $value, $required_value, '>=' ) && $value != 'n/a' ) {
219
- $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
220
- $errors = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
221
  }
222
-
223
  }
224
-
225
  }
226
-
227
  }
228
-
229
  }
230
 
231
- update_option( 'yith_system_info', array( 'system_info' => $check_results, 'errors' => $errors ) );
 
 
 
 
 
 
232
 
233
  }
234
 
@@ -251,7 +284,7 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
251
 
252
  foreach ( $requirements as $requirement => $value ) {
253
 
254
- if ( in_array( $requirement, $allowed_requirements ) ) {
255
  $this->_plugins_requirements[ $requirement ][ $plugin_name ] = $value;
256
  }
257
  }
@@ -267,8 +300,7 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
267
  */
268
  public function dismissable_notice() {
269
  $script_path = defined( 'YIT_CORE_PLUGIN_URL' ) ? YIT_CORE_PLUGIN_URL : get_template_directory_uri() . '/core/plugin-fw';
270
- $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
271
- wp_register_script( 'yith-system-info', $script_path . '/assets/js/yith-system-info' . $suffix . '.js', array( 'jquery' ), '1.0.0', true );
272
  }
273
 
274
  /**
@@ -282,25 +314,31 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
282
 
283
  $system_info = get_option( 'yith_system_info', '' );
284
 
285
- if ( ( isset( $_GET['page'] ) && $_GET['page'] == $this->_page ) || ( ! empty( $_COOKIE['hide_yith_system_alert'] ) && 'yes' == $_COOKIE['hide_yith_system_alert'] ) || ( $system_info == '' ) || ( $system_info != '' && $system_info['errors'] === false ) ) {
286
  return;
287
  }
288
 
289
  $show_notice = true;
290
 
291
- if ( true === $show_notice ) :
292
  wp_enqueue_script( 'yith-system-info' );
293
  ?>
294
- <div id="yith-system-alert" class="notice notice-error is-dismissible" style="position: relative;">
295
- <p>
296
- <span class="yith-logo"><img src="<?php echo yith_plugin_fw_get_default_logo() ?>" /></span>
297
- <b><?php echo __( 'Warning!', 'yith-plugin-fw' ) ?></b><br />
298
- <?php echo sprintf( __( 'The system check has detected some compatibility issues on your installation. %sClick here%s to know more', 'yith-plugin-fw' ), '<a href="' . esc_url( add_query_arg( array( 'page' => $this->_page ), admin_url( 'admin.php' ) ) ) . '">', '</a>' ) ?>
299
- </p>
300
- <span class="notice-dismiss"></span>
301
-
302
- </div>
303
- <?php endif;
 
 
 
 
 
 
304
  }
305
 
306
  /**
@@ -312,7 +350,8 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
312
  */
313
  public function get_system_info() {
314
 
315
- $tls = $imagick_version = 'n/a';
 
316
 
317
  if ( function_exists( 'curl_init' ) && apply_filters( 'yith_system_status_check_ssl', true ) ) {
318
  //Get TLS version
@@ -324,44 +363,70 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
324
  $data = curl_exec( $ch );
325
  curl_close( $ch );
326
  $json = json_decode( $data );
327
- $tls = $json != null ? str_replace( 'TLS ', '', $json->tls_version ) : '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
328
  }
329
 
330
  //Get PHP version
331
- preg_match( "#^\d+(\.\d+)*#", PHP_VERSION, $match );
332
  $php_version = $match[0];
333
 
334
  // WP memory limit.
335
  $wp_memory_limit = $this->memory_size_to_num( WP_MEMORY_LIMIT );
336
  if ( function_exists( 'memory_get_usage' ) ) {
337
- $wp_memory_limit = max( $wp_memory_limit, $this->memory_size_to_num( @ini_get( 'memory_limit' ) ) );
338
  }
339
 
340
  if ( class_exists( 'Imagick' ) && is_callable( array( 'Imagick', 'getVersion' ) ) ) {
341
- preg_match( "/([0-9]+\.[0-9]+\.[0-9]+)/", Imagick::getVersion()['versionString'], $imatch );
342
  $imagick_version = $imatch[0];
343
  }
344
 
345
- return apply_filters( 'yith_system_additional_check', array(
346
- 'min_wp_version' => get_bloginfo( 'version' ),
347
- 'min_wc_version' => function_exists( 'WC' ) ? WC()->version : 'n/a',
348
- 'wp_memory_limit' => $wp_memory_limit,
349
- 'min_php_version' => $php_version,
350
- 'min_tls_version' => $tls,
351
- 'imagick_version' => $imagick_version,
352
- 'wp_cron_enabled' => ! ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ),
353
- 'mbstring_enabled' => extension_loaded( 'mbstring' ),
354
- 'simplexml_enabled' => extension_loaded( 'simplexml' ),
355
- 'gd_enabled' => extension_loaded( 'gd' ) && function_exists( 'gd_info' ),
356
- 'iconv_enabled' => extension_loaded( 'iconv' ),
357
- 'opcache_enabled' => ini_get( 'opcache.save_comments' ),
358
- 'url_fopen_enabled' => ini_get( 'allow_url_fopen' ),
359
- ) );
 
 
 
360
 
361
  }
362
 
363
  /**
364
- * Convert site into number
365
  *
366
  * @param $memory_size string
367
  *
@@ -391,6 +456,149 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
391
  return $size;
392
  }
393
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
394
  }
395
  }
396
 
@@ -402,7 +610,7 @@ if ( ! class_exists( 'YITH_System_Status' ) ) {
402
  * @author Alberto Ruggiero
403
  */
404
  if ( ! function_exists( 'YITH_System_Status' ) ) {
405
- function YITH_System_Status() {
406
  return YITH_System_Status::instance();
407
  }
408
  }
13
  } // Exit if accessed directly
14
 
15
  if ( ! class_exists( 'YITH_System_Status' ) ) {
16
+
17
  /**
18
  * YITH System Status Panel
19
  *
39
  /**
40
  * @var array requirements labels
41
  */
42
+ public $_requirement_labels = array();
43
+
44
+ /**
45
+ * @var int recommended memory amount 134217728 = 128M
46
+ */
47
+ private $_recommended_memory = 134217728;
48
 
49
  /**
50
  * Single instance of the class
51
  *
52
  * @since 1.0.0
53
+ * @var YITH_System_Status
54
  */
55
  protected static $_instance = null;
56
 
108
  public function set_requirements_labels() {
109
 
110
  $this->_requirement_labels = array(
111
+ 'min_wp_version' => esc_html__( 'WordPress Version', 'yith-plugin-fw' ),
112
+ 'min_wc_version' => esc_html__( 'WooCommerce Version', 'yith-plugin-fw' ),
113
+ 'wp_memory_limit' => esc_html__( 'Available Memory', 'yith-plugin-fw' ),
114
+ 'min_php_version' => esc_html__( 'PHP Version', 'yith-plugin-fw' ),
115
+ 'min_tls_version' => esc_html__( 'TLS Version', 'yith-plugin-fw' ),
116
+ 'wp_cron_enabled' => esc_html__( 'WordPress Cron', 'yith-plugin-fw' ),
117
+ 'simplexml_enabled' => esc_html__( 'SimpleXML', 'yith-plugin-fw' ),
118
+ 'mbstring_enabled' => esc_html__( 'MultiByte String', 'yith-plugin-fw' ),
119
+ 'imagick_version' => esc_html__( 'ImageMagick Version', 'yith-plugin-fw' ),
120
+ 'gd_enabled' => esc_html__( 'GD Library', 'yith-plugin-fw' ),
121
+ 'iconv_enabled' => esc_html__( 'Iconv Module', 'yith-plugin-fw' ),
122
+ 'opcache_enabled' => esc_html__( 'OPCache Save Comments', 'yith-plugin-fw' ),
123
+ 'url_fopen_enabled' => esc_html__( 'URL FOpen', 'yith-plugin-fw' ),
124
  );
125
 
126
  }
135
  public function add_submenu_page() {
136
 
137
  $system_info = get_option( 'yith_system_info', array() );
138
+ $error_notice = ( isset( $system_info['errors'] ) && true === $system_info['errors'] ? ' <span class="yith-system-info-menu update-plugins">!</span>' : '' );
139
  $settings = array(
140
  'parent_page' => 'yith_plugin_panel',
141
+ 'page_title' => esc_html__( 'System Status', 'yith-plugin-fw' ),
142
+ 'menu_title' => esc_html__( 'System Status', 'yith-plugin-fw' ) . $error_notice,
143
  'capability' => 'manage_options',
144
  'page' => $this->_page,
145
  );
163
  */
164
  public function show_information_panel() {
165
 
166
+ $path = defined( 'YIT_CORE_PLUGIN_PATH' ) ? YIT_CORE_PLUGIN_PATH : get_template_directory() . '/core/plugin-fw/';
 
167
 
168
  require_once( $path . '/templates/sysinfo/system-information-panel.php' );
169
 
178
  */
179
  public function check_system_status() {
180
 
181
+ if ( '' === get_option( 'yith_system_info' ) || ( isset( $_GET['page'] ) && $_GET['page'] === $this->_page ) ) {
182
+
183
+ $this->add_requirements(
184
+ esc_html__( 'YITH Plugins', 'yith-plugin-fw' ),
185
+ array(
186
+ 'min_wp_version' => '4.9',
187
+ 'min_wc_version' => '3.4',
188
+ 'min_php_version' => '5.6.20',
189
+ )
190
+ );
191
+ $this->add_requirements(
192
+ esc_html__( 'WooCommerce', 'yith-plugin-fw' ),
193
+ array(
194
+ 'wp_memory_limit' => '64M',
195
+ )
196
+ );
197
 
198
  $system_info = $this->get_system_info();
199
  $check_results = array();
200
+ $errors = 0;
201
 
202
  foreach ( $system_info as $key => $value ) {
203
  $check_results[ $key ] = array( 'value' => $value );
207
  foreach ( $this->_plugins_requirements[ $key ] as $plugin_name => $required_value ) {
208
 
209
  switch ( $key ) {
210
+ case 'wp_cron_enabled':
211
+ case 'mbstring_enabled':
212
  case 'simplexml_enabled':
213
  case 'gd_enabled':
214
  case 'iconv_enabled':
215
  case 'url_fopen_enabled':
216
+ case 'opcache_enabled':
 
217
  if ( ! $value ) {
218
  $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
219
+ $errors ++;
220
  }
221
  break;
222
 
223
+ case 'wp_memory_limit':
224
  $required_memory = $this->memory_size_to_num( $required_value );
225
 
226
  if ( $required_memory > $value ) {
227
  $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
228
+ $errors ++;
229
+
230
+ } elseif ( $this->_recommended_memory > $value && $value > $required_value ) {
231
+ $check_results[ $key ]['warnings'] = 'yes';
232
  }
233
  break;
234
 
235
  default:
236
+ if ( 'imagick_version' === $key ) {
237
+ if ( ! version_compare( $value, $required_value, '>=' ) ) {
238
+ $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
239
+ $errors ++;
240
+ }
241
+ } else {
242
+ if ( 'n/a' !== $value ) {
243
+ if ( ! version_compare( $value, $required_value, '>=' ) ) {
244
+ $check_results[ $key ]['errors'][ $plugin_name ] = $required_value;
245
+ $errors ++;
246
+ }
247
+ } else {
248
+ if ( 'min_wc_version' !== $key ) {
249
+ $check_results[ $key ]['warnings'][ $plugin_name ] = $required_value;
250
+ }
251
+ }
252
  }
 
253
  }
 
254
  }
 
255
  }
 
256
  }
257
 
258
+ update_option(
259
+ 'yith_system_info',
260
+ array(
261
+ 'system_info' => $check_results,
262
+ 'errors' => $errors > 0,
263
+ )
264
+ );
265
 
266
  }
267
 
284
 
285
  foreach ( $requirements as $requirement => $value ) {
286
 
287
+ if ( in_array( $requirement, $allowed_requirements, true ) ) {
288
  $this->_plugins_requirements[ $requirement ][ $plugin_name ] = $value;
289
  }
290
  }
300
  */
301
  public function dismissable_notice() {
302
  $script_path = defined( 'YIT_CORE_PLUGIN_URL' ) ? YIT_CORE_PLUGIN_URL : get_template_directory_uri() . '/core/plugin-fw';
303
+ wp_register_script( 'yith-system-info', yit_load_js_file( $script_path . '/assets/js/yith-system-info.js' ), array( 'jquery' ), '1.0.0', true );
 
304
  }
305
 
306
  /**
314
 
315
  $system_info = get_option( 'yith_system_info', '' );
316
 
317
+ if ( ( isset( $_GET['page'] ) && $_GET['page'] === $this->_page ) || ( ! empty( $_COOKIE['hide_yith_system_alert'] ) && 'yes' === $_COOKIE['hide_yith_system_alert'] ) || ( '' === $system_info ) || ( '' !== $system_info && false === $system_info['errors'] ) ) {
318
  return;
319
  }
320
 
321
  $show_notice = true;
322
 
323
+ if ( true === $show_notice ) {
324
  wp_enqueue_script( 'yith-system-info' );
325
  ?>
326
+ <div id="yith-system-alert" class="notice notice-error is-dismissible" style="position: relative;">
327
+ <p>
328
+ <span class="yith-logo"><img src="<?php echo yith_plugin_fw_get_default_logo(); ?>" /></span>
329
+ <b>
330
+ <?php esc_html_e( 'Warning!', 'yith-plugin-fw' ); ?>
331
+ </b><br />
332
+ <?php
333
+ /* translators: %1$s open link tag, %2$s open link tag*/
334
+ echo sprintf( esc_html__( 'The system check has detected some compatibility issues on your installation.%1$sClick here%2$s to know more', 'yith-plugin-fw' ), '<a href="' . esc_url( add_query_arg( array( 'page' => $this->_page ), admin_url( 'admin.php' ) ) ) . '">', '</a>' );
335
+ ?>
336
+ </p>
337
+ <span class="notice-dismiss"></span>
338
+
339
+ </div>
340
+ <?php
341
+ }
342
  }
343
 
344
  /**
350
  */
351
  public function get_system_info() {
352
 
353
+ $tls = 'n/a';
354
+ $imagick_version = 'n/a';
355
 
356
  if ( function_exists( 'curl_init' ) && apply_filters( 'yith_system_status_check_ssl', true ) ) {
357
  //Get TLS version
363
  $data = curl_exec( $ch );
364
  curl_close( $ch );
365
  $json = json_decode( $data );
366
+
367
+ if ( is_string( $json ) && strpos( $json, '<!DOCTYPE html>' ) !== false ) {
368
+ $tls = 'n/a';
369
+ } else {
370
+ $tls = null !== $json ? str_replace( 'TLS ', '', $json->tls_version ) : '';
371
+ }
372
+
373
+ if ( 'n/a' === $tls || '' === $tls ) {
374
+ //run backup service
375
+ $ch = curl_init();
376
+ curl_setopt( $ch, CURLOPT_URL, 'https://ttl-version.yithemes.workers.dev/' );
377
+ curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
378
+ curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
379
+ curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
380
+ $data = curl_exec( $ch );
381
+ curl_close( $ch );
382
+ $json = json_decode( $data );
383
+
384
+ if ( is_string( $json ) && strpos( $json, '<!DOCTYPE html>' ) !== false ) {
385
+ $tls = 'n/a';
386
+ } else {
387
+ $tls = null !== $json ? str_replace( 'TLSv', '', $json->tlsVersion ) : 'n/a'; //phpcs:ignore
388
+ }
389
+ }
390
  }
391
 
392
  //Get PHP version
393
+ preg_match( '#^\d+(\.\d+)*#', PHP_VERSION, $match );
394
  $php_version = $match[0];
395
 
396
  // WP memory limit.
397
  $wp_memory_limit = $this->memory_size_to_num( WP_MEMORY_LIMIT );
398
  if ( function_exists( 'memory_get_usage' ) ) {
399
+ $wp_memory_limit = max( $wp_memory_limit, $this->memory_size_to_num( @ini_get( 'memory_limit' ) ) ); //phpcs:ignore
400
  }
401
 
402
  if ( class_exists( 'Imagick' ) && is_callable( array( 'Imagick', 'getVersion' ) ) ) {
403
+ preg_match( '/([0-9]+\.[0-9]+\.[0-9]+)/', Imagick::getVersion()['versionString'], $imatch );
404
  $imagick_version = $imatch[0];
405
  }
406
 
407
+ return apply_filters(
408
+ 'yith_system_additional_check',
409
+ array(
410
+ 'min_wp_version' => get_bloginfo( 'version' ),
411
+ 'min_wc_version' => function_exists( 'WC' ) ? WC()->version : 'n/a',
412
+ 'wp_memory_limit' => $wp_memory_limit,
413
+ 'min_php_version' => $php_version,
414
+ 'min_tls_version' => $tls,
415
+ 'imagick_version' => $imagick_version,
416
+ 'wp_cron_enabled' => ( ! ( defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON ) || apply_filters( 'yith_system_status_server_cron', false ) ),
417
+ 'mbstring_enabled' => extension_loaded( 'mbstring' ),
418
+ 'simplexml_enabled' => extension_loaded( 'simplexml' ),
419
+ 'gd_enabled' => extension_loaded( 'gd' ) && function_exists( 'gd_info' ),
420
+ 'iconv_enabled' => extension_loaded( 'iconv' ),
421
+ 'opcache_enabled' => ini_get( 'opcache.save_comments' ),
422
+ 'url_fopen_enabled' => ini_get( 'allow_url_fopen' ),
423
+ )
424
+ );
425
 
426
  }
427
 
428
  /**
429
+ * Convert size into number
430
  *
431
  * @param $memory_size string
432
  *
456
  return $size;
457
  }
458
 
459
+ /**
460
+ * Format requirement value
461
+ *
462
+ * @param $key string
463
+ * @param $value mixed
464
+ *
465
+ * @return string
466
+ * @since 1.0.0
467
+ *
468
+ * @author Alberto Ruggiero
469
+ */
470
+ public function format_requirement_value( $key, $value ) {
471
+
472
+ if ( strpos( $key, '_enabled' ) !== false ) {
473
+ return $value ? esc_html__( 'Enabled', 'yith-plugin-fw' ) : esc_html__( 'Disabled', 'yith-plugin-fw' );
474
+ } elseif ( 'wp_memory_limit' === $key ) {
475
+ return esc_html( size_format( $value ) );
476
+ } else {
477
+ if ( 'n/a' === $value ) {
478
+ return esc_html__( 'N/A', 'yith-plugin-fw' );
479
+ } else {
480
+ return $value;
481
+ }
482
+ }
483
+
484
+ }
485
+
486
+ /**
487
+ * Print error messages
488
+ *
489
+ * @param $key string
490
+ * @param $item array
491
+ * @param $label string
492
+ *
493
+ * @return void
494
+ * @since 1.0.0
495
+ *
496
+ * @author Alberto Ruggiero
497
+ */
498
+ public function print_error_messages( $key, $item, $label ) {
499
+ ?>
500
+ <ul>
501
+ <?php foreach ( $item['errors'] as $plugin => $requirement ) : ?>
502
+ <li>
503
+ <?php
504
+ if ( strpos( $key, '_enabled' ) !== false ) {
505
+ /* translators: %1$s plugin name, %2$s requirement name */
506
+ echo sprintf( esc_html__( '%1$s needs %2$s enabled', 'yith-plugin-fw' ), '<b>' . $plugin . '</b>', '<b>' . $label . '</b>' );
507
+ } elseif ( 'wp_memory_limit' === $key ) {
508
+ /* translators: %1$s plugin name, %2$s required memory amount */
509
+ echo sprintf( esc_html__( '%1$s needs at least %2$s of available memory', 'yith-plugin-fw' ), '<b>' . $plugin . '</b>', '<span class="error">' . esc_html( size_format( $this->memory_size_to_num( $requirement ) ) ) . '</span>' );
510
+ } else {
511
+ /* translators: %1$s plugin name, %2$s version number */
512
+ echo sprintf( esc_html__( '%1$s needs at least %2$s version', 'yith-plugin-fw' ), '<b>' . $plugin . '</b>', '<span class="error">' . $requirement . '</span>' );
513
+ }
514
+ ?>
515
+ </li>
516
+ <?php endforeach; ?>
517
+ </ul>
518
+ <?php
519
+ }
520
+
521
+ /**
522
+ * Print solution suggestions
523
+ *
524
+ * @param $key string
525
+ * @param $item array
526
+ * @param $label string
527
+ *
528
+ * @return void
529
+ * @since 1.0.0
530
+ *
531
+ * @author Alberto Ruggiero
532
+ */
533
+ public function print_solution_suggestion( $key, $item, $label ) {
534
+ switch ( $key ) {
535
+ case 'min_wp_version':
536
+ case 'min_wc_version':
537
+ esc_html_e( 'Update it to the latest version in order to benefit of all new features and security updates.', 'yith-plugin-fw' );
538
+ break;
539
+ case 'min_php_version':
540
+ case 'min_tls_version':
541
+ esc_html_e( 'Contact your hosting company in order to update it.', 'yith-plugin-fw' );
542
+ break;
543
+ case 'imagick_version':
544
+ if ( 'n/a' === $item['value'] ) {
545
+ esc_html_e( 'Contact your hosting company in order to install it.', 'yith-plugin-fw' );
546
+ } else {
547
+ esc_html_e( 'Contact your hosting company in order to update it.', 'yith-plugin-fw' );
548
+ }
549
+ break;
550
+ case 'wp_cron_enabled':
551
+ /* translators: %1$s code, %2$s file name */
552
+ echo sprintf( esc_html__( 'Remove %1$s from %2$s file', 'yith-plugin-fw' ), '<code>define( \'DISABLE_WP_CRON\', true );</code>', '<b>wp-config.php</b>' );
553
+ break;
554
+ case 'mbstring_enabled':
555
+ case 'simplexml_enabled':
556
+ case 'gd_enabled':
557
+ case 'iconv_enabled':
558
+ case 'opcache_enabled':
559
+ case 'url_fopen_enabled':
560
+ esc_html_e( 'Contact your hosting company in order to enable it.', 'yith-plugin-fw' );
561
+ break;
562
+ case 'wp_memory_limit':
563
+ /* translators: %1$s opening link tag, %2$s closing link tag */
564
+ echo sprintf( esc_html__( 'Read more %1$shere%2$s or contact your hosting company in order to increase it.', 'yith-plugin-fw' ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">', '</a>' );
565
+ break;
566
+ default:
567
+ echo apply_filters( 'yith_system_generic_message', '', $key, $item, $label );
568
+ }
569
+ }
570
+
571
+ /**
572
+ * Print warning messages
573
+ *
574
+ * @param $key string
575
+ *
576
+ * @return void
577
+ * @since 1.0.0
578
+ *
579
+ * @author Alberto Ruggiero
580
+ */
581
+ public function print_warning_messages( $key ) {
582
+ switch ( $key ) {
583
+ case 'wp_memory_limit':
584
+ /* translators: %s recommended memory amount */
585
+ echo sprintf( esc_html__( 'For optimal functioning of our plugins, we suggest setting at least %s of available memory', 'yith-plugin-fw' ), '<span class="warning">' . esc_html( size_format( $this->_recommended_memory ) ) . '</span>' );
586
+ echo '<br/>';
587
+ /* translators: %1$s opening link tag, %2$s closing link tag */
588
+ echo sprintf( esc_html__( 'Read more %1$shere%2$s or contact your hosting company in order to increase it.', 'yith-plugin-fw' ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">', '</a>' );
589
+ break;
590
+ case 'min_tls_version':
591
+ if ( ! function_exists( 'curl_init' ) ) {
592
+ /* translators: %1$s TLS label, %2$s cURL label */
593
+ echo sprintf( esc_html__( 'The system check cannot determine which %1$s version is installed because %2$s module is disabled. Ask your hosting company to enable it.', 'yith-plugin-fw' ), '<b>TLS</b>', '<b>cURL</b>' );
594
+ } else {
595
+ /* translators: %1$s TLS label */
596
+ echo sprintf( esc_html__( 'The system check cannot determine which %1$s version is installed due to a connection issue between your site and our server.', 'yith-plugin-fw' ), '<b>TLS</b>' );
597
+ }
598
+ break;
599
+ }
600
+ }
601
+
602
  }
603
  }
604
 
610
  * @author Alberto Ruggiero
611
  */
612
  if ( ! function_exists( 'YITH_System_Status' ) ) {
613
+ function YITH_System_Status() {//phpcs:ignore
614
  return YITH_System_Status::instance();
615
  }
616
  }
plugin-fw/package.json DELETED
@@ -1,21 +0,0 @@
1
- {
2
- "name": "yith-plugin-framewowrk",
3
- "version": "3.4.19",
4
- "description": "YITH Plugin Framework",
5
- "main": "Gruntfile.js",
6
- "scripts": {
7
- "build": "npm run js && npm run i18n",
8
- "js": "grunt js",
9
- "i18n": "grunt i18n"
10
- },
11
- "author": "YITH",
12
- "license": "GPL-3.0+",
13
- "keywords": [],
14
- "devDependencies": {
15
- "grunt": "^1.0.3",
16
- "grunt-cli": "^1.3.2",
17
- "grunt-contrib-jshint": "^2.0.0",
18
- "grunt-contrib-uglify-es": "github:gruntjs/grunt-contrib-uglify#harmony",
19
- "grunt-wp-i18n": "^1.0.2"
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/templates/fields/inline-fields.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ if ( ! defined( 'ABSPATH' ) ) {
14
+ exit; // Exit if accessed directly.
15
+ }
16
+
17
+ extract( $field );
18
+ $value = maybe_unserialize( $value );
19
+ if ( ! empty( $fields ) && is_array( $fields ) ) { ?>
20
+ <div id="<?php echo esc_attr( $id ); ?>" class="<?php echo isset( $class ) ? $class : ''; ?> yith-inline-fields">
21
+ <?php
22
+ foreach ( $fields as $key => $field ) {
23
+ $allowed_types = array( 'select', 'select-buttons', 'number', 'text', 'slider', 'hidden', 'html' );
24
+ $default_args = array( 'type' => 'select' );
25
+
26
+ // set default
27
+ if ( ! isset( $field[ 'default' ] ) && isset( $field[ 'std' ] ) ) {
28
+ $field['default'] = $field['std'];
29
+ }
30
+ $std = isset( $field['default'] ) ? $field['default'] : '';
31
+
32
+ $field['value'] = isset( $value[ $key ] ) ? maybe_unserialize( $value[ $key ] ) : $std;
33
+ $field['class'] = isset( $field['class'] ) ? $field['class'] : '';
34
+ $field['id'] = $id . '_' . $key;
35
+ $field['name'] = $name . '[' . $key . ']';
36
+
37
+ if ( ! in_array( $field['type'], $allowed_types, true ) ) {
38
+ continue;
39
+ }
40
+
41
+ if ( in_array( $field['type'], array( 'select', 'select-buttons' ), true ) ) {
42
+ $field['class'] = 'wc-enhanced-select';
43
+ }
44
+ ?>
45
+ <?php if ( isset( $field['inline-label'] ) && '' !== $field['inline-label'] ) : ?>
46
+ <div class="option-element">
47
+ <span><?php echo $field['inline-label']; ?></span>
48
+ </div>
49
+ <?php endif; ?>
50
+ <div class="option-element <?php echo $field['type']; ?> <?php echo $field['class']; ?>">
51
+ <?php if ( isset( $field['label'] ) && '' !== $field['label'] ) : ?>
52
+ <label for="<?php echo $field['id']; ?>"><?php echo $field['label']; ?></label>
53
+ <?php endif; ?>
54
+ <?php yith_plugin_fw_get_field( $field, true ); ?>
55
+ </div>
56
+ <?php } ?>
57
+ </div>
58
+ <?php
59
+
60
+ }
plugin-fw/templates/fields/textarea-editor.php CHANGED
@@ -18,6 +18,8 @@ if ( !function_exists( 'wp_editor' ) ) :
18
  else:
19
  extract( $field );
20
 
 
 
21
  $editor_args = wp_parse_args( $field, array(
22
  'wpautop' => true, // use wpautop?
23
  'media_buttons' => true, // show insert/upload button(s)
@@ -32,7 +34,7 @@ else:
32
  'quicktags' => true // load Quicktags, can be used to pass settings directly to Quicktags using an array()
33
  ) );
34
  ?>
35
- <div class="editor" <?php echo $custom_attributes ?>
36
  <?php if ( isset( $data ) ) echo yith_plugin_fw_html_data_to_string( $data ); ?>><?php wp_editor( $value, $id, $editor_args ); ?></div>
37
 
38
  <?php endif; ?>
18
  else:
19
  extract( $field );
20
 
21
+ $classes = isset( $classes ) ? ' '.$classes : '';
22
+
23
  $editor_args = wp_parse_args( $field, array(
24
  'wpautop' => true, // use wpautop?
25
  'media_buttons' => true, // show insert/upload button(s)
34
  'quicktags' => true // load Quicktags, can be used to pass settings directly to Quicktags using an array()
35
  ) );
36
  ?>
37
+ <div class="editor<?php echo $classes ?>" <?php echo $custom_attributes ?>
38
  <?php if ( isset( $data ) ) echo yith_plugin_fw_html_data_to_string( $data ); ?>><?php wp_editor( $value, $id, $editor_args ); ?></div>
39
 
40
  <?php endif; ?>
plugin-fw/templates/fields/toggle-element.php CHANGED
@@ -44,6 +44,11 @@ if ( empty( $values ) && !$show_add_button && $elements ) {
44
 
45
  ?>
46
  <div class="yith-toggle_wrapper <?php echo $class_wrapper ?>" id="<?php echo $id ?>" data-nonce="<?php echo $ajax_nonce; ?>">
 
 
 
 
 
47
  <?php
48
 
49
  if ( $show_add_button ):
@@ -287,4 +292,4 @@ if ( empty( $values ) && !$show_add_button && $elements ) {
287
  </div>
288
  </script>
289
 
290
- </div>
44
 
45
  ?>
46
  <div class="yith-toggle_wrapper <?php echo $class_wrapper ?>" id="<?php echo $id ?>" data-nonce="<?php echo $ajax_nonce; ?>">
47
+ <?php
48
+ if( !empty( $label ) ):
49
+ ?>
50
+ <label for="<?php esc_attr_e($id);?>"><?php echo esc_html( $label );?></label>
51
+ <?php endif;?>
52
  <?php
53
 
54
  if ( $show_add_button ):
292
  </div>
293
  </script>
294
 
295
+ </div>
plugin-fw/templates/panel/woocommerce/woocommerce-form.php CHANGED
@@ -10,8 +10,10 @@ $panel_content_class = apply_filters( 'yit_admin_panel_content_class', 'yit-admi
10
  <div class="<?php echo $panel_content_class; ?>">
11
  <form id="plugin-fw-wc" method="post">
12
  <?php $this->add_fields() ?>
13
- <?php wp_nonce_field( 'yit_panel_wc_options_' . $this->settings[ 'page' ], 'yit_panel_wc_options_nonce' ); ?>
14
- <input style="float: left; margin-right: 10px;" class="button-primary" type="submit" value="<?php _e( 'Save Changes', 'yith-plugin-fw' ) ?>"/>
 
 
15
  </form>
16
  <form id="plugin-fw-wc-reset" method="post">
17
  <?php $warning = __( 'If you continue with this action, you will reset all options in this page.', 'yith-plugin-fw' ) ?>
10
  <div class="<?php echo $panel_content_class; ?>">
11
  <form id="plugin-fw-wc" method="post">
12
  <?php $this->add_fields() ?>
13
+ <p class="submit" style="float: left;margin: 0 10px 0 0;">
14
+ <?php wp_nonce_field( 'yit_panel_wc_options_' . $this->settings[ 'page' ], 'yit_panel_wc_options_nonce' ); ?>
15
+ <input class="button-primary" type="submit" value="<?php _e( 'Save Changes', 'yith-plugin-fw' ) ?>"/>
16
+ </p>
17
  </form>
18
  <form id="plugin-fw-wc-reset" method="post">
19
  <?php $warning = __( 'If you continue with this action, you will reset all options in this page.', 'yith-plugin-fw' ) ?>
plugin-fw/templates/privacy/html-policy-content.php CHANGED
@@ -1,37 +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>
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/sysinfo/system-information-panel.php CHANGED
@@ -8,11 +8,12 @@
8
  * http://www.gnu.org/licenses/gpl-3.0.txt
9
  */
10
 
11
- $system_info = get_option( 'yith_system_info' );
12
- $recommended_memory = 134217728;
13
- $output_ip = 'n/a';
 
14
 
15
- if ( function_exists( 'curl_init' ) && apply_filters( 'yith_system_status_check_ip', true ) ) {
16
  //Get Output IP Address
17
  $ch = curl_init();
18
  curl_setopt( $ch, CURLOPT_URL, 'https://ifconfig.co/ip' );
@@ -21,176 +22,153 @@ if ( function_exists( 'curl_init' ) && apply_filters( 'yith_system_status_check_
21
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
22
  $data = curl_exec( $ch );
23
  curl_close( $ch );
24
- $output_ip = $data != '' ? $data : 'n/a';
25
- }
26
-
27
- ?>
28
- <div id="yith-sysinfo" class="wrap yith-system-info">
29
- <h1>
30
- <span class="yith-logo"><img src="<?php echo yith_plugin_fw_get_default_logo() ?>" /></span> <?php _e( 'YITH System Information', 'yith-plugin-fw' ) ?>
31
- </h1>
32
-
33
- <?php if ( ! isset( $_GET['yith-phpinfo'] ) || $_GET['yith-phpinfo'] != 'true' ): ?>
34
 
35
- <table class="widefat striped">
36
- <tr>
37
- <th>
38
- <?php _e( 'Site URL', 'yith-plugin-fw' ); ?>
39
- </th>
40
- <td class="requirement-value">
41
- <?php echo get_site_url() ?>
42
- </td>
43
- </tr>
44
- <tr>
45
- <th>
46
- <?php _e( 'Output IP Address', 'yith-plugin-fw' ); ?>
47
- </th>
48
- <td class="requirement-value">
49
- <?php echo $output_ip ?>
50
- </td>
51
- </tr>
52
- </table>
53
 
54
- <table class="widefat striped">
55
- <?php foreach ( $system_info['system_info'] as $key => $item ): ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  <?php
57
- $to_be_enabled = strpos( $key, '_enabled' ) !== false;
58
- $has_errors = isset( $item['errors'] );
59
- $has_warnings = false;
60
-
61
- if ( $key == 'wp_memory_limit' && ! $has_errors ) {
62
- $has_warnings = $item['value'] < $recommended_memory;
63
- } elseif ( ( $key == 'min_tls_version' || $key == 'imagick_version' ) && ! $has_errors ) {
64
- $has_warnings = $item['value'] == 'n/a';
65
- }
66
-
67
- ?>
68
- <tr>
69
- <th class="requirement-name">
70
- <?php echo $labels[ $key ]; ?>
71
- </th>
72
- <td class="requirement-value <?php echo( $has_errors ? 'has-errors' : '' ) ?> <?php echo( $has_warnings ? 'has-warnings' : '' ) ?>">
73
- <span class="dashicons dashicons-<?php echo( $has_errors || $has_warnings ? 'warning' : 'yes' ) ?>"></span>
74
-
75
- <?php if ( $to_be_enabled ) {
76
- echo $item['value'] ? __( 'Enabled', 'yith-plugin-fw' ) : __( 'Disabled', 'yith-plugin-fw' );
77
- } elseif ( $key == 'wp_memory_limit' ) {
78
- echo esc_html( size_format( $item['value'] ) );
79
- } else {
80
-
81
- if ( $item['value'] == 'n/a' ) {
82
- echo __( 'N/A', 'yith-plugin-fw' );
83
- } else {
84
- echo $item['value'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  }
86
 
87
- } ?>
88
-
89
- </td>
90
- <td class="requirement-messages">
91
- <?php if ( $has_errors ) : ?>
92
- <ul>
93
- <?php foreach ( $item['errors'] as $plugin => $requirement ) : ?>
94
- <li>
95
- <?php if ( $to_be_enabled ) {
96
- echo sprintf( __( '%s needs %s enabled', 'yith-plugin-fw' ), '<b>' . $plugin . '</b>', '<b>' . $labels[ $key ] . '</b>' );
97
- } elseif ( $key == 'wp_memory_limit' ) {
98
- echo sprintf( __( '%s needs at least %s of available memory', 'yith-plugin-fw' ), '<b>' . $plugin . '</b>', '<span class="error">' . esc_html( size_format( YITH_System_Status()->memory_size_to_num( $requirement ) ) ) . '</span>' );
99
- echo '<br/>';
100
- echo sprintf( __( 'For optimal functioning of our plugins, we suggest setting at least %s of available memory', 'yith-plugin-fw' ), '<span class="error">' . esc_html( size_format( $recommended_memory ) ) . '</span>' );
101
- echo '<br/>';
102
- echo sprintf( __( 'Read more %s here%s or contact your hosting company in order to increase it.', 'yith-plugin-fw' ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">', '</a>' );
103
-
104
- } else {
105
- echo sprintf( __( '%s needs at least %s version', 'yith-plugin-fw' ), '<b>' . $plugin . '</b>', '<span class="error">' . $requirement . '</span>' );
106
-
107
-
108
- } ?>
109
- </li>
110
- <?php endforeach; ?>
111
- </ul>
112
- <?php switch ( $key ) {
113
-
114
- case 'min_wp_version':
115
- case 'min_wc_version':
116
- echo __( 'Update it to the latest version in order to benefit of all new features and security updates.', 'yith-plugin-fw' );
117
- break;
118
- case 'min_php_version':
119
- case 'min_tls_version':
120
- case 'imagick_version':
121
- if ( $item['value'] != 'n/a' ) {
122
- echo __( 'Contact your hosting company in order to update it.', 'yith-plugin-fw' );
123
- }
124
- break;
125
- case 'wp_cron_enabled':
126
- echo sprintf( __( 'Remove %s from %s file', 'yith-plugin-fw' ), '<code>define( \'DISABLE_WP_CRON\', true );</code>', '<b>wp-config.php</b>' );
127
- break;
128
- case 'mbstring_enabled':
129
- case 'simplexml_enabled':
130
- case 'gd_enabled':
131
- case 'iconv_enabled':
132
- case 'opcache_enabled':
133
- case 'url_fopen_enabled':
134
- echo __( 'Contact your hosting company in order to enable it.', 'yith-plugin-fw' );
135
- break;
136
- case 'wp_memory_limit':
137
- echo sprintf( __( 'Read more %s here%s or contact your hosting company in order to increase it.', 'yith-plugin-fw' ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">', '</a>' );
138
- break;
139
- default:
140
- echo apply_filters( 'yith_system_generic_message', '', $item );
141
-
142
- } ?>
143
- <?php endif; ?>
144
 
145
- <?php if ( $has_warnings ) {
146
-
147
- if ( $item['value'] != 'n/a' ) {
148
-
149
- echo sprintf( __( 'For optimal functioning of our plugins, we suggest setting at least %s of available memory', 'yith-plugin-fw' ), '<span class="error">' . esc_html( size_format( $recommended_memory ) ) . '</span>' );
150
- echo '<br/>';
151
- echo sprintf( __( 'Read more %s here%s or contact your hosting company in order to increase it.', 'yith-plugin-fw' ), '<a href="https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP" target="_blank">', '</a>' );
152
-
153
- } else {
154
-
155
- switch ( $key ) {
156
- case 'min_tls_version':
157
- echo __( 'We cannot determine which <b>TLS</b> version is installed because <b>cURL</b> module is disabled. Ask your hosting company to enable it.', 'yith-plugin-fw' );
158
- break;
159
- case 'imagick_version':
160
- echo __( '<b>ImageMagick</b> module is not installed. Ask your hosting company to install it.', 'yith-plugin-fw' );
161
- break;
162
  }
163
-
 
 
164
  }
165
-
166
- } ?>
167
- </td>
168
- </tr>
169
- <?php endforeach; ?>
170
- </table>
171
-
172
- <a href="<?php echo add_query_arg( array( 'yith-phpinfo' => 'true' ) ) ?> "><?php _e( 'Show full PHPInfo', 'yith-plugin-fw' ) ?></a>
173
-
174
- <?php else : ?>
175
-
176
- <a href="<?php echo add_query_arg( array( 'yith-phpinfo' => 'false' ) ) ?> "><?php _e( 'Back to System panel', 'yith-plugin-fw' ) ?></a>
177
-
178
- <?php
179
-
180
- ob_start();
181
- phpinfo( 61 );
182
- $pinfo = ob_get_contents();
183
- ob_end_clean();
184
-
185
- $pinfo = preg_replace( '%^.*<div class="center">(.*)</div>.*$%ms', '$1', $pinfo );
186
- $pinfo = preg_replace( '%(^.*)<a name=\".*\">(.*)</a>(.*$)%m', '$1$2$3', $pinfo );
187
- $pinfo = str_replace( '<table>', '<table class="widefat striped yith-phpinfo">', $pinfo );
188
- $pinfo = str_replace( '<td class="e">', '<th class="e">', $pinfo );
189
- echo $pinfo;
190
-
191
- ?>
192
-
193
- <a href="#yith-sysinfo"><?php _e( 'Back to top', 'yith-plugin-fw' ) ?></a>
194
-
195
- <?php endif; ?>
196
- </div>
8
  * http://www.gnu.org/licenses/gpl-3.0.txt
9
  */
10
 
11
+ $system_info = get_option( 'yith_system_info' );
12
+ $saved_ip = get_transient( 'yith-sysinfo-ip' );
13
+ $output_ip = ( '' === (string) $saved_ip ? 'n/a' : $saved_ip );
14
+ $labels = YITH_System_Status()->_requirement_labels;
15
 
16
+ if ( 'n/a' === $output_ip && function_exists( 'curl_init' ) && apply_filters( 'yith_system_status_check_ip', true ) ) {
17
  //Get Output IP Address
18
  $ch = curl_init();
19
  curl_setopt( $ch, CURLOPT_URL, 'https://ifconfig.co/ip' );
22
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
23
  $data = curl_exec( $ch );
24
  curl_close( $ch );
 
 
 
 
 
 
 
 
 
 
25
 
26
+ //CHECK IF IS IPv4
27
+ preg_match( '/((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])/', $data, $matches );
28
+ //CHECK IF IS IPv6
29
+ if ( empty( $matches ) ) {
30
+ preg_match( '/(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/', $data, $matches );
31
+ }
32
+ $output_ip = ! empty( $matches ) ? $matches[0] : 'n/a';
 
 
 
 
 
 
 
 
 
 
 
33
 
34
+ set_transient( 'yith-sysinfo-ip', $output_ip, 300 );
35
+ }
36
+ ?>
37
+ <div id="yith-sysinfo" class="wrap yith-system-info yith-plugin-ui">
38
+ <h2 class="yith-sysinfo-title">
39
+ <span class="yith-logo"><img src="<?php echo yith_plugin_fw_get_default_logo(); ?>" /></span> <?php _e( 'YITH System Information', 'yith-plugin-fw' ); ?>
40
+ </h2>
41
+ <?php
42
+
43
+ $tab = isset( $_GET['tab'] ) ? $_GET['tab'] : '';
44
+
45
+ switch ( $tab ) {
46
+ case 'error-log':
47
+ $debug_files = array(
48
+ //debug.log file
49
+ 'debug.log' => array(
50
+ 'label' => esc_html__( 'WP debug.log file', 'yith-plugin-fw' ),
51
+ 'path' => WP_CONTENT_DIR . '/debug.log',
52
+ ),
53
+ 'error_log' => array(
54
+ 'label' => esc_html__( 'PHP error_log file', 'yith-plugin-fw' ),
55
+ 'path' => ABSPATH . 'error_log',
56
+ ),
57
+ );
58
+ ?>
59
+ <a href="<?php echo add_query_arg( array( 'tab' => 'main' ) ); ?> "><?php esc_html_e( 'Back to System panel', 'yith-plugin-fw' ); ?></a>
60
+ <table class="widefat striped">
61
  <?php
62
+ foreach ( $debug_files as $debug_file ) :
63
+
64
+ if ( ! file_exists( $debug_file['path'] ) ) {
65
+ continue;
66
+ }
67
+
68
+ ?>
69
+ <tr>
70
+ <th>
71
+ <?php echo $debug_file['label']; ?>
72
+ </th>
73
+ <td>
74
+ <textarea class="yith-system-info-debug" readonly> <?php include $debug_file['path']; ?></textarea>
75
+ </td>
76
+ </tr>
77
+ <?php endforeach; ?>
78
+ </table>
79
+ <?php
80
+ break;
81
+ case 'php-info':
82
+ ?>
83
+ <a href="<?php echo add_query_arg( array( 'tab' => 'main' ) ); ?> "><?php esc_html_e( 'Back to System panel', 'yith-plugin-fw' ); ?></a>
84
+ <?php
85
+ ob_start();
86
+ phpinfo( 61 );
87
+ $pinfo = ob_get_contents();
88
+ ob_end_clean();
89
+
90
+ $pinfo = preg_replace( '%^.*<div class="center">(.*)</div>.*$%ms', '$1', $pinfo );
91
+ $pinfo = preg_replace( '%(^.*)<a name=\".*\">(.*)</a>(.*$)%m', '$1$2$3', $pinfo );
92
+ $pinfo = str_replace( '<table>', '<table class="widefat striped yith-phpinfo">', $pinfo );
93
+ $pinfo = str_replace( '<td class="e">', '<th class="e">', $pinfo );
94
+ echo $pinfo;
95
+ ?>
96
+ <a href="#yith-sysinfo"><?php esc_html_e( 'Back to top', 'yith-plugin-fw' ); ?></a>
97
+ <?php
98
+ break;
99
+ default:
100
+ ?>
101
+ <table class="widefat striped">
102
+ <tr>
103
+ <th>
104
+ <?php esc_html_e( 'Site URL', 'yith-plugin-fw' ); ?>
105
+ </th>
106
+ <td class="requirement-value">
107
+ <?php echo get_site_url(); ?>
108
+ </td>
109
+ </tr>
110
+ <tr>
111
+ <th>
112
+ <?php esc_html_e( 'Output IP Address', 'yith-plugin-fw' ); ?>
113
+ </th>
114
+ <td class="requirement-value">
115
+ <?php echo $output_ip; ?>
116
+ </td>
117
+ </tr>
118
+ <tr>
119
+ <th>
120
+ <?php esc_html_e( 'Defined WP_CACHE', 'yith-plugin-fw' ); ?>
121
+ </th>
122
+ <td class="requirement-value">
123
+ <?php echo( defined( 'WP_CACHE' ) && WP_CACHE ? esc_html__( 'Yes', 'yith-plugin-fw' ) : esc_html__( 'No', 'yith-plugin-fw' ) ); ?>
124
+ </td>
125
+ </tr>
126
+ </table>
127
+
128
+ <table class="widefat striped">
129
+ <?php foreach ( $system_info['system_info'] as $key => $item ) : ?>
130
+ <?php
131
+ $has_errors = isset( $item['errors'] );
132
+ $has_warnings = isset( $item['warnings'] );
133
+ ?>
134
+ <tr>
135
+ <th class="requirement-name">
136
+ <?php echo $labels[ $key ]; ?>
137
+ </th>
138
+ <td class="requirement-value <?php echo( $has_errors ? 'has-errors' : '' ); ?> <?php echo( $has_warnings ? 'has-warnings' : '' ); ?>">
139
+ <span class="dashicons dashicons-<?php echo( $has_errors || $has_warnings ? 'warning' : 'yes' ); ?>"></span>
140
+ <?php
141
+ echo YITH_System_Status()->format_requirement_value( $key, $item['value'] );
142
+ ?>
143
+ </td>
144
+ <td class="requirement-messages">
145
+ <?php
146
+ if ( $has_errors ) {
147
+ YITH_System_Status()->print_error_messages( $key, $item, $labels[ $key ] );
148
+ YITH_System_Status()->print_solution_suggestion( $key, $item, $labels[ $key ] );
149
+ } elseif ( $has_warnings ) {
150
+ YITH_System_Status()->print_warning_messages( $key );
151
  }
152
 
153
+ if ( 'min_php_version' === $key ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
 
155
+ if ( $has_errors || $has_warnings ) {
156
+ echo '<br />';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  }
158
+ ?>
159
+ <a href="<?php echo add_query_arg( array( 'tab' => 'php-info' ) ); ?> "><?php esc_html_e( 'Show full PHPInfo', 'yith-plugin-fw' ); ?></a>
160
+ <?php
161
  }
162
+ ?>
163
+ </td>
164
+ </tr>
165
+ <?php endforeach; ?>
166
+ </table>
167
+ <a href="<?php echo add_query_arg( array( 'tab' => 'error-log' ) ); ?> "><?php esc_html_e( 'Show log files', 'yith-plugin-fw' ); ?></a>
168
+
169
+ <?php
170
+ break;
171
+ }
172
+
173
+ ?>
174
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plugin-fw/yit-functions.php CHANGED
@@ -969,21 +969,34 @@ if ( !function_exists( 'yith_plugin_fw_get_field' ) ) {
969
  * @return string|void
970
  */
971
  function yith_plugin_fw_get_field( $field, $echo = false, $show_container = true ) {
972
- if ( empty( $field[ 'type' ] ) )
973
- return '';
 
974
 
975
- if ( !isset( $field[ 'value' ] ) )
976
- $field[ 'value' ] = '';
 
977
 
978
- if ( !isset( $field[ 'name' ] ) )
979
- $field[ 'name' ] = '';
 
980
 
981
- if ( !isset( $field[ 'custom_attributes' ] ) )
982
- $field[ 'custom_attributes' ] = '';
 
 
 
 
 
 
 
983
 
984
- if ( !isset( $field[ 'default' ] ) && isset( $field[ 'std' ] ) )
985
- $field[ 'default' ] = $field[ 'std' ];
986
 
 
 
 
987
 
988
  $field_template = yith_plugin_fw_get_field_template_path( $field );
989
 
969
  * @return string|void
970
  */
971
  function yith_plugin_fw_get_field( $field, $echo = false, $show_container = true ) {
972
+ if ( empty( $field[ 'type' ] ) ) {
973
+ return '';
974
+ }
975
 
976
+ if ( !isset( $field[ 'value' ] ) ) {
977
+ $field['value'] = '';
978
+ }
979
 
980
+ if ( !isset( $field[ 'name' ] ) ) {
981
+ $field['name'] = '';
982
+ }
983
 
984
+ if ( ! isset( $field[ 'custom_attributes' ] ) ) {
985
+ $field['custom_attributes'] = '';
986
+ }
987
+ elseif( is_array( $field[ 'custom_attributes' ] ) ) {
988
+ // let's build custom attributes as string
989
+ $custom_attributes = array();
990
+ foreach ( $field[ 'custom_attributes' ] as $attribute => $attribute_value ) {
991
+ $custom_attributes[] = esc_attr( $attribute ) . '="' . esc_attr( $attribute_value ) . '"';
992
+ }
993
 
994
+ $field['custom_attributes'] = implode( ' ', $custom_attributes );
995
+ }
996
 
997
+ if ( ! isset( $field[ 'default' ] ) && isset( $field[ 'std' ] ) ) {
998
+ $field['default'] = $field['std'];
999
+ }
1000
 
1001
  $field_template = yith_plugin_fw_get_field_template_path( $field );
1002