PluginProbe ʕ •ᴥ•ʔ
Essential Classy Addons for Elementor – 150+ Widgets, Templates & Performance Tools / 3.0.1
Essential Classy Addons for Elementor – 150+ Widgets, Templates & Performance Tools v3.0.1
3.0.59 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 3.0 3.0.1 3.0.10 3.0.11 3.0.12 3.0.13 3.0.14 3.0.15 3.0.16 3.0.18 3.0.2 3.0.20 3.0.21 3.0.22 3.0.23 3.0.24 3.0.25 3.0.26 3.0.27 3.0.28 3.0.29 3.0.3 3.0.30 3.0.31 3.0.32 3.0.33 3.0.34 3.0.35 3.0.36 3.0.37 3.0.38 3.0.39 3.0.4 3.0.40 3.0.41 3.0.42 3.0.43 3.0.44 3.0.45 3.0.46 3.0.47 3.0.48 3.0.49 3.0.5 3.0.50 3.0.51 3.0.52 3.0.53 3.0.54 3.0.55 3.0.56 3.0.57 3.0.58 3.0.6 3.0.7 3.0.8 3.0.9
essential-classy-addons-for-elementor / classes / class-panel-options.php
essential-classy-addons-for-elementor / classes Last commit date
class-helper.php 3 years ago class-loader.php 3 years ago class-panel-options.php 3 years ago widgets-passing-lists.php 3 years ago
class-panel-options.php
1250 lines
1 <?php
2 use Elementor\Plugin;
3 if (!defined('ABSPATH')) {
4 exit;
5 } // Exit if accessed directly
6
7 /**
8 * Plugin options
9 */
10 class EcafePluginOptions {
11
12 private $key = 'ecafe_widgets';
13 protected $metaboxOptions = array();
14 protected $title = '';
15 protected $optionsPage = '';
16 protected $optionsPages = array();
17
18 /**
19 * Constructor
20 */
21 public function __construct() {
22
23 $this->title = esc_html__('Essential Classy', 'essential-classy-addons-for-elementor');
24
25 $this->fields = array();
26 $this->ecafeWidgetList();
27 add_action( 'admin_post_ecafe_widgets_options_save', array( $this,'widgetsSaveFire') );
28 add_action( 'admin_post_ecafe_extension_options_save', array( $this,'extraListSaveOptions') );
29 add_action( 'admin_post_ecafe_wp_performance_options_save', array( $this,'wpPerformanceSaveOptions') );
30 add_action('ecafeWhiteLabelFree', array( $this,'ecafeWhiteLabel'));
31
32
33 $ecafe_extension = get_option( 'ecafe_extension' );
34
35 if(!empty($ecafe_extension) && isset($ecafe_extension['extrasList']) && !empty($ecafe_extension['extrasList'])){
36 if(in_array('ecafe-live-copy',$ecafe_extension['extrasList'])){
37 require ECAFE_LIVECOPY_PATH.'ec-live-copy.php';
38 }
39 }
40
41 $wpPerf = get_option( 'ecafe_wp_performance' );
42
43 if(!empty($wpPerf) && isset($wpPerf['wpperformanceList']) && !empty($wpPerf['wpperformanceList'])){
44
45 //emoji_scripts
46 if(in_array('emoji_scripts',$wpPerf['wpperformanceList'])){
47 add_action( 'init', 'ec_emoji_scripts' );
48 function ec_emoji_scripts() {
49 remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
50 remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
51 remove_action( 'wp_print_styles', 'print_emoji_styles' );
52 remove_action( 'admin_print_styles', 'print_emoji_styles' );
53 remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
54 remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
55 remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
56
57 add_filter('tiny_mce_plugins', function ($plugins) {
58 if (is_array($plugins)) {
59 return array_diff($plugins, array('wpemoji'));
60 } else {
61 return array();
62 }
63 });
64
65 add_filter('wp_resource_hints', function ($urls, $relation_type) {
66 if ('dns-prefetch' === $relation_type) {
67 $emoji_svg_url = apply_filters('emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/');
68
69 $urls = array_diff($urls, array($emoji_svg_url));
70 }
71
72 return $urls;
73 }, 10, 2);
74 }
75 }
76
77 //disable_embeds
78 if(in_array('disable_embeds',$wpPerf['wpperformanceList'])){
79 add_action('init', 'ec_disable_embeds', 9999);
80 function ec_disable_embeds(){
81 global $wp;
82 $wp->public_query_vars = array_diff($wp->public_query_vars, array('embed'));
83 add_filter('embed_oembed_discover', '__return_false');
84 remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
85 remove_action('wp_head', 'wp_oembed_add_discovery_links');
86 remove_action('wp_head', 'wp_oembed_add_host_js');
87 add_filter('tiny_mce_plugins', function( $plugins ) {
88 return array_diff($plugins, array('wpembed'));
89 });
90 add_filter('rewrite_rules_array', function($rules) {
91 foreach($rules as $rule => $rewrite) {
92 if(false !== strpos($rewrite, 'embed=true')) {
93 unset($rules[$rule]);
94 }
95 }
96 return $rules;
97 });
98 remove_filter('pre_oembed_result', 'wp_filter_pre_oembed_result', 10);
99 }
100 }
101
102 //pass_str_mtr
103 if(in_array('pass_str_mtr',$wpPerf['wpperformanceList'])){
104 add_action('wp_print_scripts', function(){
105 if( is_admin() ) {
106 return;
107 }
108
109 if( ( isset($GLOBALS['pagenow']) && $GLOBALS['pagenow'] === 'wp-login.php' ) || ( isset($_GET['action']) && in_array($_GET['action'], array('register','rp', 'lostpassword' )) ) ) {
110 return;
111 }
112
113 if( class_exists('WooCommerce') && (is_account_page() || is_checkout()) ) {
114 return;
115 }
116
117 wp_dequeue_script('password-strength-meter');
118 wp_deregister_script('password-strength-meter');
119
120 wp_dequeue_script('wc-password-strength-meter');
121 wp_deregister_script('wc-password-strength-meter');
122
123 wp_dequeue_script('zxcvbn-async');
124 wp_deregister_script('zxcvbn-async');
125
126 }, 100);
127 }
128
129 //xml_rpc
130 if(in_array('xml_rpc',$wpPerf['wpperformanceList'])){
131 add_filter('xmlrpc_enabled', '__return_false');
132 add_filter('wp_headers', 'removeXPingback');
133 add_filter('pings_open', '__return_false', 9999);
134 function removeXPingback($headers) {
135 unset($headers['X-Pingback'], $headers['x-pingback']);
136 return $headers;
137 }
138 }
139
140 //disable_dashicons
141 if(in_array('disable_dashicons',$wpPerf['wpperformanceList'])){
142 add_action('wp_enqueue_scripts', 'ec_disable_dashicons');
143 function ec_disable_dashicons(){
144 if(!is_user_logged_in()) {
145 wp_dequeue_style('dashicons');
146 wp_deregister_style('dashicons');
147 }
148 }
149 }
150
151 //rsd_link
152 if(in_array('rsd_link',$wpPerf['wpperformanceList'])){
153 remove_action('wp_head', 'rsd_link');
154 }
155
156 //shortlink
157 if(in_array('shortlink',$wpPerf['wpperformanceList'])){
158 remove_action('wp_head', 'wp_shortlink_wp_head');
159 remove_action ('template_redirect', 'wp_shortlink_header', 11, 0);
160 }
161
162 //wlwmanifest_link
163 if(in_array('wlwmanifest_link',$wpPerf['wpperformanceList'])){
164 remove_action('wp_head', 'wlwmanifest_link');
165 }
166
167 //self_pingbacks
168 if(in_array('self_pingbacks',$wpPerf['wpperformanceList'])){
169 add_action('pre_ping', 'selfPingbacks');
170 function selfPingbacks( &$links ){
171 $home = home_url();
172 foreach($links as $l => $link) {
173 if(strpos($link, $home) === 0) {
174 unset($links[$l]);
175 }
176 }
177 }
178 }
179
180 //wp_version
181 if(in_array('wp_version',$wpPerf['wpperformanceList'])){
182 remove_action('wp_head', 'wp_generator');
183 add_filter('the_generator', function(){
184 return '';
185 });
186 }
187
188 //rss_feeds
189 if(in_array('rss_feeds',$wpPerf['wpperformanceList'])){
190 add_action('template_redirect', 'ecRssFeeds', 1);
191 function ecRssFeeds() {
192 if(!is_feed() || is_404()) {
193 return;
194 }
195
196 global $wp_rewrite;
197 global $wp_query;
198
199 if(isset($_GET['feed'])) {
200 wp_redirect(esc_url_raw(remove_query_arg('feed')), 301);
201 exit;
202 }
203
204 if(get_query_var('feed') !== 'old') {
205 set_query_var('feed', '');
206 }
207
208 redirect_canonical();
209
210 wp_die(sprintf(__("No feed available, go to <a href='%s'>Home Page</a>!",'essential-classy-addons-for-elementor'), esc_url(home_url('/'))));
211 }
212 }
213
214 //rss_feed_link
215 if(in_array('rss_feed_link',$wpPerf['wpperformanceList'])){
216 remove_action('wp_head', 'feed_links_extra', 3);
217 remove_action('wp_head', 'feed_links', 2);
218 }
219
220 }
221 }
222
223 /**
224 * Hooks
225 */
226 public function hooks() {
227 add_action('admin_init', array($this,'init'));
228 add_action('admin_menu', array($this,'optionsPageAppend'));
229 }
230
231 /**
232 * Init
233 */
234 public function init() {
235 $optionTabs = self::fieldsOption();
236 foreach ($optionTabs as $index => $optionTab) {
237 register_setting($optionTab['id'], $optionTab['id']);
238 }
239 }
240
241 /**
242 * White Label
243 */
244 public function ecafeWhiteLabel(){
245 echo '<div class="ecafe-cs"><img src="'.ECAFE_URL.'assets/images/cs.gif" /></div>';
246 }
247
248 /**
249 * Widget save and fire action
250 */
251 public function widgetsSaveFire() {
252 $actionPage = 'ecafe_widgets';
253 if(isset($_POST["submit-key"]) && !empty($_POST["submit-key"]) && $_POST["submit-key"]=='Save'){
254 $nonce = isset( $_POST['nonce_ecafe_widgets'] ) ? sanitize_text_field(wp_unslash($_POST['nonce_ecafe_widgets'])) : '';
255 if ( ! isset( $nonce ) || ! wp_verify_nonce( $nonce, 'nonce_ecafe_widgets_action' ) ) {
256 wp_redirect(admin_url('admin.php?page='.$actionPage));
257 } else {
258 if (get_option($actionPage) === FALSE){
259 $defaultValue = array('widgetsload' => '');
260 add_option($actionPage,$defaultValue);
261 wp_redirect(admin_url('admin.php?page=ecafe_widgets'));
262 }else{
263 $updateValue=[];
264 $widgetsload = isset( $_POST['widgetsload'] ) ? array_map( 'sanitize_text_field',wp_unslash($_POST['widgetsload'])) : [];
265 if( isset( $widgetsload ) && !empty( $widgetsload ) ){
266 $updateValue['widgetsload'] = $widgetsload;
267 }else if(empty($widgetsload)){
268 $updateValue['widgetsload'] = '';
269 }
270 update_option( $actionPage, $updateValue );
271 wp_redirect(admin_url('admin.php?page='.$actionPage));
272 }
273 }
274
275 }else{
276 wp_redirect(admin_url('admin.php?page='.$actionPage));
277 }
278 }
279
280 /**
281 * Extras List Save Options
282 */
283 public function extraListSaveOptions() {
284 $actionPage = 'ecafe_extension';
285 if(isset($_POST["submit-key"]) && !empty($_POST["submit-key"]) && $_POST["submit-key"]=='Save'){
286 $nonce = isset( $_POST['nonce_ecafe_extension'] ) ? sanitize_text_field(wp_unslash($_POST['nonce_ecafe_extension'])) : '';
287 if ( ! isset( $nonce ) || ! wp_verify_nonce( $nonce, 'nonce_ecafe_extension_action' ) ) {
288 wp_redirect(admin_url('admin.php?page='.$actionPage));
289 } else {
290 if (get_option($actionPage) === FALSE){
291 $defaultValue = array('extrasList' => '');
292 add_option($actionPage,$defaultValue);
293 wp_redirect(admin_url('admin.php?page='.$actionPage));
294 }else{
295 $updateValue=[];
296 $extrasList = isset( $_POST['extrasList'] ) ? array_map( 'sanitize_text_field',wp_unslash($_POST['extrasList'])) : [];
297 if( isset( $extrasList ) && !empty( $extrasList ) ){
298 $updateValue['extrasList'] = $extrasList;
299 }else if(empty($extrasList)){
300 $updateValue['extrasList'] = '';
301 }
302 update_option( $actionPage, $updateValue );
303 wp_redirect(admin_url('admin.php?page='.$actionPage));
304 }
305 }
306
307 }else{
308 wp_redirect(admin_url('admin.php?page='.$actionPage));
309 }
310 }
311
312
313 /**
314 * WP Performance Save Options
315 */
316 public function wpPerformanceSaveOptions() {
317 $actionPage = 'ecafe_wp_performance';
318 if(isset($_POST["submit-key"]) && !empty($_POST["submit-key"]) && $_POST["submit-key"]=='Save'){
319 $nonce = isset( $_POST['nonce_ecafe_wp_performance'] ) ? sanitize_text_field(wp_unslash($_POST['nonce_ecafe_wp_performance'])) : '';
320 if ( ! isset( $nonce ) || ! wp_verify_nonce( $nonce, 'nonce_ecafe_wp_performance_action' ) ) {
321 wp_redirect(admin_url('admin.php?page='.$actionPage));
322 } else {
323 if (get_option($actionPage) === FALSE){
324 $defaultValue = array('wpperformanceList' => '');
325 add_option($actionPage,$defaultValue);
326 wp_redirect(admin_url('admin.php?page='.$actionPage));
327 }else{
328 $updateValue=[];
329 $wpperformanceList = isset( $_POST['wpperformanceList'] ) ? array_map( 'sanitize_text_field',wp_unslash($_POST['wpperformanceList'])) : [];
330 if( isset( $wpperformanceList ) && !empty( $wpperformanceList ) ){
331 $updateValue['wpperformanceList'] = $wpperformanceList;
332 }else if(empty($wpperformanceList)){
333 $updateValue['wpperformanceList'] = '';
334 }
335 update_option( $actionPage, $updateValue );
336 wp_redirect(admin_url('admin.php?page='.$actionPage));
337 }
338 }
339
340 }else{
341 wp_redirect(admin_url('admin.php?page='.$actionPage));
342 }
343 }
344
345 /**
346 * Widget lists
347 */
348 public function ecafeWidgetList(){
349 $this->widget_lists = [
350 'ecafe-accordion' => [
351 'label' => esc_html__('Accordion','essential-classy-addons-for-elementor'),
352 'catlist' => 'essential',
353 ],
354 'ecafe-adv-text-block' => [
355 'label' => esc_html__('Advanced Text Block','essential-classy-addons-for-elementor'),
356 'catlist' => 'essential',
357 ],
358 'ecafe-back-to-top' => [
359 'label' => esc_html__('Back to Top','essential-classy-addons-for-elementor'),
360 'catlist' => 'essential',
361 ],
362 'ecafe-business-hours' => [
363 'label' => esc_html__('Business Hours','essential-classy-addons-for-elementor'),
364 'catlist' => 'essential',
365 ],
366 'ecafe-button' => [
367 'label' => esc_html__('Button','essential-classy-addons-for-elementor'),
368 'catlist' => 'essential',
369 ],
370 'ecafe-changelog' => [
371 'label' => esc_html__('Changelog','essential-classy-addons-for-elementor'),
372 'catlist' => 'essential',
373 ],
374 'ecafe-chart' => [
375 'label' => esc_html__('Chart','essential-classy-addons-for-elementor'),
376 'catlist' => 'essential',
377 ],
378 'ecafe-contact-form-7' => [
379 'label' => esc_html__('Contact Form 7','essential-classy-addons-for-elementor'),
380 'catlist' => 'forms',
381 ],
382 'ecafe-count-down' => [
383 'label' => esc_html__('Countdown','essential-classy-addons-for-elementor'),
384 'catlist' => 'essential',
385 ],
386 'ecafe-darkmode-styling' => [
387 'label' => esc_html__('Dark Mode Styling','essential-classy-addons-for-elementor'),
388 'catlist' => 'essential',
389 ],
390 'ecafe-dropcap' => [
391 'label' => esc_html__('Dropcap','essential-classy-addons-for-elementor'),
392 'catlist' => 'essential',
393 ],
394 'ecafe-gravity-forms' => [
395 'label' => esc_html__('Gravity Forms','essential-classy-addons-for-elementor'),
396 'catlist' => 'forms',
397 ],
398 'ecafe-grid-post-listing' => [
399 'label' => esc_html__('Grid Post Listing','essential-classy-addons-for-elementor'),
400 'catlist' => 'essential',
401 ],
402 'ecafe-hover-background' => [
403 'label' => esc_html__('Hover Background','essential-classy-addons-for-elementor'),
404 'catlist' => 'essential',
405 ],
406 'ecafe-image-accordion' => [
407 'label' => esc_html__('Image Accordion','essential-classy-addons-for-elementor'),
408 'catlist' => 'essential',
409 ],
410 'ecafe-image-hover-effect' => [
411 'label' => esc_html__('Image Hover Effect','essential-classy-addons-for-elementor'),
412 'catlist' => 'essential',
413 ],
414 'ecafe-image-scroll' => [
415 'label' => esc_html__('Image Scroll','essential-classy-addons-for-elementor'),
416 'catlist' => 'essential',
417 ],
418 'ecafe-infobox' => [
419 'label' => esc_html__('Info Box','essential-classy-addons-for-elementor'),
420 'catlist' => 'essential',
421 ],
422 'ecafe-lottie' => [
423 'label' => esc_html__('Lottie','essential-classy-addons-for-elementor'),
424 'catlist' => 'essential',
425 ],
426 'ecafe-marketing-link' => [
427 'label' => esc_html__('Marketing Link','essential-classy-addons-for-elementor'),
428 'catlist' => 'essential',
429 ],
430 'ecafe-scroll-progress' => [
431 'label' => esc_html__('Scroll Progress','essential-classy-addons-for-elementor'),
432 'catlist' => 'essential',
433 ],
434 'ecafe-service-lists' => [
435 'label' => esc_html__('Service Lists','essential-classy-addons-for-elementor'),
436 'catlist' => 'essential',
437 ],
438 'ecafe-social-icons' => [
439 'label' => esc_html__('Social Icons','essential-classy-addons-for-elementor'),
440 'catlist' => 'essential',
441 ],
442 'ecafe-title' => [
443 'label' => esc_html__('Title','essential-classy-addons-for-elementor'),
444 'catlist' => 'essential',
445 ],
446 'ecafe-tabs' => [
447 'label' => esc_html__('Tabs','essential-classy-addons-for-elementor'),
448 'catlist' => 'essential',
449 ],
450 'ecafe-text-background' => [
451 'label' => esc_html__('Text Background','essential-classy-addons-for-elementor'),
452 'catlist' => 'essential',
453 ],
454 'ecafe-whatsapp' => [
455 'label' => esc_html__('Whatsapp','essential-classy-addons-for-elementor'),
456 'catlist' => 'essential',
457 ],
458 'ecafe-wpforms' => [
459 'label' => esc_html__('WPForms','essential-classy-addons-for-elementor'),
460 'catlist' => 'forms',
461 ],
462 'ecafe-woocommerce-cart' => [
463 'label' => esc_html__('WooCommerce Cart','essential-classy-addons-for-elementor'),
464 'catlist' => 'woocommerce',
465 ],
466 'ecafe-woocommerce-checkout' => [
467 'label' => esc_html__('WooCommerce Checkout','essential-classy-addons-for-elementor'),
468 'catlist' => 'woocommerce',
469 ],
470 'ecafe-woocommerce-myaccount' => [
471 'label' => esc_html__('WooCommerce MyAccount','essential-classy-addons-for-elementor'),
472 'catlist' => 'woocommerce',
473 ],
474 'ecafe-woocommerce-ordertrack' => [
475 'label' => esc_html__('WooCommerce Order Track','essential-classy-addons-for-elementor'),
476 'catlist' => 'woocommerce',
477 ],
478 'ecafe-facebook-embed' => [
479 'label' => esc_html__('Facebook Embed','essential-classy-addons-for-elementor'),
480 'catlist' => 'embed',
481 ],
482 'ecafe-googlemap-embed' => [
483 'label' => esc_html__('Google Map Embed','essential-classy-addons-for-elementor'),
484 'catlist' => 'embed',
485 ],
486 'ecafe-acf-text' => [
487 'label' => esc_html__('ACF : Text','essential-classy-addons-for-elementor'),
488 'catlist' => 'acf',
489 ],
490 'ecafe-acf-text-area' => [
491 'label' => esc_html__('ACF : Text Area','essential-classy-addons-for-elementor'),
492 'catlist' => 'acf',
493 ],
494 'ecafe-acf-wysiwyg-editor' => [
495 'label' => esc_html__('ACF : Wysiwyg Editor','essential-classy-addons-for-elementor'),
496 'catlist' => 'acf',
497 ],
498 'ecafe-acf-url' => [
499 'label' => esc_html__('ACF : Url','essential-classy-addons-for-elementor'),
500 'catlist' => 'acf',
501 ],
502 'ecafe-acf-email' => [
503 'label' => esc_html__('ACF : Email','essential-classy-addons-for-elementor'),
504 'catlist' => 'acf',
505 ],
506 'ecafe-acf-number' => [
507 'label' => esc_html__('ACF : Number','essential-classy-addons-for-elementor'),
508 'catlist' => 'acf',
509 ],
510 'ecafe-acf-image' => [
511 'label' => esc_html__('ACF : Image','essential-classy-addons-for-elementor'),
512 'catlist' => 'acf',
513 ],
514 'ecafe-acf-date' => [
515 'label' => esc_html__('ACF : Date','essential-classy-addons-for-elementor'),
516 'catlist' => 'acf',
517 ],
518 'ecafe-acf-time' => [
519 'label' => esc_html__('ACF : Time','essential-classy-addons-for-elementor'),
520 'catlist' => 'acf',
521 ],
522 'ecafe-acf-date-time' => [
523 'label' => esc_html__('ACF : Date Time','essential-classy-addons-for-elementor'),
524 'catlist' => 'acf',
525 ],
526 'ecafe-acf-oembed' => [
527 'label' => esc_html__('ACF : oEmbed','essential-classy-addons-for-elementor'),
528 'catlist' => 'acf',
529 ],
530 'ecafe-cfs-text' => [
531 'label' => esc_html__('Custom Field Suite : Text','essential-classy-addons-for-elementor'),
532 'catlist' => 'cfs',
533 ],
534 'ecafe-cfs-textarea' => [
535 'label' => esc_html__('Custom Field Suite : Text Area','essential-classy-addons-for-elementor'),
536 'catlist' => 'cfs',
537 ],
538 'ecafe-cfs-wysiwyg' => [
539 'label' => esc_html__('Custom Field Suite : Wysiwyg','essential-classy-addons-for-elementor'),
540 'catlist' => 'cfs',
541 ],
542 'ecafe-cfs-hyperlink' => [
543 'label' => esc_html__('Custom Field Suite : Hyperlink','essential-classy-addons-for-elementor'),
544 'catlist' => 'cfs',
545 ],
546 'ecafe-cfs-date' => [
547 'label' => esc_html__('Custom Field Suite : Date','essential-classy-addons-for-elementor'),
548 'catlist' => 'cfs',
549 ],
550 'ecafe-cfs-image' => [
551 'label' => esc_html__('Custom Field Suite : Image','essential-classy-addons-for-elementor'),
552 'catlist' => 'cfs',
553 ],
554 'ecafe-jetengine-text' => [
555 'label' => esc_html__('JetEngine : Text','essential-classy-addons-for-elementor'),
556 'catlist' => 'jet',
557 ],
558 'ecafe-jetengine-date' => [
559 'label' => esc_html__('JetEngine : Date','essential-classy-addons-for-elementor'),
560 'catlist' => 'jet',
561 ],
562 'ecafe-jetengine-time' => [
563 'label' => esc_html__('JetEngine : Time','essential-classy-addons-for-elementor'),
564 'catlist' => 'jet',
565 ],
566 'ecafe-jetengine-datetime' => [
567 'label' => esc_html__('JetEngine : Date Time','essential-classy-addons-for-elementor'),
568 'catlist' => 'jet',
569 ],
570 'ecafe-jetengine-textarea' => [
571 'label' => esc_html__('JetEngine : Text Area','essential-classy-addons-for-elementor'),
572 'catlist' => 'jet',
573 ],
574 'ecafe-jetengine-wysiwyg' => [
575 'label' => esc_html__('JetEngine : Wysiwyg','essential-classy-addons-for-elementor'),
576 'catlist' => 'jet',
577 ],
578 'ecafe-jetengine-media' => [
579 'label' => esc_html__('JetEngine : Media','essential-classy-addons-for-elementor'),
580 'catlist' => 'jet',
581 ],
582 'ecafe-jetengine-number' => [
583 'label' => esc_html__('JetEngine : Number','essential-classy-addons-for-elementor'),
584 'catlist' => 'jet',
585 ],
586 'ecafe-metabox-text' => [
587 'label' => esc_html__('Meta Box : Text','essential-classy-addons-for-elementor'),
588 'catlist' => 'metabox',
589 ],
590 'ecafe-metabox-textarea' => [
591 'label' => esc_html__('Meta Box : Text Area','essential-classy-addons-for-elementor'),
592 'catlist' => 'metabox',
593 ],
594 'ecafe-metabox-wysiwyg' => [
595 'label' => esc_html__('Meta Box : Wysiwyg','essential-classy-addons-for-elementor'),
596 'catlist' => 'metabox',
597 ],
598 'ecafe-metabox-email' => [
599 'label' => esc_html__('Meta Box : Email','essential-classy-addons-for-elementor'),
600 'catlist' => 'metabox',
601 ],
602 'ecafe-metabox-number' => [
603 'label' => esc_html__('Meta Box : Number','essential-classy-addons-for-elementor'),
604 'catlist' => 'metabox',
605 ],
606 'ecafe-metabox-url' => [
607 'label' => esc_html__('Meta Box : Url','essential-classy-addons-for-elementor'),
608 'catlist' => 'metabox',
609 ],
610 'ecafe-metabox-imageadvanced' => [
611 'label' => esc_html__('Meta Box : Image Advanced','essential-classy-addons-for-elementor'),
612 'catlist' => 'metabox',
613 ],
614 'ecafe-metabox-video' => [
615 'label' => esc_html__('Meta Box : Video','essential-classy-addons-for-elementor'),
616 'catlist' => 'metabox',
617 ],
618 'ecafe-metabox-date' => [
619 'label' => esc_html__('Meta Box : Date','essential-classy-addons-for-elementor'),
620 'catlist' => 'metabox',
621 ],
622 'ecafe-metabox-datetime' => [
623 'label' => esc_html__('Meta Box : Datetime','essential-classy-addons-for-elementor'),
624 'catlist' => 'metabox',
625 ],
626 'ecafe-metabox-time' => [
627 'label' => esc_html__('Meta Box : Time','essential-classy-addons-for-elementor'),
628 'catlist' => 'metabox',
629 ],
630 'ecafe-pods-plaintext' => [
631 'label' => esc_html__('Pods : Plain Text','essential-classy-addons-for-elementor'),
632 'catlist' => 'pods',
633 ],
634 'ecafe-pods-website' => [
635 'label' => esc_html__('Pods : Website','essential-classy-addons-for-elementor'),
636 'catlist' => 'pods',
637 ],
638 'ecafe-pods-phone' => [
639 'label' => esc_html__('Pods : Phone','essential-classy-addons-for-elementor'),
640 'catlist' => 'pods',
641 ],
642 'ecafe-pods-email' => [
643 'label' => esc_html__('Pods : Email','essential-classy-addons-for-elementor'),
644 'catlist' => 'pods',
645 ],
646 'ecafe-pods-plain-paragraph-text' => [
647 'label' => esc_html__('Pods : Plain Paragraph Text','essential-classy-addons-for-elementor'),
648 'catlist' => 'pods',
649 ],
650 'ecafe-pods-wysywyg' => [
651 'label' => esc_html__('Pods : WYSIWYG (Visual Editor)','essential-classy-addons-for-elementor'),
652 'catlist' => 'pods',
653 ],
654 'ecafe-pods-date-time' => [
655 'label' => esc_html__('Pods : Date / Time','essential-classy-addons-for-elementor'),
656 'catlist' => 'pods',
657 ],
658 'ecafe-pods-date' => [
659 'label' => esc_html__('Pods : Date','essential-classy-addons-for-elementor'),
660 'catlist' => 'pods',
661 ],
662 'ecafe-pods-time' => [
663 'label' => esc_html__('Pods : Time','essential-classy-addons-for-elementor'),
664 'catlist' => 'pods',
665 ],
666 'ecafe-pods-plain-number' => [
667 'label' => esc_html__('Pods : Plain Number','essential-classy-addons-for-elementor'),
668 'catlist' => 'pods',
669 ],
670 'ecafe-pods-currency' => [
671 'label' => esc_html__('Pods : Currency','essential-classy-addons-for-elementor'),
672 'catlist' => 'pods',
673 ],
674 'ecafe-pods-image' => [
675 'label' => esc_html__('Pods : Image','essential-classy-addons-for-elementor'),
676 'catlist' => 'pods',
677 ],
678 'ecafe-pods-video' => [
679 'label' => esc_html__('Pods : Video','essential-classy-addons-for-elementor'),
680 'catlist' => 'pods',
681 ],
682 'ecafe-pods-oembed' => [
683 'label' => esc_html__('Pods : oEmbed','essential-classy-addons-for-elementor'),
684 'catlist' => 'pods',
685 ],
686 'ecafe-toolset-single-line' => [
687 'label' => esc_html__('Toolset : Single Line','essential-classy-addons-for-elementor'),
688 'catlist' => 'toolset',
689 ],
690 'ecafe-toolset-multiple-lines' => [
691 'label' => esc_html__('Toolset : Multiple Lines','essential-classy-addons-for-elementor'),
692 'catlist' => 'toolset',
693 ],
694 'ecafe-toolset-wysiwyg' => [
695 'label' => esc_html__('Toolset : WYSIWYG','essential-classy-addons-for-elementor'),
696 'catlist' => 'toolset',
697 ],
698 'ecafe-toolset-image' => [
699 'label' => esc_html__('Toolset : Image','essential-classy-addons-for-elementor'),
700 'catlist' => 'toolset',
701 ],
702 'ecafe-toolset-video' => [
703 'label' => esc_html__('Toolset : Video','essential-classy-addons-for-elementor'),
704 'catlist' => 'toolset',
705 ],
706 'ecafe-toolset-embedded-media' => [
707 'label' => esc_html__('Toolset : Embedded Media','essential-classy-addons-for-elementor'),
708 'catlist' => 'toolset',
709 ],
710 'ecafe-toolset-email' => [
711 'label' => esc_html__('Toolset : Email','essential-classy-addons-for-elementor'),
712 'catlist' => 'toolset',
713 ],
714 'ecafe-toolset-url' => [
715 'label' => esc_html__('Toolset : URL','essential-classy-addons-for-elementor'),
716 'catlist' => 'toolset',
717 ],
718 'ecafe-toolset-number' => [
719 'label' => esc_html__('Toolset : Number','essential-classy-addons-for-elementor'),
720 'catlist' => 'toolset',
721 ],
722 'ecafe-toolset-phone' => [
723 'label' => esc_html__('Toolset : Phone','essential-classy-addons-for-elementor'),
724 'catlist' => 'toolset',
725 ],
726 'ecafe-toolset-skype' => [
727 'label' => esc_html__('Toolset : Skype','essential-classy-addons-for-elementor'),
728 'catlist' => 'toolset',
729 ],
730 'ecafe-toolset-date' => [
731 'label' => esc_html__('Toolset : Date','essential-classy-addons-for-elementor'),
732 'catlist' => 'toolset',
733 ],
734 'ecafe-wck-text' => [
735 'label' => esc_html__('WCK : Text','essential-classy-addons-for-elementor'),
736 'catlist' => 'wck',
737 ],
738 'ecafe-wck-textarea' => [
739 'label' => esc_html__('WCK : Text Area','essential-classy-addons-for-elementor'),
740 'catlist' => 'wck',
741 ],
742 'ecafe-wck-wysiwyg-editor' => [
743 'label' => esc_html__('WCK : Wysiwyg Editor','essential-classy-addons-for-elementor'),
744 'catlist' => 'wck',
745 ],
746 'ecafe-wck-currency-select' => [
747 'label' => esc_html__('WCK : Currency Select','essential-classy-addons-for-elementor'),
748 'catlist' => 'wck',
749 ],
750 'ecafe-wck-phone' => [
751 'label' => esc_html__('WCK : Phone','essential-classy-addons-for-elementor'),
752 'catlist' => 'wck',
753 ],
754 'ecafe-wck-timepicker' => [
755 'label' => esc_html__('WCK : Timepicker','essential-classy-addons-for-elementor'),
756 'catlist' => 'wck',
757 ],
758 'ecafe-wck-number' => [
759 'label' => esc_html__('WCK : Number','essential-classy-addons-for-elementor'),
760 'catlist' => 'wck',
761 ],
762 'ecafe-wck-upload-image' => [
763 'label' => esc_html__('WCK : Image Upload','essential-classy-addons-for-elementor'),
764 'catlist' => 'wck',
765 ],
766 'ecafe-wck-upload-video' => [
767 'label' => esc_html__('WCK : Video Upload','essential-classy-addons-for-elementor'),
768 'catlist' => 'wck',
769 ],
770 ];
771 }
772
773 /**
774 * Render widget lists
775 */
776 private function ecafeRenderWidgetList(){
777 $widgetList = $this->widget_lists;
778 $show ='';
779 $fetchWidgetsSave = get_option( 'ecafe_widgets' );
780 $saveWidget ='';
781
782 if(!empty($fetchWidgetsSave['widgetsload'])){
783 $saveWidget = $fetchWidgetsSave['widgetsload'];
784 }
785
786 if(!empty($widgetList)){
787 foreach ($widgetList as $key => $widget){
788 $show .='<div class="ecafe-panel-column ecafecate'.esc_attr($widget['catlist']).'">';
789 $show .='<div class="widget-list-wrapper">';
790 $show .='<div class="widget-list-inner">';
791 $show .='<span class="widget-label">'.esc_html($widget['label']).'</span>';
792 $show .='</div>';
793 $checked = '';
794 if(!empty($saveWidget) && in_array($key, $saveWidget)){
795 $checked = 'checked="checked"';
796 }
797
798 $show .='<div class="widget-check-wrapper">
799 <input type="checkbox" class="widget-list-checkbox" name="widgetsload[]" id="'.esc_attr($key).'" value="'.esc_attr($key).'" '.$checked.'>
800 <label for="'.esc_attr($key).'"></label>
801 </div>';
802 $show .='</div>';
803 $show .='</div>';
804 }
805 }
806 return $show;
807 }
808
809 /**
810 * Render Extra Options lists
811 */
812 private function ecafeRenderExtraList(){
813 $extraList = [
814 'ecafe-glassmorphism' => [
815 'label' => esc_html__('Glassmorphism','essential-classy-addons-for-elementor'),
816 ],
817 'ecafe-lax-scroll' => [
818 'label' => esc_html__('Lax Scroll','essential-classy-addons-for-elementor'),
819 ],
820 'ecafe-widget-link' => [
821 'label' => esc_html__('Link','essential-classy-addons-for-elementor'),
822 ],
823 'ecafe-live-copy' => [
824 'label' => esc_html__('Live Copy Paste','essential-classy-addons-for-elementor'),
825 ]
826 ];
827 $show ='';
828 $extrasListOpt = get_option( 'ecafe_extension' );
829 $saveWidget ='';
830 if(!empty($extrasListOpt['extrasList'])){
831 $saveWidget = $extrasListOpt['extrasList'];
832 }
833
834 if(!empty($extraList)){
835 foreach ($extraList as $key => $widget){
836 $show .='<div class="ecafe-panel-column">';
837 $show .='<div class="widget-list-wrapper">';
838 $show .='<div class="widget-list-inner">';
839 $show .='<span class="widget-label">'.esc_html($widget['label']).'</span>';
840 $show .='</div>';
841 $checked = '';
842 if(!empty($saveWidget) && in_array($key, $saveWidget)){
843 $checked = 'checked="checked"';
844 }
845 $show .='<div class="widget-check-wrapper">
846 <input type="checkbox" class="widget-list-checkbox" name="extrasList[]" id="'.esc_attr($key).'" value="'.esc_attr($key).'" '.$checked.'>
847 <label for="'.esc_attr($key).'"></label>
848 </div>';
849 $show .='</div>';
850 $show .='</div>';
851 }
852 }
853 return $show;
854 }
855
856 /**
857 * Render WP Performance Options lists
858 */
859 private function ecafeRenderWpPerfomanceList(){
860 $wpPerfList = [
861 'disable_dashicons' => [
862 'label' => esc_html__('Dashicons','essential-classy-addons-for-elementor'),
863 ],
864 'emoji_scripts' => [
865 'label' => esc_html__('Emojis Script','essential-classy-addons-for-elementor'),
866 ],
867 'disable_embeds' => [
868 'label' => esc_html__('Embeds','essential-classy-addons-for-elementor'),
869 ],
870 'pass_str_mtr' => [
871 'label' => esc_html__('Password Strength Meter','essential-classy-addons-for-elementor'),
872 ],
873 'rsd_link' => [
874 'label' => esc_html__('Remove RSD Link','essential-classy-addons-for-elementor'),
875 ],
876 'shortlink' => [
877 'label' => esc_html__('Remove Shortlink','essential-classy-addons-for-elementor'),
878 ],
879 'wlwmanifest_link' => [
880 'label' => esc_html__('Remove wlwmanifest Link','essential-classy-addons-for-elementor'),
881 ],
882 'rss_feeds' => [
883 'label' => esc_html__('RSS Feeds','essential-classy-addons-for-elementor'),
884 ],
885 'rss_feed_link' => [
886 'label' => esc_html__('Remove RSS Feed Links','essential-classy-addons-for-elementor'),
887 ],
888 'self_pingbacks' => [
889 'label' => esc_html__('Self Pingbacks','essential-classy-addons-for-elementor'),
890 ],
891 'xml_rpc' => [
892 'label' => esc_html__('XML-RPC','essential-classy-addons-for-elementor'),
893 ],
894 'wp_version' => [
895 'label' => esc_html__('WP Version Generator','essential-classy-addons-for-elementor'),
896 ],
897 ];
898 $show ='';
899 $wpPerformanceListOpt = get_option( 'ecafe_wp_performance' );
900 $saveWidget ='';
901 if(!empty($wpPerformanceListOpt['wpperformanceList'])){
902 $saveWidget = $wpPerformanceListOpt['wpperformanceList'];
903 }
904
905 if(!empty($wpPerfList)){
906 foreach ($wpPerfList as $key => $widget){
907 $show .='<div class="ecafe-panel-column">';
908 $show .='<div class="widget-list-wrapper">';
909 $show .='<div class="widget-list-inner">';
910 $show .='<span class="widget-label">'.esc_html($widget['label']).'</span>';
911 $show .='</div>';
912 $checked = '';
913 if(!empty($saveWidget) && in_array($key, $saveWidget)){
914 $checked = 'checked="checked"';
915 }
916 $show .='<div class="widget-check-wrapper">
917 <input type="checkbox" class="widget-list-checkbox" name="wpperformanceList[]" id="'.esc_attr($key).'" value="'.esc_attr($key).'" '.$checked.'>
918 <label for="'.esc_attr($key).'"></label>
919 </div>';
920 $show .='</div>';
921 $show .='</div>';
922 }
923 }
924 return $show;
925 }
926 /**
927 * Options page append
928 */
929 public function optionsPageAppend() {
930 $optionTabs = self::fieldsOption();
931
932 foreach ($optionTabs as $index => $optionTab) {
933 if($index == 0) {
934 $this->optionsPages[] = add_menu_page($this->title, $this->title, 'manage_options', $optionTab['id'],array($this,'displayAdminPage'),'dashicons-ecafe-settings');
935 add_submenu_page($optionTabs[0]['id'], $this->title, $optionTab['title'], 'manage_options', $optionTab['id'], array($this,'displayAdminPage'));
936 }else{
937 if(isset($optionTabs)){
938 $this->optionsPages[] = add_submenu_page($optionTabs[0]['id'], $this->title, $optionTab['title'], 'manage_options', $optionTab['id'], array($this,'displayAdminPage'));
939 }
940 }
941 }
942 }
943
944 /**
945 * Display admin page
946 */
947 public function displayAdminPage() {
948 $optionTabs = self::fieldsOption();
949 $tabForms = array();
950 $show ='';
951 $show .='<div class="'.$this->key.'">';
952 $show .='<div id="ecafe-setting-head-wrapper">';
953 $show .='<img src='.ECAFE_URL.'assets/images/ec-addons.gif />';
954 $show .='<div class="ecafe-current-version"> '.esc_html__('Version','essential-classy-addons-for-elementor').' '.ECAFE_VERSION.'</div>';
955 $show .='</div>';
956
957 $show .='<div class="ecafe-nav-tab-wrapper">';
958 $show .='<div class="nav-tab-wrapper">';
959 ob_start();
960 foreach ($optionTabs as $optionTab):
961 $tabSlug = $optionTab['id'];
962 $navigationTabClass = 'nav-tab';
963 $page_key = isset($_GET['page']) ? sanitize_text_field(wp_unslash($_GET['page'])) : '';
964 if ($tabSlug == $page_key) {
965 $navigationTabClass .= ' nav-tab-active';
966 $tabForms[] = $optionTab;
967 }
968 ?>
969 <a class="<?php echo esc_attr($navigationTabClass); ?>" href="<?php menu_page_url($tabSlug); ?>">
970 <span><?php echo esc_html($optionTab['title']); ?></span>
971 </a>
972 <?php
973
974 endforeach;
975 $show .= ob_get_clean();
976 $show .='</div>';
977 $show .='</div>';
978
979 $show .='<div class="ecafe-settings-form-wrapper form-'.$tabForms[0]['id'].'">';
980
981 if(!empty($tabForms)){
982 ob_start();
983 foreach ($tabForms as $tabForm):
984 if($tabForm['id']=='ecafe_welcome'){
985 echo '<div class="ecafe-panel-welcome-page">';
986 echo '<div class="ecafe-panel-row">';
987 echo '<div class="ecafe-panel-column">';
988 /*User Info*/
989 echo '<div class="ecafe-welcome-col ecafe-user-info-wrapper">';
990 echo '<div class="ecafe-user-info">';
991 $user = wp_get_current_user();
992 if (isset($user)){
993 echo '<img src="'.esc_url( get_avatar_url( $user->ID ) ).'" class="ecafe-avatar-img" />';
994 }
995 echo '<div class="ecafe-author-name">'.esc_html__('Welcome ','essential-classy-addons-for-elementor').esc_html($user->display_name).',</div>';
996
997 if ( function_exists( 'ini_get' ) ){
998 echo "<div class='ecafe-info-panel'>You have <span>".size_format( wp_convert_hr_to_bytes( ini_get( 'memory_limit' ) ) )."</span> Memory.<br/> If you face spinning circle in Elementor Backend.<a href='https://kapasias.com/ultimate-troubleshooting-of-common-issues-of-elementor-page-builder/' target='_blank' rel='nofollow' class='ecafe-wel-btn' style='color:#d84242;background:unset;padding:0;margin:5px 0 0 10px;border:none'>Please have a look</a></div>";
999 }
1000 echo '</div>';
1001 echo '</div>';
1002 /*User Info*/
1003
1004 /*Banner Image*/
1005 echo '<div class="ecafe-welcome-col ecafe-banner-wrapper">';
1006 echo '<a class="ecafe-banner-wrapper-link" href="https://kapasias.com/addons-features"></a>';
1007 echo '</div>';
1008 /*Banner Image*/
1009
1010 /*Rating*/
1011 echo '<div class="ecafe-welcome-col ecafe-ratting-wrapper">';
1012 echo '<div class="ecafe-welcome-title">'.esc_html__('Rate Us 😍✨🌟','essential-classy-addons-for-elementor').'</div>';
1013 echo '<div class="ecafe-welcome-subtitle">'.esc_html__('Your rating motivates us to do better. And important for us. 😍','essential-classy-addons-for-elementor').'</div>';
1014 echo '<div class="ecafe-ratting-border"></div>';
1015 echo '<div class="ecafe-ratting-desc">'.esc_html__('Your reviews will help us to build better product for you. Please share your experience with other users.','essential-classy-addons-for-elementor').'</div>';
1016 echo '<a href="https://wordpress.org/support/plugin/essential-classy-addons-for-elementor/reviews/?rate=5#new-post" class="ecafe-wel-btn" title="'.esc_attr__('Rate on WordPress','essential-classy-addons-for-elementor').'" target="_blank">'.esc_html__('Rate on WordPress','essential-classy-addons-for-elementor').'</a>';
1017 echo '</div>';
1018 /*Rating*/
1019
1020 /*Request New Feature*/
1021 echo '<div class="ecafe-welcome-col ecafe-request-wrapper">';
1022 echo '<div class="ecafe-welcome-title">'.esc_html__('Wish to see your favorite feature? 💬💓💌','essential-classy-addons-for-elementor').'</div>';
1023 echo '<div class="ecafe-welcome-subtitle">'.esc_html__('Please share your idea or some reference you want in our addons.','essential-classy-addons-for-elementor').'</div>';
1024 echo '<a href="https://www.facebook.com/groups/340597333894907" class="ecafe-wel-btn" title="'.esc_attr__('Share Feedback','essential-classy-addons-for-elementor').'" target="_blank">'.esc_html__('Suggest Feature','essential-classy-addons-for-elementor').'</a>';
1025 echo '</div>';
1026 /*Request New Feature*/
1027
1028 /*Info Panel*/
1029 echo '<div class="ecafe-welcome-col ecafe-info-panel-wrapper">';
1030 echo '<div class="ecafe-welcome-title">'.esc_html__('Technical Support 👋','essential-classy-addons-for-elementor').'</div>';
1031 echo '<div class="ecafe-welcome-subtitle">'.esc_html__('Let’s start with queries and end with solutions.','essential-classy-addons-for-elementor').'</div>';
1032 echo '<a href="https://www.support.kapasias.com/" class="ecafe-wel-btn" title="'.esc_attr__('Share Feedback','essential-classy-addons-for-elementor').'" target="_blank">'.esc_html__('Helpdesk 💬🕘','essential-classy-addons-for-elementor').'</a>';
1033 echo '</div>';
1034 /*Info Panel*/
1035
1036 /*Change Log*/
1037 echo '<div class="ecafe-welcome-col ecafe-changelog-wrapper">';
1038 echo '<b class="ecafe-changelog-head">Change Log 💬</b><br/>';
1039 echo '<b><u>Version 3.0</u></b><br/>';
1040 echo 'Added : Cross Domain Copy Paste<br/>';
1041 echo 'Added : Contact Form 7<br/>';
1042 echo 'Added : Gravity Forms<br/>';
1043 echo 'Added : Grid Post Listing Custom Template option<br/>';
1044 echo '<a href="https://wordpress.org/plugins/essential-classy-addons-for-elementor/#developers" class="ecafe-wel-btn" title="'.esc_attr__('Share Feedback','essential-classy-addons-for-elementor').'" target="_blank">'.esc_html__('Full Log','essential-classy-addons-for-elementor').'</a>';
1045 echo '</div>';
1046 /*Change Log*/
1047
1048 echo '</div>';
1049 echo '</div>';
1050 echo '</div>';
1051 }
1052
1053 if($tabForm['id']=='ecafe_widgets'){
1054 echo '<div class="ecafe-panel-widget-page">';
1055
1056 echo '<div class="ecafe-panel-head">';
1057 echo '<div class="ecafe-panel-h-se">';
1058 echo '<div class="ecafe-panel-hse-edtoggle">';
1059 echo '<label class="ecafe-edtoggle"><span><svg xmlns="http://www.w3.org/2000/svg" width="23.532" height="20.533" viewBox="0 0 23.532 20.533">
1060 <path d="M6.9,15.626,0,8.73,2.228,6.5,6.9,11.064,17.729,0,20,2.388Z" transform="translate(4.307) rotate(16)"/>
1061 </svg></span><input type="checkbox" id="ecafe-edtoggleId" /> '.esc_html__('Enable/Disable Widgets','essential-classy-addons-for-elementor').'</label>';
1062 echo '</div>';
1063 echo '</div>';
1064
1065 echo '<div class="ecafe-panel-h-filter">';
1066 echo '<div class="ecafe-panel-h-filter-list">';
1067 echo '<a href="#" data-catlist="ecafecatall">'.esc_html__('All Widgets','essential-classy-addons-for-elementor').'</a>';
1068 echo '<a href="#" data-catlist="ecafecateessential">'.esc_html__('Essential','essential-classy-addons-for-elementor').'</a>';
1069 echo '<a href="#" data-catlist="ecafecateforms">'.esc_html__('Forms','essential-classy-addons-for-elementor').'</a>';
1070 echo '<a href="#" data-catlist="ecafecatewoocommerce">'.esc_html__('Woocommerce','essential-classy-addons-for-elementor').'</a>';
1071 echo '<a href="#" data-catlist="ecafecateembed">'.esc_html__('Embed','essential-classy-addons-for-elementor').'</a>';
1072 echo '<a href="#" data-catlist="ecafecateacf">'.esc_html__('ACF','essential-classy-addons-for-elementor').'</a>';
1073 echo '<a href="#" data-catlist="ecafecatecfs">'.esc_html__('CFS','essential-classy-addons-for-elementor').'</a>';
1074 echo '<a href="#" data-catlist="ecafecatejet">'.esc_html__('Jet','essential-classy-addons-for-elementor').'</a>';
1075 echo '<a href="#" data-catlist="ecafecatemetabox">'.esc_html__('Metabox','essential-classy-addons-for-elementor').'</a>';
1076 echo '<a href="#" data-catlist="ecafecatepods">'.esc_html__('PODS','essential-classy-addons-for-elementor').'</a>';
1077 echo '<a href="#" data-catlist="ecafecatetoolset">'.esc_html__('Toolset','essential-classy-addons-for-elementor').'</a>';
1078 echo '<a href="#" data-catlist="ecafecatewck">'.esc_html__('WCK','essential-classy-addons-for-elementor').'</a>';
1079 echo '</div>';
1080 echo '</div>';
1081 echo '</div>';
1082 /*widget list*/
1083 echo '<form class="cmb-form" action="'.esc_url( admin_url('admin-post.php') ).'" method="post" id="ecafe_widgets" enctype="multipart/form-data" encoding="multipart/form-data">';
1084 wp_nonce_field( 'nonce_ecafe_widgets_action', 'nonce_ecafe_widgets' );
1085 echo '<div class="ecafe-panel-row widget-list">';
1086 echo $this->ecafeRenderWidgetList();
1087 echo '</div>';
1088 echo '<input type="hidden" name="action" value="ecafe_widgets_options_save">';
1089 echo '<input type="submit" name="submit-key" value="Save" class="button-primary ecafe-submit-widget">';
1090 echo '</form>';
1091 /*widget list*/
1092 echo '</div>';
1093 }
1094
1095 if($tabForm['id']=='ecafe_extension'){
1096 echo '<div class="ecafe-panel-widget-page">';
1097 /*widget list*/
1098 echo '<form class="cmb-form" action="'.esc_url( admin_url('admin-post.php') ).'" method="post" id="ecafe_extension" enctype="multipart/form-data" encoding="multipart/form-data">';
1099 wp_nonce_field( 'nonce_ecafe_extension_action', 'nonce_ecafe_extension' );
1100 echo '<div class="ecafe-panel-row widget-list">';
1101 echo $this->ecafeRenderExtraList();
1102 echo '</div>';
1103 echo '<input type="hidden" name="action" value="ecafe_extension_options_save">';
1104 echo '<input type="submit" name="submit-key" value="Save" class="button-primary ecafe-submit-widget">';
1105 echo '</form>';
1106 /*widget list*/
1107 echo '</div>';
1108 }
1109
1110 if($tabForm['id']=='ecafe_wp_performance'){
1111 echo '<div class="ecafe-panel-widget-page">';
1112 /*widget list*/
1113 echo '<form class="cmb-form" action="'.esc_url( admin_url('admin-post.php') ).'" method="post" id="ecafe_wp_performance" enctype="multipart/form-data" encoding="multipart/form-data">';
1114 wp_nonce_field( 'nonce_ecafe_wp_performance_action', 'nonce_ecafe_wp_performance' );
1115 echo '<div class="ecafe-panel-row widget-list">';
1116 echo $this->ecafeRenderWpPerfomanceList();
1117 echo '</div>';
1118 echo '<input type="hidden" name="action" value="ecafe_wp_performance_options_save">';
1119 echo '<input type="submit" name="submit-key" value="Save" class="button-primary ecafe-submit-widget">';
1120 echo '</form>';
1121 /*widget list*/
1122 echo '</div>';
1123 }
1124
1125
1126 if($tabForm['id']=='ecafe_white_label'){
1127 do_action('ecafeWhiteLabelFree');
1128 }
1129 endforeach;
1130 $show .= ob_get_clean();
1131 }
1132 $show .='</div>';
1133
1134 $show .='</div>';
1135 echo wp_kses_normalize_entities($show);
1136 }
1137
1138 /**
1139 * Fields option
1140 */
1141 public function fieldsOption(){
1142 if (!empty($this->metaboxOptions)) {
1143 return $this->metaboxOptions;
1144 }
1145
1146 $this->metaboxOptions[] = array(
1147 'id' => 'ecafe_welcome',
1148 'title' => 'Welcome',
1149 'show_on' => array(
1150 'key' => 'option-page',
1151 'value' => array(
1152 'ecafe_welcome'
1153 )
1154 ),
1155 'show_names' => true,
1156 'fields' => ''
1157 );
1158
1159 $this->metaboxOptions[] = array(
1160 'id' => 'ecafe_widgets',
1161 'title' => 'Widgets',
1162 'show_on' => array(
1163 'key' => 'option-page',
1164 'value' => array(
1165 'ecafe_widgets'
1166 )
1167 ),
1168 'show_names' => true,
1169 'fields' => '',
1170 );
1171
1172 $this->metaboxOptions[] = array(
1173 'id' => 'ecafe_extension',
1174 'title' => 'Extension',
1175 'show_on' => array(
1176 'key' => 'option-page',
1177 'value' => array(
1178 'ecafe_extension'
1179 )
1180 ),
1181 'show_names' => true,
1182 'fields' => '',
1183 );
1184
1185 $this->metaboxOptions[] = array(
1186 'id' => 'ecafe_wp_performance',
1187 'title' => 'WP Performance',
1188 'show_on' => array(
1189 'key' => 'option-page',
1190 'value' => array(
1191 'ecafe_wp_performance'
1192 )
1193 ),
1194 'show_names' => true,
1195 'fields' => '',
1196 );
1197
1198 $this->metaboxOptions[] = array(
1199 'id' => 'ecafe_white_label',
1200 'title' => 'White Label',
1201 'show_on' => array(
1202 'key' => 'option-page',
1203 'value' => array(
1204 'ecafe_white_label'
1205 )
1206 ),
1207 'show_names' => true,
1208 'fields' => '',
1209 );
1210 return $this->metaboxOptions;
1211 }
1212
1213 /**
1214 * Option key get
1215 */
1216 public function optionKeyGet($fieldId)
1217 {
1218 $optionTabs = $this->fieldsOption();
1219 foreach ($optionTabs as $optionTab) {
1220 foreach ($optionTab['fields'] as $field) {
1221 if ($field['id'] == $fieldId) {
1222 return $optionTab['id'];
1223 }
1224 }
1225 }
1226 return $this->key;
1227 }
1228
1229 public function __get($field)
1230 {
1231 if (in_array($field, array('key','fields','title','optionsPage'), true)) {
1232 return $this->{$field};
1233 }
1234 if ('metaboxOptions' === $field) {
1235 return $this->fieldsOption();
1236 }
1237
1238 throw new Exception('Invalid property: ' . $field);
1239 }
1240
1241 }
1242
1243 $EcafePluginOptions = new EcafePluginOptions();
1244 $EcafePluginOptions->hooks();
1245
1246 function EcafeElementorGetOption($key = '')
1247 {
1248 global $EcafePluginOptions;
1249 return cmb_get_option($EcafePluginOptions->key, $key);
1250 }