YITH WooCommerce Ajax Search - Version 1.8.0

Version Description

  • Released on 8 Aug 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 Ajax Search
Version 1.8.0
Comparing to
See all releases

Code changes from version 1.7.9 to 1.8.0

Files changed (38) hide show
  1. README.txt +7 -2
  2. class.yith-wcas-admin.php +0 -204
  3. class.yith-wcas-frontend.php +0 -65
  4. class.yith-wcas.php +0 -227
  5. compatibility/elementor/class.yith-wcas-elementor.php +0 -85
  6. compatibility/elementor/class.yith-wcas-search-form-elementor.php +0 -115
  7. functions.yith-wcas.php +0 -23
  8. init.php +3 -3
  9. plugin-fw/assets/css/admin.css +111 -97
  10. plugin-fw/assets/css/yit-plugin-panel.css +148 -15
  11. plugin-fw/assets/css/yith-fields.css +108 -21
  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 +1 -0
  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 +205 -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 +206 -143
  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 +86 -14
  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 +1 -1
  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-fixed.php +11 -3
  35. plugin-fw/templates/fields/toggle-element.php +6 -1
  36. plugin-fw/templates/sysinfo/system-information-panel.php +147 -169
  37. plugin-fw/yit-functions.php +23 -10
  38. widgets/class.yith-wcas-ajax-search.php +0 -104
README.txt CHANGED
@@ -3,8 +3,8 @@
3
  Contributors: yithemes
4
  Tags: woocommerce search by sku, woocommerce search results, woocommerce search shortcode, woocommerce search page, woocommerce search form, woocommerce search filter, woocommerce search products, woocommerce search content, woocommerce search autocomplete, woocommerce advanced search, woocommerce search category, woocommerce search product attributes, woocommerce search by tag, woocommerce search by brand, woocommerce predictive, woocommerce live search, woocommerce single product search, woocommerce site search, woocommerce search tex, tajax, search, woocommerce, products, themes, yit, e-commerce, shop, yith, ajax search, instant search, premium, yithemes, autocomplete, autosuggest, better search, category search, custom search, highlight terms, Live Search, Predictive Search, product search, relevant search, search highlight, search product, suggest, typeahead, WooCommerce Plugin, woocommerce product search, woocommerce search, wordpress ecommerce
5
  Requires at least: 4.0.0
6
- Tested up to: 5.4
7
- Stable tag: 1.7.9
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -138,6 +138,11 @@ If you have created your own language pack for YITH WooCommerce Ajax Search, or
138
  2. YITH WooCommerce Ajax Search in operation displaying WooCommerce search results
139
 
140
  == Changelog ==
 
 
 
 
 
141
  = 1.7.9 - Released on 20 May 2020 =
142
  * New: Support for WooCommerce 4.2
143
  * Update: Plugin framework
3
  Contributors: yithemes
4
  Tags: woocommerce search by sku, woocommerce search results, woocommerce search shortcode, woocommerce search page, woocommerce search form, woocommerce search filter, woocommerce search products, woocommerce search content, woocommerce search autocomplete, woocommerce advanced search, woocommerce search category, woocommerce search product attributes, woocommerce search by tag, woocommerce search by brand, woocommerce predictive, woocommerce live search, woocommerce single product search, woocommerce site search, woocommerce search tex, tajax, search, woocommerce, products, themes, yit, e-commerce, shop, yith, ajax search, instant search, premium, yithemes, autocomplete, autosuggest, better search, category search, custom search, highlight terms, Live Search, Predictive Search, product search, relevant search, search highlight, search product, suggest, typeahead, WooCommerce Plugin, woocommerce product search, woocommerce search, wordpress ecommerce
5
  Requires at least: 4.0.0
6
+ Tested up to: 5.5
7
+ Stable tag: 1.8.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
138
  2. YITH WooCommerce Ajax Search in operation displaying WooCommerce search results
139
 
140
  == Changelog ==
141
+ = 1.8.0 - Released on 8 Aug 2020 =
142
+ * New: Support for WooCommerce 4.4
143
+ * New: Support for WordPress 5.5
144
+ * Update: Plugin framework
145
+
146
  = 1.7.9 - Released on 20 May 2020 =
147
  * New: Support for WooCommerce 4.2
148
  * Update: Plugin framework
class.yith-wcas-admin.php DELETED
@@ -1,204 +0,0 @@
1
- <?php
2
- /**
3
- * Admin class
4
- *
5
- * @author YITH
6
- * @package YITH WooCommerce Ajax Search
7
- * @version 1.1.1
8
- */
9
-
10
- if ( ! defined( 'YITH_WCAS' ) ) {
11
- exit; } // Exit if accessed directly
12
-
13
- if ( ! class_exists( 'YITH_WCAS_Admin' ) ) {
14
- /**
15
- * Admin class.
16
- * The class manage all the admin behaviors.
17
- *
18
- * @since 1.0.0
19
- */
20
- class YITH_WCAS_Admin {
21
- /**
22
- * Plugin options
23
- *
24
- * @var array
25
- * @access public
26
- * @since 1.0.0
27
- */
28
- public $options = array();
29
-
30
- /**
31
- * Panel object
32
- *
33
- * @var Panel Object
34
- */
35
- protected $_panel;
36
-
37
- /**
38
- * Premium tab template file name.
39
- *
40
- * @var string
41
- */
42
- protected $_premium = 'premium.php';
43
-
44
- /**
45
- * Premium version landing link.
46
- *
47
- * @var string
48
- */
49
- protected $_premium_landing = 'https://yithemes.com/themes/plugins/yith-woocommerce-ajax-search/';
50
-
51
- /**
52
- * Ajax Search panel page.
53
- *
54
- * @var string
55
- */
56
- protected $_panel_page = 'yith_wcas_panel';
57
-
58
-
59
- /**
60
- * Constructor
61
- *
62
- * @access public
63
- * @since 1.0.0
64
- */
65
- public function __construct() {
66
-
67
- add_action( 'admin_menu', array( $this, 'register_panel' ), 5 );
68
- add_action( 'init', array( $this, 'gutenberg_integration' ) );
69
- // Add action links.
70
- add_filter( 'plugin_action_links_' . plugin_basename( YITH_WCAS_DIR . '/' . basename( YITH_WCAS_FILE ) ), array( $this, 'action_links' ) );
71
- add_filter( 'yith_show_plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 5 );
72
-
73
- add_action( 'yith_ajax_search_premium', array( $this, 'premium_tab' ) );
74
-
75
- // YITH WCAS Loaded.
76
- do_action( 'yith_wcas_loaded' );
77
- }
78
-
79
-
80
- /**
81
- * Gutenberg Integration
82
- */
83
- public function gutenberg_integration() {
84
- if ( function_exists( 'yith_plugin_fw_gutenberg_add_blocks' ) ) {
85
- $blocks = include_once YITH_WCAS_DIR . 'plugin-options/gutenberg/blocks.php';
86
- yith_plugin_fw_gutenberg_add_blocks( $blocks );
87
- }
88
- }
89
-
90
- /**
91
- * Action Links
92
- *
93
- * Add the action links to plugin admin page
94
- *
95
- * @param string $links | links plugin array.
96
- *
97
- * @return mixed
98
- * @since 1.0
99
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
100
- * @use plugin_action_links_{$plugin_file_name}
101
- */
102
- public function action_links( $links ) {
103
- $links = yith_add_action_links( $links, $this->_panel_page, false );
104
- return $links;
105
- }
106
-
107
- /**
108
- * Add a panel under YITH Plugins tab
109
- *
110
- * @return void
111
- * @since 1.0
112
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
113
- * @use /Yit_Plugin_Panel class
114
- * @see plugin-fw/lib/yit-plugin-panel.php
115
- */
116
- public function register_panel() {
117
-
118
- if ( ! empty( $this->_panel ) ) {
119
- return;
120
- }
121
-
122
- $admin_tabs = array(
123
- 'settings' => __( 'Settings', 'yith-woocommerce-ajax-search' ),
124
- 'premium' => __( 'Premium Version', 'yith-woocommerce-ajax-search' ),
125
- );
126
-
127
- $args = array(
128
- 'create_menu_page' => true,
129
- 'parent_slug' => '',
130
- 'plugin_slug' => YITH_WCAS_SLUG,
131
- 'page_title' => __( 'YITH WooCommerce Ajax Search', 'yith-woocommerce-ajax-search' ),
132
- 'menu_title' => __( 'Ajax Search', 'yith-woocommerce-ajax-search' ),
133
- 'capability' => 'manage_options',
134
- 'parent' => '',
135
- 'parent_page' => 'yith_plugin_panel',
136
- 'page' => $this->_panel_page,
137
- 'admin-tabs' => $admin_tabs,
138
- 'class' => yith_set_wrapper_class(),
139
- 'options-path' => YITH_WCAS_DIR . '/plugin-options',
140
- );
141
-
142
- /* === Fixed: not updated theme === */
143
- if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
144
- require_once 'plugin-fw/lib/yit-plugin-panel-wc.php';
145
- }
146
-
147
- $this->_panel = new YIT_Plugin_Panel_WooCommerce( $args );
148
- }
149
-
150
- /**
151
- * Premium Tab Template
152
- *
153
- * Load the premium tab template on admin page
154
- *
155
- * @return void
156
- * @since 1.0
157
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
158
- */
159
- public function premium_tab() {
160
- $premium_tab_template = YITH_WCAS_TEMPLATE_PATH . '/admin/' . $this->_premium;
161
- if ( file_exists( $premium_tab_template ) ) {
162
- include_once $premium_tab_template;
163
- }
164
-
165
- }
166
-
167
- /**
168
- * Add the action links to plugin admin page
169
- *
170
- * @param string $new_row_meta_args Plugin Meta New args.
171
- * @param string $plugin_meta Plugin Meta.
172
- * @param string $plugin_file Plugin file.
173
- * @param array $plugin_data Plugin data.
174
- * @param string $status Status.
175
- * @param string $init_file Init file.
176
- *
177
- * @return array
178
- * @since 1.0
179
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
180
- * @use plugin_row_meta
181
- */
182
- public function plugin_row_meta( $new_row_meta_args, $plugin_meta, $plugin_file, $plugin_data, $status, $init_file = 'YITH_WCAS_FREE_INIT' ) {
183
- if ( defined( $init_file ) && constant( $init_file ) === $plugin_file ) {
184
- $new_row_meta_args['slug'] = YITH_WCAS_SLUG;
185
- }
186
-
187
- return $new_row_meta_args;
188
- }
189
-
190
-
191
-
192
- /**
193
- * Get the premium landing uri
194
- *
195
- * @since 1.0.0
196
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
197
- * @return string The premium landing link
198
- */
199
- public function get_premium_landing_uri() {
200
- return $this->_premium_landing;
201
- }
202
-
203
- }
204
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
class.yith-wcas-frontend.php DELETED
@@ -1,65 +0,0 @@
1
- <?php
2
- /**
3
- * Frontend class
4
- *
5
- * @author YITH
6
- * @package YITH WooCommerce Ajax Search
7
- * @version 1.1.1
8
- */
9
-
10
- if ( ! defined( 'YITH_WCAS' ) ) {
11
- exit; } // Exit if accessed directly
12
-
13
- if ( ! class_exists( 'YITH_WCAS_Frontend' ) ) {
14
- /**
15
- * Admin class.
16
- * The class manage all the Frontend behaviors.
17
- *
18
- * @since 1.0.0
19
- */
20
- class YITH_WCAS_Frontend {
21
-
22
- /**
23
- * Constructor
24
- *
25
- * @access public
26
- * @since 1.0.0
27
- */
28
- public function __construct( ) {
29
-
30
- // custom styles and javascript.
31
- add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles_scripts' ) );
32
- }
33
-
34
- /**
35
- * Enqueue styles and scripts
36
- *
37
- * @access public
38
- * @return void
39
- * @since 1.0.0
40
- */
41
- public function enqueue_styles_scripts() {
42
- $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
43
- wp_register_script( 'yith_autocomplete', YITH_WCAS_URL . 'assets/js/yith-autocomplete' . $suffix . '.js', array( 'jquery' ), '1.2.7', true );
44
- wp_register_script( 'yith_wcas_jquery-autocomplete', YITH_WCAS_URL . 'assets/js/devbridge-jquery-autocomplete' . $suffix . '.js', array( 'jquery' ), '1.2.7', true );
45
-
46
- wp_register_script( 'yith_wcas_frontend', YITH_WCAS_URL . 'assets/js/frontend' . $suffix . '.js', array( 'jquery' ), '1.0', true );
47
-
48
- $css = file_exists( get_stylesheet_directory() . '/woocommerce/yith_ajax_search.css' ) ? get_stylesheet_directory_uri() . '/woocommerce/yith_ajax_search.css' : YITH_WCAS_URL . 'assets/css/yith_wcas_ajax_search.css';
49
- wp_enqueue_style( 'yith_wcas_frontend', $css, array(), YITH_WCAS_VERSION );
50
-
51
- wp_localize_script(
52
- 'yith_wcas_frontend',
53
- 'yith_wcas_params',
54
- array(
55
- 'loading' => YITH_WCAS_ASSETS_IMAGES_URL . 'ajax-loader.gif',
56
- 'ajax_url' => admin_url( 'admin-ajax.php' ),
57
-
58
- )
59
- );
60
-
61
- wp_enqueue_script( 'yith_autocomplete' );
62
-
63
- }
64
- }
65
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
class.yith-wcas.php DELETED
@@ -1,227 +0,0 @@
1
- <?php
2
- /**
3
- * Main class
4
- *
5
- * @author YITH
6
- * @package YITH WooCommerce Ajax Search
7
- * @version 1.1.1
8
- */
9
-
10
- if ( ! defined( 'YITH_WCAS' ) ) {
11
- exit;
12
- } // Exit if accessed directly
13
-
14
- if ( ! class_exists( 'YITH_WCAS' ) ) {
15
- /**
16
- * YITH WooCommerce Ajax Search
17
- *
18
- * @since 1.0.0
19
- */
20
- class YITH_WCAS {
21
-
22
- /**
23
- * Plugin object
24
- *
25
- * @var string
26
- * @since 1.0.0
27
- */
28
- public $obj = null;
29
-
30
- /**
31
- * Constructor
32
- *
33
- * @return mixed|YITH_WCAS_Admin|YITH_WCAS_Frontend
34
- * @since 1.0.0
35
- */
36
- public function __construct() {
37
-
38
- $this->obj = false;
39
-
40
- // Load Plugin Framework.
41
- if ( ! isset( $_REQUEST['action'] ) || 'yith_ajax_search_products' !== $_REQUEST['action'] ) {
42
- add_action( 'plugins_loaded', array( $this, 'plugin_fw_loader' ), 15 );
43
-
44
- if ( is_admin() ) {
45
- $this->obj = new YITH_WCAS_Admin();
46
-
47
- } else {
48
- $this->obj = new YITH_WCAS_Frontend();
49
- }
50
- } else {
51
- if ( class_exists( 'YITH_JetPack' ) ) {
52
- include_once YJP_DIR . 'plugin-fw/yit-woocommerce-compatibility.php';
53
- } else {
54
- include_once YITH_WCAS_DIR . 'plugin-fw/yit-woocommerce-compatibility.php';
55
- }
56
- }
57
-
58
- // actions.
59
- add_action( 'widgets_init', array( $this, 'registerWidgets' ) );
60
-
61
- add_action( 'wp_ajax_yith_ajax_search_products', array( $this, 'ajax_search_products' ) );
62
- add_action( 'wp_ajax_nopriv_yith_ajax_search_products', array( $this, 'ajax_search_products' ) );
63
-
64
- // register shortcode.
65
- add_shortcode( 'yith_woocommerce_ajax_search', array( $this, 'add_woo_ajax_search_shortcode' ) );
66
-
67
- if ( defined('ELEMENTOR_VERSION') ) {
68
- require_once( YITH_WCAS_DIR . 'compatibility/elementor/class.yith-wcas-elementor.php');
69
- }
70
-
71
- return $this->obj;
72
- }
73
-
74
-
75
- /**
76
- * Load Plugin Framework
77
- *
78
- * @since 1.0
79
- * @access public
80
- * @return void
81
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
82
- */
83
- public function plugin_fw_loader() {
84
- if ( ! defined( 'YIT_CORE_PLUGIN' ) ) {
85
- global $plugin_fw_data;
86
- if ( ! empty( $plugin_fw_data ) ) {
87
- $plugin_fw_file = array_shift( $plugin_fw_data );
88
- require_once $plugin_fw_file;
89
- }
90
- }
91
- }
92
-
93
-
94
-
95
- /**
96
- * Load template for [yith_woocommerce_ajax_search] shortcode
97
- *
98
- * @access public
99
- *
100
- * @param array $args Array of arguments.
101
- *
102
- * @return mixed
103
- * @since 1.0.0
104
- */
105
- public function add_woo_ajax_search_shortcode( $args = array() ) {
106
- $args = shortcode_atts( array(), $args );
107
- // for WC 3.6.0.
108
- unset( $args['template'] );
109
-
110
- ob_start();
111
- $wc_get_template = function_exists( 'wc_get_template' ) ? 'wc_get_template' : 'woocommerce_get_template';
112
- $wc_get_template( 'yith-woocommerce-ajax-search.php', $args, '', YITH_WCAS_DIR . 'templates/' );
113
- return ob_get_clean();
114
- }
115
-
116
- /**
117
- * Load and register widgets
118
- *
119
- * @access public
120
- * @since 1.0.0
121
- */
122
- public function registerWidgets() {
123
- register_widget( 'YITH_WCAS_Ajax_Search_Widget' );
124
- }
125
-
126
-
127
- /**
128
- * Perform ajax search products
129
- */
130
- public function ajax_search_products() {
131
- global $woocommerce;
132
- $time_start = getmicrotime();
133
- $transient_enabled = get_option( 'yith_wcas_enable_transient', 'no' );
134
- $transient_duration = get_option( 'yith_wcas_transient_duration', 12 );
135
-
136
- $search_keyword = sanitize_text_field( wp_unslash( $_REQUEST['query'] ) );
137
-
138
- $ordering_args = $woocommerce->query->get_catalog_ordering_args( 'title', 'asc' );
139
- $suggestions = array();
140
-
141
- $transient_name = 'ywcas_' . $search_keyword;
142
- $suggestions = get_transient( $transient_name );
143
- if ( 'no' === $transient_enabled || false === $suggestions ) {
144
- $args = array(
145
- 's' => apply_filters( 'yith_wcas_ajax_search_products_search_query', $search_keyword ),
146
- 'post_type' => 'product',
147
- 'post_status' => 'publish',
148
- 'ignore_sticky_posts' => 1,
149
- 'orderby' => $ordering_args['orderby'],
150
- 'order' => $ordering_args['order'],
151
- 'posts_per_page' => apply_filters( 'yith_wcas_ajax_search_products_posts_per_page', get_option( 'yith_wcas_posts_per_page' ) ),
152
- 'suppress_filters' => false,
153
- );
154
-
155
- if ( isset( $_REQUEST['product_cat'] ) ) {
156
- $args['tax_query'] = array(
157
- 'relation' => 'AND',
158
- array(
159
- 'taxonomy' => 'product_cat',
160
- 'field' => 'slug',
161
- 'terms' => sanitize_text_field( wp_unslash( $_REQUEST['product_cat'] ) ),
162
- ),
163
- );
164
- }
165
-
166
- if ( version_compare( WC()->version, '2.7.0', '<' ) ) {
167
- $args['meta_query'] = array(
168
- array(
169
- 'key' => '_visibility',
170
- 'value' => array( 'search', 'visible' ),
171
- 'compare' => 'IN',
172
- ),
173
- );
174
- } else {
175
- $product_visibility_term_ids = wc_get_product_visibility_term_ids();
176
- $args['tax_query'][] = array(
177
- 'taxonomy' => 'product_visibility',
178
- 'field' => 'term_taxonomy_id',
179
- 'terms' => $product_visibility_term_ids['exclude-from-search'],
180
- 'operator' => 'NOT IN',
181
- );
182
- }
183
-
184
- $products = get_posts( $args );
185
-
186
- if ( ! empty( $products ) ) {
187
- foreach ( $products as $post ) {
188
- $product = wc_get_product( $post );
189
-
190
- $suggestions[] = apply_filters(
191
- 'yith_wcas_suggestion',
192
- array(
193
- 'id' => $product->get_id(),
194
- 'value' => wp_strip_all_tags( $product->get_title() ),
195
- 'url' => $product->get_permalink(),
196
- ),
197
- $product
198
- );
199
- }
200
- } else {
201
- $suggestions[] = array(
202
- 'id' => - 1,
203
- 'value' => __( 'No results', 'yith-woocommerce-ajax-search' ),
204
- 'url' => '',
205
- );
206
- }
207
- wp_reset_postdata();
208
-
209
- if ( 'yes' === $transient_enabled ) {
210
- set_transient( $transient_name, $suggestions, $transient_duration * HOUR_IN_SECONDS );
211
- }
212
- }
213
-
214
- $time_end = getmicrotime();
215
- $time = $time_end - $time_start;
216
- $suggestions = array(
217
- 'suggestions' => $suggestions,
218
- 'time' => $time,
219
- );
220
- echo wp_json_encode( $suggestions );
221
- die();
222
-
223
- }
224
-
225
-
226
- }
227
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
compatibility/elementor/class.yith-wcas-elementor.php DELETED
@@ -1,85 +0,0 @@
1
- <?php
2
- /**
3
- * This file belongs to the YIT Plugin Framework.
4
- *
5
- * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
- * that is bundled with this package in the file LICENSE.txt.
7
- * It is also available through the world-wide-web at this URL:
8
- * http://www.gnu.org/licenses/gpl-3.0.txt
9
- *
10
- * @package YITH WooCommerce Ajax Search Premium
11
- */
12
-
13
- if ( ! defined( 'ABSPATH' ) || ! defined( 'YITH_WCAS_VERSION' ) ) {
14
- exit; // Exit if accessed directly.
15
- }
16
-
17
- /**
18
- * Implements the YITH_WCAS_Elementor class.
19
- *
20
- * @class YITH_WCAS_Elementor
21
- * @package YITH
22
- * @since 1.3.6
23
- * @author YITH
24
- */
25
- if ( ! class_exists( 'YITH_WCAS_Elementor' ) ) {
26
-
27
- /**
28
- * Class YITH_WCAS_Elementor
29
- */
30
- class YITH_WCAS_Elementor {
31
- /**
32
- * Single instance of the class
33
- *
34
- * @var YITH_WCAS_Elementor
35
- */
36
-
37
- protected static $instance;
38
-
39
- /**
40
- * Returns single instance of the class
41
- *
42
- * @return YITH_WCAS_Elementor
43
- */
44
- public static function get_instance() {
45
- if ( is_null( self::$instance ) ) {
46
- self::$instance = new self();
47
- }
48
- return self::$instance;
49
- }
50
-
51
- /**
52
- * YITH_WCAS_Elementor constructor.
53
- */
54
- public function __construct() {
55
- if ( did_action( 'elementor/loaded' ) ) {
56
- add_action( 'elementor/widgets/widgets_registered', array( $this, 'elementor_init_widgets' ) );
57
- }
58
- }
59
-
60
- /**
61
- * Init widget
62
- *
63
- * @throws Exception To return Error.
64
- */
65
- public function elementor_init_widgets() {
66
- // Include Widget files.
67
- require_once YITH_WCAS_DIR . 'compatibility/elementor/class.yith-wcas-search-form-elementor.php';
68
-
69
- // Register widget.
70
- \Elementor\Plugin::instance()->widgets_manager->register_widget_type( new \YITH_WCAS_Search_Form_Elementor_Widget() );
71
- }
72
- }
73
-
74
- }
75
-
76
- /**
77
- * Unique access to instance of YITH_WCAS_Elementor class
78
- *
79
- * @return YITH_WCAS_Elementor
80
- */
81
- function YITH_WCAS_Elementor() {
82
- return YITH_WCAS_Elementor::get_instance();
83
- }
84
-
85
- YITH_WCAS_Elementor();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
compatibility/elementor/class.yith-wcas-search-form-elementor.php DELETED
@@ -1,115 +0,0 @@
1
- <?php
2
- /**
3
- * This file belongs to the YIT Plugin Framework.
4
- *
5
- * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
- * that is bundled with this package in the file LICENSE.txt.
7
- * It is also available through the world-wide-web at this URL:
8
- * http://www.gnu.org/licenses/gpl-3.0.txt
9
- *
10
- * @package YITH WooCommerce Ajax Search Premium
11
- */
12
-
13
- if ( ! defined( 'ABSPATH' ) || ! defined( 'YITH_WCAS_VERSION' ) ) {
14
- exit; // Exit if accessed directly.
15
- }
16
-
17
- use Elementor\Controls_Manager;
18
-
19
- /**
20
- * Class YITH_WCAS_Search_Form_Elementor_Widget
21
- */
22
- class YITH_WCAS_Search_Form_Elementor_Widget extends \Elementor\Widget_Base {
23
-
24
-
25
- /**
26
- * Return the name of widget.
27
- *
28
- * @return string
29
- */
30
- public function get_name() {
31
- return 'yith-wcas-search-form';
32
- }
33
-
34
- /**
35
- * Return the title.
36
- *
37
- * @return string|void
38
- */
39
- public function get_title() {
40
- return __( 'YITH WooCommerce Ajax Search', 'yith-woocommerce-ajax-search' );
41
- }
42
-
43
- /**
44
- * Return the icon.
45
- *
46
- * @return string
47
- */
48
- public function get_icon() {
49
- return 'eicon-search';
50
- }
51
-
52
- /**
53
- * Return the categories.
54
- *
55
- * @return array
56
- */
57
- public function get_categories() {
58
- return array( 'yith', 'general' );
59
- }
60
-
61
- /**
62
- * Return the keywords.
63
- *
64
- * @return array
65
- */
66
- public function get_keywords() {
67
- return array( 'woocommerce', 'shop', 'store', 'search', 'ajax', 'yith' );
68
- }
69
-
70
- /**
71
- * Register controls
72
- */
73
- protected function _register_controls() {
74
- $this->start_controls_section(
75
- 'section_button',
76
- array(
77
- 'label' => __( 'YITH WooCommerce Ajax Search', 'yith-woocommerce-ajax-search' ),
78
- )
79
- );
80
-
81
- $this->add_control(
82
- 'wc_style_warning',
83
- array(
84
- 'type' => Controls_Manager::RAW_HTML,
85
- 'raw' => sprintf(
86
- '%s [<a href="%s">%s</a>].',
87
- __( 'This widget inherits the style from the settings of YITH WooCommerce Ajax Search plugin that you can edit', 'yith-woocommerce-ajax-search' ),
88
- get_admin_url( null, 'admin.php?page=yith_wcas_panel&tab=output' ),
89
- __( 'here', 'yith-woocommerce-ajax-search' )
90
- ),
91
- 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
92
- )
93
- );
94
-
95
-
96
-
97
- $this->end_controls_section();
98
-
99
- }
100
-
101
- /**
102
- * Render the form
103
- */
104
- protected function render() {
105
-
106
- $settings = $this->get_settings_for_display();
107
-
108
- $shortcode = do_shortcode( '[yith_woocommerce_ajax_search]' );
109
- ?>
110
- <div class="elementor-shortcode"><?php echo $shortcode; //phpcs:ignore ?></div>
111
- <?php
112
-
113
- }
114
-
115
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
functions.yith-wcas.php DELETED
@@ -1,23 +0,0 @@
1
- <?php
2
- /**
3
- * Functions
4
- *
5
- * @author YITH
6
- * @package YITH WooCommerce Ajax Search
7
- * @version 1.1.1
8
- */
9
-
10
- if ( ! defined( 'YITH_WCAS' ) ) {
11
- exit;
12
- } // Exit if accessed directly
13
-
14
- /**
15
- * Get microtime.
16
- *
17
- * @return float
18
- */
19
- function getmicrotime() {
20
- list( $usec, $sec ) = explode( ' ', microtime() );
21
-
22
- return ( (float) $usec + (float) $sec );
23
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
init.php CHANGED
@@ -3,13 +3,13 @@
3
  * Plugin Name: YITH WooCommerce Ajax Search
4
  * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-ajax-search/
5
  * Description: <code><strong>YITH WooCommerce Ajax Search</strong></code> is the plugin that allows you to search for a specific product by inserting a few characters. Thanks to <strong>Ajax Search</strong>, users can quickly find the contents they are interested in without wasting time among site pages. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
- * Version: 1.7.9
7
  * Author: YITH
8
  * Author URI: https://yithemes.com/
9
  * Text Domain: yith-woocommerce-ajax-search
10
  * Domain Path: /languages/
11
  * WC requires at least: 3.0.0
12
- * WC tested up to: 4.2.0
13
  */
14
 
15
  /*
@@ -71,7 +71,7 @@ register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
71
  if ( defined( 'YITH_WCAS_VERSION' ) ) {
72
  return;
73
  } else {
74
- define( 'YITH_WCAS_VERSION', '1.7.9' );
75
  }
76
 
77
  if ( ! defined( 'YITH_WCAS_FREE_INIT' ) ) {
3
  * Plugin Name: YITH WooCommerce Ajax Search
4
  * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-ajax-search/
5
  * Description: <code><strong>YITH WooCommerce Ajax Search</strong></code> is the plugin that allows you to search for a specific product by inserting a few characters. Thanks to <strong>Ajax Search</strong>, users can quickly find the contents they are interested in without wasting time among site pages. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
+ * Version: 1.8.0
7
  * Author: YITH
8
  * Author URI: https://yithemes.com/
9
  * Text Domain: yith-woocommerce-ajax-search
10
  * Domain Path: /languages/
11
  * WC requires at least: 3.0.0
12
+ * WC tested up to: 4.4.0
13
  */
14
 
15
  /*
71
  if ( defined( 'YITH_WCAS_VERSION' ) ) {
72
  return;
73
  } else {
74
+ define( 'YITH_WCAS_VERSION', '1.8.0' );
75
  }
76
 
77
  if ( ! defined( 'YITH_WCAS_FREE_INIT' ) ) {
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
  }
@@ -1209,6 +1225,10 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1209
  font-size : 13px;
1210
  }
1211
 
 
 
 
 
1212
  .yith-plugin-ui .select2-container--default .select2-selection--single .select2-selection__arrow:before {
1213
  content : "\e900";
1214
  font-family : 'yith-icon' !important;
@@ -1269,9 +1289,7 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1269
  text-indent : -9999px;
1270
  }
1271
 
1272
-
1273
- .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after,
1274
- .woocommerce .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after,
1275
  .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after {
1276
  float : right;
1277
  color : #fff;
@@ -1282,15 +1300,6 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1282
  text-indent : 0;
1283
  }
1284
 
1285
- .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after {
1286
- color : #000;
1287
- }
1288
-
1289
- .yith-plugin-ui .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after
1290
- .yith-plugin-fw-panel .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:after {
1291
- color : #000;
1292
- }
1293
-
1294
  .yith-plugin-ui .select2-container .select2-selection--multiple,
1295
  .yith-plugin-ui .select2-container--default.select2-container--focus .select2-selection--multiple {
1296
  border : 0;
@@ -1427,8 +1436,9 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1427
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
1428
  border : 1px solid #d8d8d8;
1429
  background-color : #fff;
1430
- width : 60px;
1431
  height : 24px;
 
1432
  }
1433
 
1434
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
@@ -1465,7 +1475,7 @@ span.select2.select2-container.select2-container--default.yith-plugin-fw-select2
1465
  .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:before,
1466
  .yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:before {
1467
  background-color : #98aa36;
1468
- left : 41px;
1469
  }
1470
 
1471
  .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:after,
@@ -2045,8 +2055,8 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
2045
  line-height : 33px;
2046
  }
2047
 
2048
- .yith-plugin-ui .bulkactions {
2049
- margin : 10px 0;
2050
  }
2051
 
2052
  .yith-plugin-ui .form-table td p.yith-section-description {
@@ -2103,6 +2113,7 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
2103
  .yith-plugin-ui span.description {
2104
  margin-top : 10px;
2105
  line-height : 20px;
 
2106
  }
2107
 
2108
  .yith-plugin-fw-option-with-description {
@@ -2307,4 +2318,80 @@ div#ui-datepicker-div.yith-plugin-fw-datepicker-div {
2307
  padding : 0;
2308
  }
2309
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2310
  }
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
  }
1225
  font-size : 13px;
1226
  }
1227
 
1228
+ .wc-wp-version-gte-53 .yith-plugin-ui .select2-container .select2-selection--single .select2-selection__arrow{
1229
+ background-image: none;
1230
+ }
1231
+
1232
  .yith-plugin-ui .select2-container--default .select2-selection--single .select2-selection__arrow:before {
1233
  content : "\e900";
1234
  font-family : 'yith-icon' !important;
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;
1436
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span {
1437
  border : 1px solid #d8d8d8;
1438
  background-color : #fff;
1439
+ width : 58px;
1440
  height : 24px;
1441
+ line-height :14px;
1442
  }
1443
 
1444
  .yith-plugin-ui .yith-plugin-fw-onoff-container input + span:before {
1475
  .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:before,
1476
  .yith-plugin-ui.yith-plugin-fw-onoff-container input.onoffchecked + span:before {
1477
  background-color : #98aa36;
1478
+ left: 38px;
1479
  }
1480
 
1481
  .yith-plugin-ui .yith-plugin-fw-onoff-container input:checked + span:after,
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/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
@@ -3,6 +3,7 @@
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,
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,
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.21
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.27
5
  * Author: YITH
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author Your Inspiration Themes
10
+ * @version 3.4.27
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,32 @@ 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 +228,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 +237,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 +254,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 +390,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 +687,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 +821,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 +878,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-06-26 11:45+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
+ #, fuzzy
35
+ msgid "Default"
36
+ msgstr "Ορίστε Προεπιλεγμένο"
37
+
38
+ #: lib/yit-assets.php:105
39
+ #, fuzzy
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"
228
  msgid "Upload multiple files"
229
  msgstr "Ανέβασμα πολλαπλών αρχείων"
230
 
231
+ #: lib/yit-plugin-panel-wc.php:426
232
  msgid "The changes you have made will be lost if you leave this page."
233
  msgstr ""
234
  "Οι αλλαγές που έχετε δημιουργήσει θα χαθούν αν αφήσετε αυτήν την σελίδα."
237
  msgid "Plugin Settings"
238
  msgstr "Ρυθμίσεις Προσθέτου"
239
 
240
+ #: lib/yit-plugin-panel.php:454 lib/yit-plugin-panel.php:457
241
  msgid "How to install premium version"
242
  msgstr "Πώς να εγκαταστήσετε την προηγμένη έκδοση"
243
 
244
+ #: lib/yit-plugin-panel.php:617 lib/yit-plugin-subpanel.php:151
245
  #: templates/panel/woocommerce/woocommerce-form.php:14
246
  msgid "Save Changes"
247
  msgstr "Αποθήκευση Αλλαγών"
248
 
249
+ #: lib/yit-plugin-panel.php:621 lib/yit-plugin-subpanel.php:154
250
  #: templates/panel/woocommerce/woocommerce-form.php:17
251
  msgid ""
252
  "If you continue with this action, you will reset all options in this page."
254
  "Αν συνεχίσετε με αυτή την ενέργεια θα επαναφέρετε όλες τις επιλογές στη "
255
  "σελίδα."
256
 
257
+ #: lib/yit-plugin-panel.php:624 lib/yit-plugin-subpanel.php:156
258
  msgid "Reset to default"
259
  msgstr "Επαναφορά σε προεπιλεγμένο"
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 "Είστε σίγουρος;"
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
 
271
+ #: lib/yit-plugin-panel.php:824
272
  msgid "Settings saved"
273
  msgstr "Ρυθμίσεις αποθηκεύτηκαν"
274
 
275
+ #: lib/yit-plugin-panel.php:825
276
  msgid "Settings reset"
277
  msgstr "Επαναφορά ρυθμίσεων"
278
 
279
+ #: lib/yit-plugin-panel.php:826
280
  msgid "Element deleted correctly."
281
  msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
282
 
283
+ #: lib/yit-plugin-panel.php:827 lib/yit-plugin-panel.php:828
284
  msgid "Element updated correctly."
285
  msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
286
 
287
+ #: lib/yit-plugin-panel.php:829
288
  msgid "Database imported correctly."
289
  msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
290
 
291
+ #: lib/yit-plugin-panel.php:830
292
  msgid "An error has occurred during import. Please try again."
293
  msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
294
 
295
+ #: lib/yit-plugin-panel.php:831
296
  msgid "The added file is not valid."
297
  msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
298
 
299
+ #: lib/yit-plugin-panel.php:832
300
  msgid "Sorry, import is disabled."
301
  msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
302
 
303
+ #: lib/yit-plugin-panel.php:833
304
  msgid "Sorting successful."
305
  msgstr "Διαλογή επιτυχής."
306
 
307
+ #: lib/yit-plugin-panel.php:1281
308
  msgid "We need your support"
309
  msgstr "Χρειαζόμαστε την υποστήριξή σας"
310
 
311
+ #: lib/yit-plugin-panel.php:1282
312
  msgid "to keep updating and improving the plugin. Please,"
313
  msgstr ""
314
  "για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
315
 
316
+ #: lib/yit-plugin-panel.php:1284
317
  msgid "help us by leaving a five-star rating"
318
  msgstr "βοηθήστε μας αφήνοντας μια βαθμολογία πέντε αστέρων"
319
 
320
+ #: lib/yit-plugin-panel.php:1285
321
  msgid ":) Thanks!"
322
  msgstr ":) Ευχαριστώ!"
323
 
390
  "Παρουσιάστηκε σφάλμα, που πιθανότατα σημαίνει ότι έπεσε το τροφοδοτικό. "
391
  "Προσπαθήστε ξανά αργότερα."
392
 
393
+ #: lib/yith-system-status.php:111
394
  msgid "WordPress Version"
395
  msgstr "Έκδοση WordPress"
396
 
397
+ #: lib/yith-system-status.php:112
398
  msgid "WooCommerce Version"
399
  msgstr "Έκδοση WooCommerce"
400
 
401
+ #: lib/yith-system-status.php:113
402
  msgid "Available Memory"
403
  msgstr "Διαθέσιμη Μνήμη"
404
 
405
+ #: lib/yith-system-status.php:114
406
  msgid "PHP Version"
407
  msgstr "Έκδοση PHP"
408
 
409
+ #: lib/yith-system-status.php:115
410
  msgid "TLS Version"
411
  msgstr "Έκδοση TLS"
412
 
413
+ #: lib/yith-system-status.php:116
414
  msgid "WordPress Cron"
415
  msgstr "WordPress Cron"
416
 
417
+ #: lib/yith-system-status.php:117
418
  msgid "SimpleXML"
419
  msgstr "SimpleXML"
420
 
421
+ #: lib/yith-system-status.php:118
422
  msgid "MultiByte String"
423
  msgstr "MultiByte String"
424
 
425
+ #: lib/yith-system-status.php:119
426
  msgid "ImageMagick Version"
427
  msgstr "Έκδοση ImageMagick"
428
 
429
+ #: lib/yith-system-status.php:120
430
  msgid "GD Library"
431
  msgstr "Βιβλιοθήκη GD"
432
 
433
+ #: lib/yith-system-status.php:121
434
  msgid "Iconv Module"
435
  msgstr "Άρθρωμα Iconv"
436
 
437
+ #: lib/yith-system-status.php:122
438
  msgid "OPCache Save Comments"
439
  msgstr "OPCache Save Comments"
440
 
441
+ #: lib/yith-system-status.php:123
442
  msgid "URL FOpen"
443
  msgstr "URL FOpen"
444
 
445
+ #: lib/yith-system-status.php:141 lib/yith-system-status.php:142
446
  msgid "System Status"
447
  msgstr "Κατάσταση Συστήματος"
448
 
449
+ #: lib/yith-system-status.php:184
450
  msgid "YITH Plugins"
451
  msgstr "Πρόσθετα YITH"
452
 
453
+ #: lib/yith-system-status.php:192
454
  msgid "WooCommerce"
455
  msgstr "WooCommerce"
456
 
457
+ #: lib/yith-system-status.php:330
458
  msgid "Warning!"
459
  msgstr "Προσοχή!"
460
 
461
+ #. translators: %1$s open link tag, %2$s open link tag
462
+ #: lib/yith-system-status.php:334
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
  "Ο έλεγχος συστήματος έχει εντοπίσει κάποια προβλήματα συμβατότητας στην "
468
+ "εγκατάστασή σας.%1$sΚάντε κλικ εδώ%2$s για να μάθετε περισσότερα"
469
+
470
+ #: lib/yith-system-status.php:473
471
+ msgid "Enabled"
472
+ msgstr "Ενεργοποιημένο"
473
+
474
+ #: lib/yith-system-status.php:473
475
+ msgid "Disabled"
476
+ msgstr "Απενεργοποιημένο"
477
+
478
+ #: lib/yith-system-status.php:478
479
+ msgid "N/A"
480
+ msgstr "N/A"
481
+
482
+ #. translators: %1$s plugin name, %2$s requirement name
483
+ #: lib/yith-system-status.php:506
484
+ msgid "%1$s needs %2$s enabled"
485
+ msgstr "%1$s χρειάζεται %2$s ενεργοποιημένο"
486
+
487
+ #. translators: %1$s plugin name, %2$s required memory amount
488
+ #: lib/yith-system-status.php:509
489
+ msgid "%1$s needs at least %2$s of available memory"
490
+ msgstr "%1$s χρειάζεται τουλάχιστον %2$s διαθέσιμης μνήμης"
491
+
492
+ #. translators: %1$s plugin name, %2$s version number
493
+ #: lib/yith-system-status.php:512
494
+ msgid "%1$s needs at least %2$s version"
495
+ msgstr "%1$s χρειάζεται τουλάχιστον %2$s έκδοση"
496
+
497
+ #: lib/yith-system-status.php:537
498
+ msgid ""
499
+ "Update it to the latest version in order to benefit of all new features and "
500
+ "security updates."
501
+ msgstr ""
502
+ "Κάντε αναβάθμιση της τελευταίας έκδοσης για να επωφεληθείτε από τα νέα "
503
+ "χαρακτηριστικά και τις αναβαθμίσεις προστασίας."
504
+
505
+ #: lib/yith-system-status.php:541 lib/yith-system-status.php:547
506
+ msgid "Contact your hosting company in order to update it."
507
+ msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να αναβαθμίσετε."
508
+
509
+ #: lib/yith-system-status.php:545
510
+ msgid "Contact your hosting company in order to install it."
511
+ msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να το ενεργοποιήσετε."
512
+
513
+ #. translators: %1$s code, %2$s file name
514
+ #: lib/yith-system-status.php:552
515
+ msgid "Remove %1$s from %2$s file"
516
+ msgstr "Αφαίρεση %1$s από αρχείο %2$s"
517
+
518
+ #: lib/yith-system-status.php:560
519
+ msgid "Contact your hosting company in order to enable it."
520
+ msgstr "Επικοινωνήστε με την εταιρεία hosting σας για να ενεργοποιήσετε."
521
+
522
+ #. translators: %1$s opening link tag, %2$s closing link tag
523
+ #: lib/yith-system-status.php:564 lib/yith-system-status.php:588
524
+ msgid ""
525
+ "Read more %1$shere%2$s or contact your hosting company in order to increase "
526
+ "it."
527
+ msgstr ""
528
+ "Μάθετε περισσότερα %1$sεδώ%2$s ή επικοινωνήστε με την εταιρεία hosting σας "
529
+ "για να το βελτιώσετε."
530
+
531
+ #. translators: %s recommended memory amount
532
+ #: lib/yith-system-status.php:585
533
+ msgid ""
534
+ "For optimal functioning of our plugins, we suggest setting at least %s of "
535
+ "available memory"
536
+ msgstr ""
537
+ "Για την βέλτιστη λειτουργικότητα των προσθέτων μας, προτείνουμε να ορίσετε "
538
+ "τουλάχιστον %s διαθέσιμης μνήμης"
539
+
540
+ #. translators: %1$s TLS label, %2$s cURL label
541
+ #: lib/yith-system-status.php:593
542
+ msgid ""
543
+ "The system check cannot determine which %1$s version is installed because "
544
+ "%2$s module is disabled. Ask your hosting company to enable it."
545
+ msgstr ""
546
+ "Το σύστημα δεν μπορεί να καθορίσει ποια %1$s έκδοση έχει εγκατασταθεί γιατί "
547
+ "το %2$s άρθρωμα είναι απενεργοποιημένο. Ζητήστε από την εταιρεία hosting σας "
548
+ "να το ενεργοποιήσει."
549
+
550
+ #. translators: %1$s TLS label
551
+ #: lib/yith-system-status.php:596
552
+ msgid ""
553
+ "The system check cannot determine which %1$s version is installed due to a "
554
+ "connection issue between your site and our server."
555
+ msgstr ""
556
+ "Ο έλεγχος συστήματος δεν μπορεί να διευκρινήσει ποια έκδοση %1$s έχει "
557
+ "εγκατασταθεί λόγω προβλήματος σύνδεσης ανάμεσα στον ιστότοπο σας και τον "
558
+ "διακομιστή μας."
559
 
560
  #: templates/fields/ajax-customers.php:57
561
  msgid "Search Customers"
687
  msgid "Reset Defaults"
688
  msgstr "Επαναφορά Προεπιλεγμένων"
689
 
690
+ #: templates/sysinfo/system-information-panel.php:39
691
  msgid "YITH System Information"
692
  msgstr "Σύστημα Πληροφοριών YITH"
693
 
694
+ #: templates/sysinfo/system-information-panel.php:50
695
+ msgid "WP debug.log file"
696
+ msgstr "Αρχείο WP debug.log"
 
 
 
 
 
 
 
 
697
 
698
+ #: templates/sysinfo/system-information-panel.php:54
699
+ msgid "PHP error_log file"
700
+ msgstr "Αρχείο PHP error_log"
701
 
702
+ #: templates/sysinfo/system-information-panel.php:59
703
+ #: templates/sysinfo/system-information-panel.php:83
704
+ msgid "Back to System panel"
705
+ msgstr "Πίσω στο πάνελ Συστήματος"
706
 
707
  #: templates/sysinfo/system-information-panel.php:96
708
+ msgid "Back to top"
709
+ msgstr "Πίσω στην κορυφή"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
710
 
711
+ #: templates/sysinfo/system-information-panel.php:104
712
+ msgid "Site URL"
713
+ msgstr "URL Ιστοσελίδας"
714
 
715
+ #: templates/sysinfo/system-information-panel.php:112
716
+ msgid "Output IP Address"
717
+ msgstr "Διεύθυνση IP Παραγωγής"
718
 
719
+ #: templates/sysinfo/system-information-panel.php:120
720
+ msgid "Defined WP_CACHE"
721
+ msgstr "Καθορισμένο WP_CACHE"
722
 
723
+ #: templates/sysinfo/system-information-panel.php:123
724
+ msgid "Yes"
725
+ msgstr "Ναι"
 
 
 
 
 
726
 
727
+ #: templates/sysinfo/system-information-panel.php:123
728
+ msgid "No"
729
+ msgstr "Όχι"
 
 
 
 
730
 
731
+ #: templates/sysinfo/system-information-panel.php:159
732
  msgid "Show full PHPInfo"
733
  msgstr "Πλήρης εμφάνιση PHPInfo"
734
 
735
+ #: templates/sysinfo/system-information-panel.php:167
736
+ msgid "Show log files"
737
+ msgstr "Εμφάνιση αρχείων καταγραφής"
 
 
 
 
738
 
739
  #: yit-plugin.php:194
740
  msgid "License"
821
  #: templates/fields/dimensions.php:16
822
  msgctxt "Position in the \"Dimensions\" field"
823
  msgid "Top"
824
+ msgstr "Κορυφή"
825
 
826
  #: templates/fields/dimensions.php:17
827
  msgctxt "Position in the \"Dimensions\" field"
828
  msgid "Right"
829
+ msgstr "Δεξιά"
830
 
831
  #: templates/fields/dimensions.php:18
832
  msgctxt "Position in the \"Dimensions\" field"
833
  msgid "Bottom"
834
+ msgstr "Κάτω"
835
 
836
  #: templates/fields/dimensions.php:19
837
  msgctxt "Position in the \"Dimensions\" field"
838
  msgid "Left"
839
+ msgstr "Αριστερά"
840
 
841
  #: templates/fields/dimensions.php:117
842
  msgctxt "Tooltip in the \"Dimensions\" field"
843
  msgid "Link values together"
844
+ msgstr "Συνδέστε αξίες"
845
 
846
  #: templates/fields/onoff.php:24
847
  msgctxt "YES/NO button: use MAX 3 characters!"
878
  msgid "Settings"
879
  msgstr "Ρυθμίσεις"
880
 
881
+ #~ msgid ""
882
+ #~ "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
883
+ #~ "install it."
884
+ #~ msgstr ""
885
+ #~ "Το άρθρωμα <b>ImageMagick</b> δεν έχει εγκατασταθεί. Ζητήστε από την "
886
+ #~ "εταιρεία hosting σας να το εγκαταστήσει."
887
+
888
  #~ msgctxt "ON/OFF button: use MAX 3 characters!"
889
  #~ msgid "ON"
890
  #~ 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,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:46+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: YIThemes <plugins@yithemes.com>\n"
11
  "Language: it_IT\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\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"
@@ -202,7 +229,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 +237,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 +254,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 +387,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 +683,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,32 +816,32 @@ 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!"
781
  msgid "YES"
782
- msgstr "SI"
783
 
784
  #: templates/fields/onoff.php:25
785
  msgctxt "YES/NO button: use MAX 3 characters!"
@@ -811,6 +873,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 +1210,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 +1279,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-06-23 23:17+0200\n"
9
  "Last-Translator: \n"
10
  "Language-Team: YIThemes <plugins@yithemes.com>\n"
11
  "Language: it_IT\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.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\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 "Ripristina impostazioni iniziali"
37
+
38
+ #: lib/yit-assets.php:105
39
+ #, fuzzy
40
+ msgid "Select default color"
41
+ msgstr "Ripristina impostazioni iniziali"
42
+
43
+ #: lib/yit-assets.php:106
44
+ #, fuzzy
45
+ msgid "Select Color"
46
+ msgstr "Seleziona tutto"
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"
229
  msgid "Upload multiple files"
230
  msgstr "Carica file multipli"
231
 
232
+ #: lib/yit-plugin-panel-wc.php:426
233
  msgid "The changes you have made will be lost if you leave this page."
234
  msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
235
 
237
  msgid "Plugin Settings"
238
  msgstr "Impostazioni plugin"
239
 
240
+ #: lib/yit-plugin-panel.php:454 lib/yit-plugin-panel.php:457
241
  msgid "How to install premium version"
242
  msgstr "Come installare la versione premium"
243
 
244
+ #: lib/yit-plugin-panel.php:617 lib/yit-plugin-subpanel.php:151
245
  #: templates/panel/woocommerce/woocommerce-form.php:14
246
  msgid "Save Changes"
247
  msgstr "Salva modifiche"
248
 
249
+ #: lib/yit-plugin-panel.php:621 lib/yit-plugin-subpanel.php:154
250
  #: templates/panel/woocommerce/woocommerce-form.php:17
251
  msgid ""
252
  "If you continue with this action, you will reset all options in this page."
254
  "Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
255
  "reimpostate."
256
 
257
+ #: lib/yit-plugin-panel.php:624 lib/yit-plugin-subpanel.php:156
258
  msgid "Reset to default"
259
  msgstr "Ripristina configurazione predefinita"
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 "Sei sicuro?"
265
 
266
+ #: lib/yit-plugin-panel.php:823
267
  msgid ""
268
  "The element you have entered already exists. Please, enter another name."
269
  msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
270
 
271
+ #: lib/yit-plugin-panel.php:824
272
  msgid "Settings saved"
273
  msgstr "Impostazioni salvate"
274
 
275
+ #: lib/yit-plugin-panel.php:825
276
  msgid "Settings reset"
277
  msgstr "Impostazioni azzerate"
278
 
279
+ #: lib/yit-plugin-panel.php:826
280
  msgid "Element deleted correctly."
281
  msgstr "Elemento rimosso correttamente."
282
 
283
+ #: lib/yit-plugin-panel.php:827 lib/yit-plugin-panel.php:828
284
  msgid "Element updated correctly."
285
  msgstr "Elemento aggiornato correttamente."
286
 
287
+ #: lib/yit-plugin-panel.php:829
288
  msgid "Database imported correctly."
289
  msgstr "Database importato correttamente."
290
 
291
+ #: lib/yit-plugin-panel.php:830
292
  msgid "An error has occurred during import. Please try again."
293
  msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
294
 
295
+ #: lib/yit-plugin-panel.php:831
296
  msgid "The added file is not valid."
297
  msgstr "Il file aggiunto non è valido."
298
 
299
+ #: lib/yit-plugin-panel.php:832
300
  msgid "Sorry, import is disabled."
301
  msgstr "Ci dispiace, l'importazione è disabilitata."
302
 
303
+ #: lib/yit-plugin-panel.php:833
304
  msgid "Sorting successful."
305
  msgstr "Ordinamento effettuato con successo."
306
 
307
+ #: lib/yit-plugin-panel.php:1281
308
  msgid "We need your support"
309
  msgstr "Abbiamo bisogno del tuo sostegno"
310
 
311
+ #: lib/yit-plugin-panel.php:1282
312
  msgid "to keep updating and improving the plugin. Please,"
313
  msgstr "per poter continuare ad aggiornare e migliorare il plugin."
314
 
315
+ #: lib/yit-plugin-panel.php:1284
316
  msgid "help us by leaving a five-star rating"
317
  msgstr "Puoi darci una mano lasciando una recensione a 5 stelle"
318
 
319
+ #: lib/yit-plugin-panel.php:1285
320
  msgid ":) Thanks!"
321
  msgstr ":) Grazie!"
322
 
387
  "Si è verificato un errore probabilmente causato dal feed non disponibile. "
388
  "Riprova più tardi."
389
 
390
+ #: lib/yith-system-status.php:111
391
  msgid "WordPress Version"
392
  msgstr "Versione di WordPress"
393
 
394
+ #: lib/yith-system-status.php:112
395
  msgid "WooCommerce Version"
396
  msgstr "Versione di WooCommerce"
397
 
398
+ #: lib/yith-system-status.php:113
399
  msgid "Available Memory"
400
  msgstr "Memoria disponibile"
401
 
402
+ #: lib/yith-system-status.php:114
403
  msgid "PHP Version"
404
  msgstr "Versione PHP"
405
 
406
+ #: lib/yith-system-status.php:115
407
  msgid "TLS Version"
408
  msgstr "Versione TLS"
409
 
410
+ #: lib/yith-system-status.php:116
411
  msgid "WordPress Cron"
412
  msgstr "Cron WordPress"
413
 
414
+ #: lib/yith-system-status.php:117
415
  msgid "SimpleXML"
416
  msgstr "SimpleXML"
417
 
418
+ #: lib/yith-system-status.php:118
419
  msgid "MultiByte String"
420
  msgstr "MultiByte String"
421
 
422
+ #: lib/yith-system-status.php:119
423
  msgid "ImageMagick Version"
424
  msgstr "Versione di ImageMagick"
425
 
426
+ #: lib/yith-system-status.php:120
427
  msgid "GD Library"
428
  msgstr "GD Library"
429
 
430
+ #: lib/yith-system-status.php:121
431
  msgid "Iconv Module"
432
  msgstr "Iconv Module"
433
 
434
+ #: lib/yith-system-status.php:122
435
  msgid "OPCache Save Comments"
436
  msgstr "OPCache Save Comments"
437
 
438
+ #: lib/yith-system-status.php:123
439
  msgid "URL FOpen"
440
  msgstr "URL FOpen"
441
 
442
+ #: lib/yith-system-status.php:141 lib/yith-system-status.php:142
443
  msgid "System Status"
444
  msgstr "Stato del sistema"
445
 
446
+ #: lib/yith-system-status.php:184
447
  msgid "YITH Plugins"
448
  msgstr "Plugin YITH"
449
 
450
+ #: lib/yith-system-status.php:192
451
  msgid "WooCommerce"
452
  msgstr "WooCommerce"
453
 
454
+ #: lib/yith-system-status.php:330
455
  msgid "Warning!"
456
  msgstr "Attenzione!"
457
 
458
+ #. translators: %1$s open link tag, %2$s open link tag
459
+ #: lib/yith-system-status.php:334
460
  msgid ""
461
+ "The system check has detected some compatibility issues on your installation."
462
+ "%1$sClick here%2$s to know more"
463
  msgstr ""
464
  "Il controllo di sistema ha individuato delle incompatibilità con la tua "
465
+ "installazione. %1$sVedi qui%2$s per maggiori dettagli"
466
+
467
+ #: lib/yith-system-status.php:473
468
+ msgid "Enabled"
469
+ msgstr "Abilitato"
470
+
471
+ #: lib/yith-system-status.php:473
472
+ msgid "Disabled"
473
+ msgstr "Disabilitato"
474
+
475
+ #: lib/yith-system-status.php:478
476
+ msgid "N/A"
477
+ msgstr "N.D."
478
+
479
+ #. translators: %1$s plugin name, %2$s requirement name
480
+ #: lib/yith-system-status.php:506
481
+ msgid "%1$s needs %2$s enabled"
482
+ msgstr "%1$s necessita dell'attivazione di %2$s"
483
+
484
+ #. translators: %1$s plugin name, %2$s required memory amount
485
+ #: lib/yith-system-status.php:509
486
+ msgid "%1$s needs at least %2$s of available memory"
487
+ msgstr "%1$s necessita di almeno %2$s di memoria disponibile"
488
+
489
+ #. translators: %1$s plugin name, %2$s version number
490
+ #: lib/yith-system-status.php:512
491
+ msgid "%1$s needs at least %2$s version"
492
+ msgstr "%1$s necessita almeno della versione %2$s"
493
+
494
+ #: lib/yith-system-status.php:537
495
+ msgid ""
496
+ "Update it to the latest version in order to benefit of all new features and "
497
+ "security updates."
498
+ msgstr ""
499
+ "Aggiorna all'ultima versione per beneficiare di tutte le nuove funzionalità "
500
+ "e degli aggiornamenti di sicurezza."
501
+
502
+ #: lib/yith-system-status.php:541 lib/yith-system-status.php:547
503
+ msgid "Contact your hosting company in order to update it."
504
+ msgstr "Contatta il tuo servizio hosting per aggiornarlo."
505
+
506
+ #: lib/yith-system-status.php:545
507
+ msgid "Contact your hosting company in order to install it."
508
+ msgstr "Per installarlo contatta il tuo servizio di hosting."
509
+
510
+ #. translators: %1$s code, %2$s file name
511
+ #: lib/yith-system-status.php:552
512
+ msgid "Remove %1$s from %2$s file"
513
+ msgstr "Rimuovi %1$s dal file %2$s"
514
+
515
+ #: lib/yith-system-status.php:560
516
+ msgid "Contact your hosting company in order to enable it."
517
+ msgstr "Per attivarlo contatta il tuo servizio di hosting."
518
+
519
+ #. translators: %1$s opening link tag, %2$s closing link tag
520
+ #: lib/yith-system-status.php:564 lib/yith-system-status.php:588
521
+ msgid ""
522
+ "Read more %1$shere%2$s or contact your hosting company in order to increase "
523
+ "it."
524
+ msgstr ""
525
+ "Per maggiori informazioni %1$sleggi questo%2$s oppure contatta il tuo host "
526
+ "per un upgrade."
527
+
528
+ #. translators: %s recommended memory amount
529
+ #: lib/yith-system-status.php:585
530
+ msgid ""
531
+ "For optimal functioning of our plugins, we suggest setting at least %s of "
532
+ "available memory"
533
+ msgstr ""
534
+ "Per il funzionamento ottimale dei nostri plugin consigliamo di impostare "
535
+ "almeno %s della memoria disponibile"
536
+
537
+ #. translators: %1$s TLS label, %2$s cURL label
538
+ #: lib/yith-system-status.php:593
539
+ msgid ""
540
+ "The system check cannot determine which %1$s version is installed because "
541
+ "%2$s module is disabled. Ask your hosting company to enable it."
542
+ msgstr ""
543
+ "Non ci è stato possibile determinare quale versione di %1$s è installata in "
544
+ "quanto il modulo %2$s è disattivato. Chiedi al tuo servizio hosting di "
545
+ "attivarlo."
546
+
547
+ #. translators: %1$s TLS label
548
+ #: lib/yith-system-status.php:596
549
+ msgid ""
550
+ "The system check cannot determine which %1$s version is installed due to a "
551
+ "connection issue between your site and our server."
552
+ msgstr ""
553
+ "Non ci è stato possibile determinare quale versione di %1$s è installata a "
554
+ "causa di un problema di connessione fra il tuo sito e il nostro server."
555
 
556
  #: templates/fields/ajax-customers.php:57
557
  msgid "Search Customers"
683
  msgid "Reset Defaults"
684
  msgstr "Ripristina impostazioni iniziali"
685
 
686
+ #: templates/sysinfo/system-information-panel.php:39
687
  msgid "YITH System Information"
688
  msgstr "YITH System Information"
689
 
690
+ #: templates/sysinfo/system-information-panel.php:50
691
+ msgid "WP debug.log file"
692
+ msgstr "WP debug.log file"
693
 
694
+ #: templates/sysinfo/system-information-panel.php:54
695
+ msgid "PHP error_log file"
696
+ msgstr "PHP error_log file"
697
 
698
+ #: templates/sysinfo/system-information-panel.php:59
699
+ #: templates/sysinfo/system-information-panel.php:83
700
+ msgid "Back to System panel"
701
+ msgstr "Torna al pannello di Sistema"
 
 
 
 
 
 
 
702
 
703
  #: templates/sysinfo/system-information-panel.php:96
704
+ msgid "Back to top"
705
+ msgstr "Torna su"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
706
 
707
+ #: templates/sysinfo/system-information-panel.php:104
708
+ msgid "Site URL"
709
+ msgstr "URL del sito"
710
 
711
+ #: templates/sysinfo/system-information-panel.php:112
712
+ msgid "Output IP Address"
713
+ msgstr "Indirizzo IP di output"
714
 
715
+ #: templates/sysinfo/system-information-panel.php:120
716
+ msgid "Defined WP_CACHE"
717
+ msgstr "Defined WP_CACHE"
718
 
719
+ #: templates/sysinfo/system-information-panel.php:123
720
+ msgid "Yes"
721
+ msgstr "Sì"
 
 
 
 
 
722
 
723
+ #: templates/sysinfo/system-information-panel.php:123
724
+ msgid "No"
725
+ msgstr "No"
 
 
 
 
726
 
727
+ #: templates/sysinfo/system-information-panel.php:159
728
  msgid "Show full PHPInfo"
729
  msgstr "Mostra tutto il contenuto di PHPInfo"
730
 
731
+ #: templates/sysinfo/system-information-panel.php:167
732
+ msgid "Show log files"
733
+ msgstr "Mostra i log"
 
 
 
 
734
 
735
  #: yit-plugin.php:194
736
  msgid "License"
737
  msgstr "Chiave di licenza"
738
 
739
  #. Author of the plugin/theme
 
740
  msgid "YITH"
741
  msgstr "YITH"
742
 
816
  #: templates/fields/dimensions.php:16
817
  msgctxt "Position in the \"Dimensions\" field"
818
  msgid "Top"
819
+ msgstr "In alto"
820
 
821
  #: templates/fields/dimensions.php:17
822
  msgctxt "Position in the \"Dimensions\" field"
823
  msgid "Right"
824
+ msgstr "A destra"
825
 
826
  #: templates/fields/dimensions.php:18
827
  msgctxt "Position in the \"Dimensions\" field"
828
  msgid "Bottom"
829
+ msgstr "In basso"
830
 
831
  #: templates/fields/dimensions.php:19
832
  msgctxt "Position in the \"Dimensions\" field"
833
  msgid "Left"
834
+ msgstr "A sinistra"
835
 
836
  #: templates/fields/dimensions.php:117
837
  msgctxt "Tooltip in the \"Dimensions\" field"
838
  msgid "Link values together"
839
+ msgstr "Collega i valori"
840
 
841
  #: templates/fields/onoff.php:24
842
  msgctxt "YES/NO button: use MAX 3 characters!"
843
  msgid "YES"
844
+ msgstr ""
845
 
846
  #: templates/fields/onoff.php:25
847
  msgctxt "YES/NO button: use MAX 3 characters!"
873
  msgid "Settings"
874
  msgstr "Impostazioni"
875
 
876
+ #~ msgid ""
877
+ #~ "<b>ImageMagick</b> module is not installed. Ask your hosting company to "
878
+ #~ "install it."
879
+ #~ msgstr ""
880
+ #~ "Il modulo <b>ImageMagick</b> non è installato. Chiedi al tuo servizio di "
881
+ #~ "hosting di installarlo."
882
+
883
  #~ msgctxt "ON/OFF button: use MAX 3 characters!"
884
  #~ msgid "ON"
885
  #~ msgstr "SÌ"
1210
  #~ msgid "Renew license"
1211
  #~ msgstr "Rinnova la licenza"
1212
 
 
 
 
1213
  #~ msgid "Deselect All"
1214
  #~ msgstr "Deseleziona tutto"
1215
 
1279
  #~ msgid "Theme Icon"
1280
  #~ msgstr "Icona tema"
1281
 
 
 
 
1282
  #~ msgid "Field Title"
1283
  #~ msgstr "Titolo campo"
1284
 
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,12 +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
  if ( version_compare( WC()->version, '2.4.0', '>=' ) ) {
307
  if ( !empty( $yit_options[ $option_key ] ) ) {
308
  foreach ( $yit_options[ $option_key ] as $option ) {
309
  if ( isset( $option[ 'id' ] ) && isset( $_POST[ $option[ 'id' ] ] ) && isset( $option[ 'type' ] ) && !in_array( $option[ 'type' ], self::$wc_type ) ) {
310
- $_POST[ $option[ 'id' ] ] = maybe_serialize( $_POST[ $option[ 'id' ] ] );
311
  }
312
  }
313
  }
@@ -327,7 +329,7 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
327
  }
328
  }
329
 
330
- woocommerce_update_options( $yit_options[ $option_key ] );
331
 
332
  do_action( 'yit_panel_wc_after_update' );
333
 
@@ -339,18 +341,43 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
339
 
340
  $yit_options = $this->get_main_array_options();
341
  $option_key = $this->get_current_option_key();
 
 
 
 
 
342
  foreach ( $yit_options[ $option_key ] as $id => $option ) {
343
- if ( isset( $option[ 'yith-type' ] ) && $option[ 'yith-type' ] == 'multi-colorpicker' && !empty( $option[ 'colorpickers' ] ) ) {
344
- $default = [];
345
- foreach ( $option[ 'colorpickers' ] as $colorpicker ) {
346
- $default[ $colorpicker[ 'id' ] ] = isset( $colorpicker[ 'default' ] ) ? $colorpicker[ 'default' ] : '';
347
- }
348
- update_option( $option[ 'id' ], $default );
349
- } elseif ( isset( $option[ 'default' ] ) ) {
350
- update_option( $option[ 'id' ], $option[ 'default' ] );
351
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
352
  }
353
 
 
 
 
 
 
 
354
  do_action( 'yit_panel_wc_after_reset' );
355
  }
356
  }
@@ -492,8 +519,8 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
492
  * @since 2.0
493
  */
494
  public function maybe_unserialize_panel_data( $value, $option, $raw_value ) {
495
- if ( !version_compare( WC()->version, '2.4.0', '>=' ) || !isset( $option[ 'type' ] ) || in_array( $option[ 'type' ], self::$wc_type ) ) {
496
- return $value;
497
  }
498
 
499
  $yit_options = $this->get_main_array_options();
@@ -619,6 +646,9 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
619
  }
620
  $field[ 'value' ] = $value;
621
 
 
 
 
622
  require( YIT_CORE_PLUGIN_TEMPLATE_PATH . '/panel/woocommerce/woocommerce-option-row.php' );
623
  }
624
  }
@@ -688,5 +718,47 @@ if ( !class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
688
 
689
  parent::print_tabs_nav( $args );
690
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
691
  }
692
  }
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
  }
329
  }
330
  }
331
 
332
+ woocommerce_update_options( $yit_options[ $option_key ] );
333
 
334
  do_action( 'yit_panel_wc_after_update' );
335
 
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 CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "yith-plugin-framewowrk",
3
- "version": "3.4.19",
4
  "description": "YITH Plugin Framework",
5
  "main": "Gruntfile.js",
6
  "scripts": {
1
  {
2
  "name": "yith-plugin-framewowrk",
3
+ "version": "3.4.27",
4
  "description": "YITH Plugin Framework",
5
  "main": "Gruntfile.js",
6
  "scripts": {
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-fixed.php CHANGED
@@ -10,6 +10,7 @@ $defaults = array(
10
  'custom_attributes' => '',
11
  'elements' => [],
12
  'onoff_field' => true,
 
13
 
14
  );
15
  $field = wp_parse_args( $field, $defaults );
@@ -48,10 +49,17 @@ $value = get_option( $name, [] );
48
  <?php foreach ( $elements as $element ):
49
  // build correct name and id
50
  $field_id = $element['id'];
51
- $element['name'] = "{$name}[{$field_id}]";
52
  $element['id'] = "{$id}_{$field_id}";
53
  // get value
54
- $element['value'] = isset( $value[ $field_id ] ) ? $value[ $field_id ] : ( isset( $element['default'] ) ? $element['default'] : '' );
 
 
 
 
 
 
 
55
  ?>
56
  <div class="yith-toggle-content-row <?php echo $element['type'] ?>">
57
  <label for="<?php echo $element['id']; ?>"><?php echo $element['title']; ?></label>
@@ -65,4 +73,4 @@ $value = get_option( $name, [] );
65
  </div>
66
  </div>
67
  </div>
68
- </div>
10
  'custom_attributes' => '',
11
  'elements' => [],
12
  'onoff_field' => true,
13
+ 'save_single_options' => false,
14
 
15
  );
16
  $field = wp_parse_args( $field, $defaults );
49
  <?php foreach ( $elements as $element ):
50
  // build correct name and id
51
  $field_id = $element['id'];
52
+ $element['name'] = false === $save_single_options ? "{$name}[{$field_id}]" : $field_id;
53
  $element['id'] = "{$id}_{$field_id}";
54
  // get value
55
+ $element['value'] = '';
56
+ if( false === $save_single_options ){
57
+ $element['value'] = isset( $value[ $field_id ] ) ? $value[ $field_id ] : ( isset( $element['default'] ) ? $element['default'] : '' );
58
+ }
59
+
60
+ else {
61
+ $element['value'] = get_option( $field_id, $element['default'] );
62
+ }
63
  ?>
64
  <div class="yith-toggle-content-row <?php echo $element['type'] ?>">
65
  <label for="<?php echo $element['id']; ?>"><?php echo $element['title']; ?></label>
73
  </div>
74
  </div>
75
  </div>
76
+ </div>
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/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
 
widgets/class.yith-wcas-ajax-search.php DELETED
@@ -1,104 +0,0 @@
1
- <?php
2
- /**
3
- * Ajax Search Widget
4
- *
5
- * @author YITH
6
- * @package YITH WooCommerce Ajax Search
7
- * @version 1.1.1
8
- */
9
-
10
- if ( ! defined( 'YITH_WCAS' ) ) {
11
- exit; } // Exit if accessed directly
12
-
13
- if ( ! class_exists( 'YITH_WCAS_Ajax_Search_Widget' ) ) {
14
- /**
15
- * YITH WooCommerce Ajax Navigation Widget
16
- *
17
- * @since 1.0.0
18
- */
19
- class YITH_WCAS_Ajax_Search_Widget extends WP_Widget {
20
- /**
21
- * Constructor.
22
- *
23
- * @access public
24
- */
25
- public function __construct() {
26
-
27
- /* Widget variable settings. */
28
- $this->woo_widget_cssclass = 'woocommerce widget_product_search yith_woocommerce_ajax_search';
29
- $this->woo_widget_description = __( 'An Ajax Search box for products only.', 'yith-woocommerce-ajax-search' );
30
- $this->woo_widget_idbase = 'yith_woocommerce_ajax_search';
31
- $this->woo_widget_name = __( 'YITH WooCommerce Ajax Product Search', 'yith-woocommerce-ajax-search' );
32
-
33
- /* Widget settings. */
34
- $widget_ops = array(
35
- 'classname' => $this->woo_widget_cssclass,
36
- 'description' => $this->woo_widget_description,
37
- );
38
-
39
- /* Create the widget. */
40
- parent::__construct( 'yith_woocommerce_ajax_search', $this->woo_widget_name, $widget_ops );
41
- }
42
-
43
-
44
- /**
45
- * Widget function.
46
- *
47
- * @see WP_Widget
48
- * @access public
49
- * @param array $args Array of arguments.
50
- * @param array $instance Array of instance.
51
- * @return void
52
- */
53
- public function widget( $args, $instance ) {
54
-
55
- $title = isset( $instance['title'] ) ? $instance['title'] : '';
56
- $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
57
-
58
- echo $args['before_widget']; // phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped
59
-
60
- if ( $title ) {
61
- echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped
62
- }
63
-
64
- echo do_shortcode( '[yith_woocommerce_ajax_search]' );
65
-
66
- echo $args['after_widget']; // phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped
67
- }
68
-
69
- /**
70
- * Update function.
71
- *
72
- * @see WP_Widget->update
73
- * @access public
74
- * @param array $new_instance New instance.
75
- * @param array $old_instance Old instance.
76
- * @return array
77
- */
78
- public function update( $new_instance, $old_instance ) {
79
- $instance['title'] = wp_strip_all_tags( stripslashes( $new_instance['title'] ) );
80
- return $instance;
81
- }
82
-
83
- /**
84
- * Form function.
85
- *
86
- * @see WP_Widget->form
87
- * @access public
88
- * @param array $instance Instance.
89
- * @return void
90
- */
91
- public function form( $instance ) {
92
- global $wpdb;
93
- ?>
94
- <p><label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title:', 'woocommerce' ); ?></label>
95
- <input type="text" class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" value="
96
- <?php
97
- if ( isset( $instance['title'] ) ) {
98
- echo esc_attr( $instance['title'] );}
99
- ?>
100
- " /></p>
101
- <?php
102
- }
103
- }
104
- }