PluginProbe ʕ •ᴥ•ʔ
Essential Classy Addons for Elementor – 150+ Widgets, Templates & Performance Tools / 3.0.38
Essential Classy Addons for Elementor – 150+ Widgets, Templates & Performance Tools v3.0.38
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
builders 1 year ago documents 1 year ago builder-content.php 1 year ago class-helper.php 1 year ago class-loader.php 1 year ago class-panel-options.php 1 year ago conditions-file.php 1 year ago conditions-rules.php 1 year ago elementor-document.php 1 year ago theme-builder.php 1 year ago widgets-passing-lists.php 1 year ago
class-panel-options.php
2003 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 $ecafefields = array();
14 protected $fields;
15 protected $widget_lists;
16 protected $title = '';
17 protected $optionsPage = '';
18 protected $optionsPages = array();
19
20 /**
21 * Constructor
22 */
23 public function __construct() {
24
25 if(defined('ECAFEP_VERSION') && is_admin()){
26 $get_values = unserialize(get_option('ecafewhitelabel'));
27 $this->title = (!empty($get_values['plugin_name_free'])) ? $get_values['plugin_name_free'] : 'Essential Classy';
28 $plugin_brand_image = (!empty($get_values['plugin_brand_image'])) ? $get_values['plugin_brand_image'] : '';
29 if(!empty($plugin_brand_image)){
30 $logo = wp_get_attachment_image_url($plugin_brand_image, 'full');
31 if ($logo) {
32 add_action('admin_enqueue_scripts', function () use ($logo) {
33 wp_register_style('ecafe-wl-style', false);
34 wp_enqueue_style('ecafe-wl-style');
35 $custom_css = "
36 .wp-menu-image.dashicons-before.dashicons-ecafe-settings {
37 background: url('". esc_url($logo) ."') no-repeat center center !important;
38 background-size: contain;
39 }
40 ";
41 wp_add_inline_style('ecafe-wl-style', $custom_css);
42 });
43 }
44 }
45 }else{
46 $this->title = esc_html__('Essential Classy', 'essential-classy-addons-for-elementor');
47 }
48
49 $this->fields = array();
50 $this->ecafeWidgetList();
51
52 if(is_admin()){
53 add_action( 'admin_post_ecafe_widgets_options_save', array( $this,'widgetsSaveFire') );
54 add_action( 'admin_post_ecafe_extension_options_save', array( $this,'extraListSaveOptions') );
55 add_action( 'admin_post_ecafe_wp_performance_options_save', array( $this,'wpPerformanceSaveOptions') );
56
57 if(!defined("ECAFEP_VERSION")){
58 add_action('ecafeWhiteLabelFree', array( $this,'ecafeWhiteLabel'));
59 }
60 }
61
62 $ecafewidgetsPage=get_option('ecafe_widgets');
63 if(!empty($ecafewidgetsPage) && isset($ecafewidgetsPage['widgetsload']) && !empty($ecafewidgetsPage['widgetsload'])){
64 if(in_array('ecafe-preloader',$ecafewidgetsPage['widgetsload'])){
65 add_filter('body_class', function($classes) { return array_merge($classes, ['ec-preloader-active']); });
66 add_action('wp_body_open', array( $this,'ecafe_add_preloader'));
67 }
68 }
69
70 $ecafe_extension = get_option( 'ecafe_extension' );
71
72 if(!empty($ecafe_extension) && isset($ecafe_extension['extrasList']) && !empty($ecafe_extension['extrasList'])){
73 if(in_array('ecafe-live-copy',$ecafe_extension['extrasList'])){
74 require ECAFE_LIVECOPY_PATH.'ec-live-copy.php';
75 }
76 }
77
78 $wpPerf = get_option( 'ecafe_wp_performance' );
79
80 if(!empty($wpPerf) && isset($wpPerf['wpperformanceList']) && !empty($wpPerf['wpperformanceList'])){
81
82 //emoji_scripts
83 if(in_array('emoji_scripts',$wpPerf['wpperformanceList'])){
84 add_action( 'init', 'ec_emoji_scripts' );
85 function ec_emoji_scripts() {
86 remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
87 remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
88 if (function_exists('wp_enqueue_emoji_styles')) {
89 remove_action( 'wp_enqueue_scripts', 'wp_enqueue_emoji_styles' );
90 remove_action( 'admin_enqueue_scripts', 'wp_enqueue_emoji_styles' );
91 } else if (version_compare(get_bloginfo('version'), '6.4.0', '<')) {
92 remove_action( 'wp_print_styles', 'print_emoji_styles' );
93 remove_action( 'admin_print_styles', 'print_emoji_styles' );
94 }
95
96 remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
97 remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
98 remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
99
100 add_filter('tiny_mce_plugins', function ($plugins) {
101 if (is_array($plugins)) {
102 return array_diff($plugins, array('wpemoji'));
103 } else {
104 return array();
105 }
106 });
107
108 add_filter('wp_resource_hints', function ($urls, $relation_type) {
109 if ('dns-prefetch' === $relation_type) {
110 $emoji_svg_url = apply_filters('emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/');
111
112 $urls = array_diff($urls, array($emoji_svg_url));
113 }
114
115 return $urls;
116 }, 10, 2);
117 }
118 }
119
120 //disable_embeds
121 if(in_array('disable_embeds',$wpPerf['wpperformanceList'])){
122 add_action('init', 'ec_disable_embeds', 9999);
123 function ec_disable_embeds(){
124 global $wp;
125 $wp->public_query_vars = array_diff($wp->public_query_vars, array('embed'));
126 add_filter('embed_oembed_discover', '__return_false');
127 remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);
128 remove_action('wp_head', 'wp_oembed_add_discovery_links');
129 remove_action('wp_head', 'wp_oembed_add_host_js');
130 add_filter('tiny_mce_plugins', function( $plugins ) {
131 return array_diff($plugins, array('wpembed'));
132 });
133 add_filter('rewrite_rules_array', function($rules) {
134 foreach($rules as $rule => $rewrite) {
135 if(false !== strpos($rewrite, 'embed=true')) {
136 unset($rules[$rule]);
137 }
138 }
139 return $rules;
140 });
141 remove_filter('pre_oembed_result', 'wp_filter_pre_oembed_result', 10);
142 }
143 }
144
145 //pass_str_mtr
146 if(in_array('pass_str_mtr',$wpPerf['wpperformanceList'])){
147 add_action('wp_print_scripts', function(){
148 if( is_admin() ) {
149 return;
150 }
151
152 if( ( isset($GLOBALS['pagenow']) && $GLOBALS['pagenow'] === 'wp-login.php' ) || ( isset($_GET['action']) && in_array($_GET['action'], array('register','rp', 'lostpassword' )) ) ) {
153 return;
154 }
155
156 if( class_exists('WooCommerce') && (is_account_page() || is_checkout()) ) {
157 return;
158 }
159
160 wp_dequeue_script('password-strength-meter');
161 wp_deregister_script('password-strength-meter');
162
163 wp_dequeue_script('wc-password-strength-meter');
164 wp_deregister_script('wc-password-strength-meter');
165
166 wp_dequeue_script('zxcvbn-async');
167 wp_deregister_script('zxcvbn-async');
168
169 }, 100);
170 }
171
172 //xml_rpc
173 if(in_array('xml_rpc',$wpPerf['wpperformanceList'])){
174 add_filter('xmlrpc_enabled', '__return_false');
175 add_filter('wp_headers', 'ecp_remove_x_pingback');
176 add_filter('pings_open', '__return_false', 9999);
177 add_filter('pre_update_option_enable_xmlrpc', '__return_false');
178 add_filter('pre_option_enable_xmlrpc', '__return_zero');
179 add_action('init', 'ecp_xmlrpc_header');
180
181 function ecp_remove_x_pingback($headers){
182 unset($headers['X-Pingback'], $headers['x-pingback']);
183 return $headers;
184 }
185
186 function ecp_xmlrpc_header() {
187 if(!isset($_SERVER['SCRIPT_FILENAME'])) {
188 return;
189 }
190
191 if( basename($_SERVER['SCRIPT_FILENAME']) !== 'xmlrpc.php' ) {
192 return;
193 }
194
195 $header = 'HTTP/1.1 Error 403 Forbidden';
196 header($header);
197 echo $header;
198 die();
199 }
200 }
201
202 //disable_dashicons
203 if(in_array('disable_dashicons',$wpPerf['wpperformanceList'])){
204 add_action('wp_enqueue_scripts', 'ec_disable_dashicons');
205 function ec_disable_dashicons(){
206 if(!is_user_logged_in()) {
207 wp_dequeue_style('dashicons');
208 wp_deregister_style('dashicons');
209 }
210 }
211 }
212
213 //rsd_link
214 if(in_array('rsd_link',$wpPerf['wpperformanceList'])){
215 remove_action('wp_head', 'rsd_link');
216 }
217
218 //shortlink
219 if(in_array('shortlink',$wpPerf['wpperformanceList'])){
220 remove_action('wp_head', 'wp_shortlink_wp_head');
221 remove_action ('template_redirect', 'wp_shortlink_header', 11, 0);
222 }
223
224 //wlwmanifest_link
225 if(in_array('wlwmanifest_link',$wpPerf['wpperformanceList'])){
226 remove_action('wp_head', 'wlwmanifest_link');
227 }
228
229 //self_pingbacks
230 if(in_array('self_pingbacks',$wpPerf['wpperformanceList'])){
231 add_action('pre_ping', 'selfPingbacks');
232 function selfPingbacks( &$links ){
233 $home = home_url();
234 foreach($links as $l => $link) {
235 if(strpos($link, $home) === 0) {
236 unset($links[$l]);
237 }
238 }
239 }
240 }
241
242 //wp_version
243 if(in_array('wp_version',$wpPerf['wpperformanceList'])){
244 remove_action('wp_head', 'wp_generator');
245 add_filter('the_generator', function(){
246 return '';
247 });
248 }
249
250 //rss_feeds
251 if(in_array('rss_feeds',$wpPerf['wpperformanceList'])){
252 add_action('template_redirect', 'ecRssFeeds', 1);
253 function ecRssFeeds() {
254 if(!is_feed() || is_404()) {
255 return;
256 }
257
258 global $wp_rewrite;
259 global $wp_query;
260
261 if(isset($_GET['feed'])) {
262 wp_redirect(esc_url_raw(remove_query_arg('feed')), 301);
263 exit;
264 }
265
266 if(get_query_var('feed') !== 'old') {
267 set_query_var('feed', '');
268 }
269
270 redirect_canonical();
271
272 /* translators: %s: URL to home page */
273 wp_die(sprintf(__("No feed available, go to <a href='%s'>Home Page</a>!",'essential-classy-addons-for-elementor'), esc_url(home_url('/'))));
274 }
275 }
276
277 //rss_feed_link
278 if(in_array('rss_feed_link',$wpPerf['wpperformanceList'])){
279 remove_action('wp_head', 'feed_links_extra', 3);
280 remove_action('wp_head', 'feed_links', 2);
281 }
282
283 }
284 }
285
286 /**
287 * Hooks
288 */
289 public function hooks() {
290 add_action('admin_init', array($this,'init'));
291 add_action('admin_menu', array($this,'optionsPageAppend'));
292 }
293
294 /**
295 * Init
296 */
297 public function init() {
298 $optionTabs = self::fieldsOption();
299 foreach ($optionTabs as $index => $optionTab) {
300 register_setting($optionTab['id'], $optionTab['id']);
301 }
302 }
303
304 /**
305 * Pre Loader
306 */
307 public function ecafe_add_preloader(){
308 echo '<div class="ec-pre-loader"><div class="ec-pre-loader-in"></div></div>';
309 }
310
311 /**
312 * White Label
313 */
314 public function ecafeWhiteLabel(){
315 echo '<div class="ecafe-licence-whitelabel">
316 <h1>'.esc_html__( 'Unlock Pro Features...', 'essential-classy-addons-for-elementor' ).'</h1>
317 <ul>
318 <li>STEP I : Go to <a href="https://ecaddons.com/">Essential Classy Addons For Elementor</a> and Buy Pro Version.</li>
319 <li>STEP II : Download and Install Plugin.</li>
320 <li>STEP III : Activate and Unlock Pro Features...</li>
321 </ul>
322 <img src='.ECAFE_URL.'assets/images/whitelabel.png />
323 </div>';
324 }
325
326 /**
327 * Widget save and fire action
328 */
329 public function widgetsSaveFire() {
330 $actionPage = 'ecafe_widgets';
331 if(isset($_POST["submit-key"]) && !empty($_POST["submit-key"]) && $_POST["submit-key"]=='Save'){
332 $nonce = isset( $_POST['nonce_ecafe_widgets'] ) ? sanitize_text_field(wp_unslash($_POST['nonce_ecafe_widgets'])) : '';
333 if ( ! isset( $nonce ) || ! wp_verify_nonce( $nonce, 'nonce_ecafe_widgets_action' ) ) {
334 wp_redirect(admin_url('admin.php?page='.$actionPage));
335 } else {
336 if (get_option($actionPage) === FALSE){
337 $defaultValue = array('widgetsload' => '');
338 add_option($actionPage,$defaultValue);
339 wp_redirect(admin_url('admin.php?page=ecafe_widgets'));
340 }else{
341 $updateValue=[];
342 $widgetsload = isset( $_POST['widgetsload'] ) ? array_map( 'sanitize_text_field',wp_unslash($_POST['widgetsload'])) : [];
343 if( isset( $widgetsload ) && !empty( $widgetsload ) ){
344 $updateValue['widgetsload'] = $widgetsload;
345 }else if(empty($widgetsload)){
346 $updateValue['widgetsload'] = '';
347 }
348 update_option( $actionPage, $updateValue );
349 wp_redirect(admin_url('admin.php?page='.$actionPage));
350 }
351 }
352
353 }else{
354 wp_redirect(admin_url('admin.php?page='.$actionPage));
355 }
356 }
357
358 /**
359 * Extras List Save Options
360 */
361 public function extraListSaveOptions() {
362 $actionPage = 'ecafe_extension';
363 if(isset($_POST["submit-key"]) && !empty($_POST["submit-key"]) && $_POST["submit-key"]=='Save'){
364 $nonce = isset( $_POST['nonce_ecafe_extension'] ) ? sanitize_text_field(wp_unslash($_POST['nonce_ecafe_extension'])) : '';
365 if ( ! isset( $nonce ) || ! wp_verify_nonce( $nonce, 'nonce_ecafe_extension_action' ) ) {
366 wp_redirect(admin_url('admin.php?page='.$actionPage));
367 } else {
368 if (get_option($actionPage) === FALSE){
369 $extrasList = isset( $_POST['extrasList'] ) ? array_map( 'sanitize_text_field',wp_unslash($_POST['extrasList'])) : [];
370 $defaultValue = array('extrasList' => $extrasList);
371 add_option($actionPage,$defaultValue);
372 wp_redirect(admin_url('admin.php?page='.$actionPage));
373 }else{
374 $updateValue=[];
375 $extrasList = isset( $_POST['extrasList'] ) ? array_map( 'sanitize_text_field',wp_unslash($_POST['extrasList'])) : [];
376 if( isset( $extrasList ) && !empty( $extrasList ) ){
377 $updateValue['extrasList'] = $extrasList;
378 }else if(empty($extrasList)){
379 $updateValue['extrasList'] = '';
380 }
381 update_option( $actionPage, $updateValue );
382 wp_redirect(admin_url('admin.php?page='.$actionPage));
383 }
384 }
385
386 }else{
387 wp_redirect(admin_url('admin.php?page='.$actionPage));
388 }
389 }
390
391
392 /**
393 * WP Performance Save Options
394 */
395 public function wpPerformanceSaveOptions() {
396 $actionPage = 'ecafe_wp_performance';
397 if(isset($_POST["submit-key"]) && !empty($_POST["submit-key"]) && $_POST["submit-key"]=='Save'){
398 $nonce = isset( $_POST['nonce_ecafe_wp_performance'] ) ? sanitize_text_field(wp_unslash($_POST['nonce_ecafe_wp_performance'])) : '';
399 if ( ! isset( $nonce ) || ! wp_verify_nonce( $nonce, 'nonce_ecafe_wp_performance_action' ) ) {
400 wp_redirect(admin_url('admin.php?page='.$actionPage));
401 } else {
402 if (get_option($actionPage) === FALSE){
403 $wpperformanceList = isset( $_POST['wpperformanceList'] ) ? array_map( 'sanitize_text_field',wp_unslash($_POST['wpperformanceList'])) : [];
404 $defaultValue = array('wpperformanceList' => $wpperformanceList);
405 add_option($actionPage,$defaultValue);
406 wp_redirect(admin_url('admin.php?page='.$actionPage));
407 }else{
408 $updateValue=[];
409 $wpperformanceList = isset( $_POST['wpperformanceList'] ) ? array_map( 'sanitize_text_field',wp_unslash($_POST['wpperformanceList'])) : [];
410 if( isset( $wpperformanceList ) && !empty( $wpperformanceList ) ){
411 $updateValue['wpperformanceList'] = $wpperformanceList;
412 }else if(empty($wpperformanceList)){
413 $updateValue['wpperformanceList'] = '';
414 }
415 update_option( $actionPage, $updateValue );
416 wp_redirect(admin_url('admin.php?page='.$actionPage));
417 }
418 }
419
420 }else{
421 wp_redirect(admin_url('admin.php?page='.$actionPage));
422 }
423 }
424
425 /**
426 * Widget lists
427 */
428 public function ecafeWidgetList(){
429 $this->widget_lists = [
430 'ecafe-accordion' => [
431 'label' => esc_html__('Accordion','essential-classy-addons-for-elementor'),
432 'catlist' => 'essential',
433 'tag' => 'free',
434 ],
435 'ecafe-adv-text-block' => [
436 'label' => esc_html__('Advanced Text Block','essential-classy-addons-for-elementor'),
437 'catlist' => 'essential',
438 'tag' => 'free',
439 ],
440 'ecafe-advanced-button' => [
441 'label' => esc_html__('Advanced Button','essential-classy-addons-for-elementor'),
442 'catlist' => 'pro',
443 'tag' => 'pro',
444 ],
445 'ecafe-back-to-top' => [
446 'label' => esc_html__('Back to Top','essential-classy-addons-for-elementor'),
447 'catlist' => 'essential',
448 'tag' => 'free',
449 ],
450 'ecafe-beforeafter-image' => [
451 'label' => esc_html__('Before After Image','essential-classy-addons-for-elementor'),
452 'catlist' => 'pro',
453 'tag' => 'pro',
454 ],
455 'ecafe-blockquote' => [
456 'label' => esc_html__('Blockquote','essential-classy-addons-for-elementor'),
457 'catlist' => 'pro',
458 'tag' => 'pro',
459 ],
460 'ecafe-business-hours' => [
461 'label' => esc_html__('Business Hours','essential-classy-addons-for-elementor'),
462 'catlist' => 'essential',
463 'tag' => 'free',
464 ],
465 'ecafe-button' => [
466 'label' => esc_html__('Button','essential-classy-addons-for-elementor'),
467 'catlist' => 'essential',
468 'tag' => 'free',
469 ],
470 'ecafe-calendly' => [
471 'label' => esc_html__('Calendly','essential-classy-addons-for-elementor'),
472 'catlist' => 'essential',
473 'tag' => 'free',
474 ],
475 'ecafe-changelog' => [
476 'label' => esc_html__('Changelog','essential-classy-addons-for-elementor'),
477 'catlist' => 'essential',
478 'tag' => 'free',
479 ],
480 'ecafe-chart' => [
481 'label' => esc_html__('Chart','essential-classy-addons-for-elementor'),
482 'catlist' => 'essential',
483 'tag' => 'free',
484 ],
485 'ecafe-circle-menu' => [
486 'label' => esc_html__('Circle Menu','essential-classy-addons-for-elementor'),
487 'catlist' => 'pro',
488 'tag' => 'pro',
489 ],
490 'ecafe-contact-form-7' => [
491 'label' => esc_html__('Contact Form 7','essential-classy-addons-for-elementor'),
492 'catlist' => 'forms',
493 'tag' => 'free',
494 ],
495 'ecafe-copyright' => [
496 'label' => esc_html__('Copyright','essential-classy-addons-for-elementor'),
497 'catlist' => 'essential',
498 'tag' => 'free',
499 ],
500 'ecafe-count-down' => [
501 'label' => esc_html__('Countdown','essential-classy-addons-for-elementor'),
502 'catlist' => 'essential',
503 'tag' => 'free',
504 ],
505 'ecafe-coupon-code' => [
506 'label' => esc_html__('Coupon Code','essential-classy-addons-for-elementor'),
507 'catlist' => 'essential',
508 'tag' => 'free',
509 ],
510 'ecafe-creative-gallery' => [
511 'label' => esc_html__('Creative Gallery','essential-classy-addons-for-elementor'),
512 'catlist' => 'essential',
513 'tag' => 'free',
514 ],
515 'ecafe-creative-title' => [
516 'label' => esc_html__('Creative Title','essential-classy-addons-for-elementor'),
517 'catlist' => 'essential',
518 'tag' => 'free',
519 ],
520 'ecafe-darkmode-styling' => [
521 'label' => esc_html__('Dark Mode Styling','essential-classy-addons-for-elementor'),
522 'catlist' => 'essential',
523 'tag' => 'free',
524 ],
525 'ecafe-design-grid-layout' => [
526 'label' => esc_html__('Design Grid Layout','essential-classy-addons-for-elementor'),
527 'catlist' => 'pro',
528 'tag' => 'pro',
529 ],
530 'ecafe-device-mockup' => [
531 'label' => esc_html__('Device Mockup','essential-classy-addons-for-elementor'),
532 'catlist' => 'pro',
533 'tag' => 'pro',
534 ],
535 'ecafe-draw-svg' => [
536 'label' => esc_html__('Draw SVG','essential-classy-addons-for-elementor'),
537 'catlist' => 'pro',
538 'tag' => 'pro',
539 ],
540 'ecafe-dropcap' => [
541 'label' => esc_html__('Dropcap','essential-classy-addons-for-elementor'),
542 'catlist' => 'essential',
543 'tag' => 'free',
544 ],
545 'ecafe-dynamic-ticker' => [
546 'label' => esc_html__('Dynamic Ticker','essential-classy-addons-for-elementor'),
547 'catlist' => 'pro',
548 'tag' => 'pro',
549 ],
550 'ecafe-flipbox' => [
551 'label' => esc_html__('Flipbox','essential-classy-addons-for-elementor'),
552 'catlist' => 'essential',
553 'tag' => 'free',
554 ],
555 'ecafe-flipbox-grid' => [
556 'label' => esc_html__('Flipbox Grid','essential-classy-addons-for-elementor'),
557 'catlist' => 'pro',
558 'tag' => 'pro',
559 ],
560 'ecafe-flipbox-slider' => [
561 'label' => esc_html__('Flipbox Slider','essential-classy-addons-for-elementor'),
562 'catlist' => 'pro',
563 'tag' => 'pro',
564 ],
565 'ecafe-freebusy' => [
566 'label' => esc_html__('Freebusy','essential-classy-addons-for-elementor'),
567 'catlist' => 'essential',
568 'tag' => 'free',
569 ],
570 'ecafe-gravity-forms' => [
571 'label' => esc_html__('Gravity Forms','essential-classy-addons-for-elementor'),
572 'catlist' => 'forms',
573 'tag' => 'free',
574 ],
575 'ecafe-grid-custom-listing' => [
576 'label' => esc_html__('Grid Custom Listing','essential-classy-addons-for-elementor'),
577 'catlist' => 'pro',
578 'tag' => 'pro',
579 ],
580 'ecafe-grid-post-listing' => [
581 'label' => esc_html__('Grid Post Listing','essential-classy-addons-for-elementor'),
582 'catlist' => 'essential',
583 'tag' => 'free',
584 ],
585 'ecafe-heading-animation' => [
586 'label' => esc_html__('Heading Animation','essential-classy-addons-for-elementor'),
587 'catlist' => 'pro',
588 'tag' => 'pro',
589 ],
590 'ecafe-heading-gradient-animation' => [
591 'label' => esc_html__('Heading Gradient Animation','essential-classy-addons-for-elementor'),
592 'catlist' => 'pro',
593 'tag' => 'pro',
594 ],
595 'ecafe-hotspot' => [
596 'label' => esc_html__('Hotspot','essential-classy-addons-for-elementor'),
597 'catlist' => 'pro',
598 'tag' => 'pro',
599 ],
600 'ecafe-hover-background' => [
601 'label' => esc_html__('Hover Background','essential-classy-addons-for-elementor'),
602 'catlist' => 'essential',
603 'tag' => 'free',
604 ],
605 'ecafe-image-accordion' => [
606 'label' => esc_html__('Image Accordion','essential-classy-addons-for-elementor'),
607 'catlist' => 'essential',
608 'tag' => 'free',
609 ],
610 'ecafe-image-hover-effect' => [
611 'label' => esc_html__('Image Hover Effect','essential-classy-addons-for-elementor'),
612 'catlist' => 'essential',
613 'tag' => 'free',
614 ],
615 'ecafe-image-info-slide' => [
616 'label' => esc_html__('Image Info Slide','essential-classy-addons-for-elementor'),
617 'catlist' => 'pro',
618 'tag' => 'pro',
619 ],
620 'ecafe-image-scroll' => [
621 'label' => esc_html__('Image Scroll','essential-classy-addons-for-elementor'),
622 'catlist' => 'essential',
623 'tag' => 'free',
624 ],
625 'ecafe-infobox' => [
626 'label' => esc_html__('Info Box','essential-classy-addons-for-elementor'),
627 'catlist' => 'essential',
628 'tag' => 'free',
629 ],
630 'ecafe-infobox-grid' => [
631 'label' => esc_html__('Info Box Grid','essential-classy-addons-for-elementor'),
632 'catlist' => 'pro',
633 'tag' => 'pro',
634 ],
635 'ecafe-infobox-slider' => [
636 'label' => esc_html__('Info Box Slider','essential-classy-addons-for-elementor'),
637 'catlist' => 'pro',
638 'tag' => 'pro',
639 ],
640 'ecafe-infocard' => [
641 'label' => esc_html__('Info Card','essential-classy-addons-for-elementor'),
642 'catlist' => 'essential',
643 'tag' => 'free',
644 ],
645 'ecafe-infocard-grid' => [
646 'label' => esc_html__('Info Card Grid','essential-classy-addons-for-elementor'),
647 'catlist' => 'pro',
648 'tag' => 'pro',
649 ],
650 'ecafe-infocard-slider' => [
651 'label' => esc_html__('Info Card Slider','essential-classy-addons-for-elementor'),
652 'catlist' => 'pro',
653 'tag' => 'pro',
654 ],
655 'ecafe-infocircle' => [
656 'label' => esc_html__('Info Circle','essential-classy-addons-for-elementor'),
657 'catlist' => 'essential',
658 'tag' => 'free',
659 ],
660 'ecafe-infoprofile' => [
661 'label' => esc_html__('Info Profile','essential-classy-addons-for-elementor'),
662 'catlist' => 'essential',
663 'tag' => 'free',
664 ],
665 'ecafe-infoprofile-grid' => [
666 'label' => esc_html__('Info Profile Grid','essential-classy-addons-for-elementor'),
667 'catlist' => 'pro',
668 'tag' => 'pro',
669 ],
670 'ecafe-infoprofile-slider' => [
671 'label' => esc_html__('Info Profile Slider','essential-classy-addons-for-elementor'),
672 'catlist' => 'pro',
673 'tag' => 'pro',
674 ],
675 'ecafe-infounfold' => [
676 'label' => esc_html__('Info Unfold Card','essential-classy-addons-for-elementor'),
677 'catlist' => 'essential',
678 'tag' => 'free',
679 ],
680 'ecafe-layer-image' => [
681 'label' => esc_html__('Layer Image','essential-classy-addons-for-elementor'),
682 'catlist' => 'pro',
683 'tag' => 'pro',
684 ],
685 'ecafe-lottie' => [
686 'label' => esc_html__('Lottie','essential-classy-addons-for-elementor'),
687 'catlist' => 'essential',
688 'tag' => 'free',
689 ],
690 'ecafe-magazine-repeater-listing' => [
691 'label' => esc_html__('Magazine Repeater Listing','essential-classy-addons-for-elementor'),
692 'catlist' => 'pro',
693 'tag' => 'pro',
694 ],
695 'ecafe-magazine-listing' => [
696 'label' => esc_html__('Magazine Post Listing','essential-classy-addons-for-elementor'),
697 'catlist' => 'pro',
698 'tag' => 'pro',
699 ],
700 'ecafe-mailchimp' => [
701 'label' => esc_html__('Mailchimp','essential-classy-addons-for-elementor'),
702 'catlist' => 'pro',
703 'tag' => 'pro',
704 ],
705 'ecafe-marketing-link' => [
706 'label' => esc_html__('Marketing Link','essential-classy-addons-for-elementor'),
707 'catlist' => 'essential',
708 'tag' => 'free',
709 ],
710 'ecafe-marquee-text' => [
711 'label' => esc_html__('Marquee Text','essential-classy-addons-for-elementor'),
712 'catlist' => 'essential',
713 'tag' => 'free',
714 ],
715 'ecafe-messagebox' => [
716 'label' => esc_html__('Message Box','essential-classy-addons-for-elementor'),
717 'catlist' => 'pro',
718 'tag' => 'pro',
719 ],
720 'ecafe-mobilemenu' => [
721 'label' => esc_html__('Mobile Menu','essential-classy-addons-for-elementor'),
722 'catlist' => 'pro',
723 'tag' => 'pro',
724 ],
725 'ecafe-navigation-menu' => [
726 'label' => esc_html__('Navigation Menu','essential-classy-addons-for-elementor'),
727 'catlist' => 'pro',
728 'tag' => 'pro',
729 ],
730 'ecafe-page-piling' => [
731 'label' => esc_html__('Page Piling','essential-classy-addons-for-elementor'),
732 'catlist' => 'essential',
733 'tag' => 'free',
734 ],
735 'ecafe-particles-effects' => [
736 'label' => esc_html__('Particles Effects','essential-classy-addons-for-elementor'),
737 'catlist' => 'pro',
738 'tag' => 'pro',
739 ],
740 'ecafe-pdf-viewer' => [
741 'label' => esc_html__('PDF Viewer','essential-classy-addons-for-elementor'),
742 'catlist' => 'essential',
743 'tag' => 'free',
744 ],
745 'ecafe-popup-offcanvas' => [
746 'label' => esc_html__('Popup / Offcanvas','essential-classy-addons-for-elementor'),
747 'catlist' => 'pro',
748 'tag' => 'pro',
749 ],
750 'ecafe-preloader' => [
751 'label' => esc_html__('Pre Loader','essential-classy-addons-for-elementor'),
752 'catlist' => 'essential',
753 'tag' => 'free',
754 ],
755 'ecafe-pricing-menu' => [
756 'label' => esc_html__('Pricing Menu','essential-classy-addons-for-elementor'),
757 'catlist' => 'pro',
758 'tag' => 'pro',
759 ],
760 'ecafe-pricing-table' => [
761 'label' => esc_html__('Pricing Table','essential-classy-addons-for-elementor'),
762 'catlist' => 'pro',
763 'tag' => 'pro',
764 ],
765 'ecafe-product-category-grid' => [
766 'label' => esc_html__('Product Category Grid','essential-classy-addons-for-elementor'),
767 'catlist' => 'pro',
768 'tag' => 'pro',
769 ],
770 'ecafe-product-category-slide' => [
771 'label' => esc_html__('Product Category Slide','essential-classy-addons-for-elementor'),
772 'catlist' => 'pro',
773 'tag' => 'pro',
774 ],
775 'ecafe-product-grid' => [
776 'label' => esc_html__('Product Grid','essential-classy-addons-for-elementor'),
777 'catlist' => 'pro',
778 'tag' => 'pro',
779 ],
780 'ecafe-product-slide' => [
781 'label' => esc_html__('Product Slide','essential-classy-addons-for-elementor'),
782 'catlist' => 'pro',
783 'tag' => 'pro',
784 ],
785 'ecafe-qr-code' => [
786 'label' => esc_html__('QR Code','essential-classy-addons-for-elementor'),
787 'catlist' => 'essential',
788 'tag' => 'free',
789 ],
790 'ecafe-scroll-background' => [
791 'label' => esc_html__('Scroll Background','essential-classy-addons-for-elementor'),
792 'catlist' => 'pro',
793 'tag' => 'pro',
794 ],
795 'ecafe-scroll-image' => [
796 'label' => esc_html__('Scroll Image','essential-classy-addons-for-elementor'),
797 'catlist' => 'pro',
798 'tag' => 'pro',
799 ],
800 'ecafe-scroll-progress' => [
801 'label' => esc_html__('Scroll Progress','essential-classy-addons-for-elementor'),
802 'catlist' => 'essential',
803 'tag' => 'free',
804 ],
805 'ecafe-service-lists' => [
806 'label' => esc_html__('Service Lists','essential-classy-addons-for-elementor'),
807 'catlist' => 'essential',
808 'tag' => 'free',
809 ],
810 'ecafe-slide-anything' => [
811 'label' => esc_html__('Slide Anything','essential-classy-addons-for-elementor'),
812 'catlist' => 'pro',
813 'tag' => 'pro',
814 ],
815 'ecafe-slide-custom-listing' => [
816 'label' => esc_html__('Slide Custom Listing','essential-classy-addons-for-elementor'),
817 'catlist' => 'pro',
818 'tag' => 'pro',
819 ],
820 'ecafe-slide-post-listing' => [
821 'label' => esc_html__('Slide Post Listing','essential-classy-addons-for-elementor'),
822 'catlist' => 'pro',
823 'tag' => 'pro',
824 ],
825 'ecafe-smart-listing' => [
826 'label' => esc_html__('Smart Listing','essential-classy-addons-for-elementor'),
827 'catlist' => 'pro',
828 'tag' => 'pro',
829 ],
830 'ecafe-smart-custom-listing' => [
831 'label' => esc_html__('Smart Custom Listing','essential-classy-addons-for-elementor'),
832 'catlist' => 'pro',
833 'tag' => 'pro',
834 ],
835 'ecafe-social-icons' => [
836 'label' => esc_html__('Social Icons','essential-classy-addons-for-elementor'),
837 'catlist' => 'essential',
838 'tag' => 'free',
839 ],
840 'ecafe-steps' => [
841 'label' => esc_html__('Steps','essential-classy-addons-for-elementor'),
842 'catlist' => 'pro',
843 'tag' => 'pro',
844 ],
845 'ecafe-switcher' => [
846 'label' => esc_html__('Switcher','essential-classy-addons-for-elementor'),
847 'catlist' => 'pro',
848 'tag' => 'pro',
849 ],
850 'ecafe-table' => [
851 'label' => esc_html__('Table','essential-classy-addons-for-elementor'),
852 'catlist' => 'pro',
853 'tag' => 'pro',
854 ],
855 'ecafe-toc' => [
856 'label' => esc_html__('Table of Content','essential-classy-addons-for-elementor'),
857 'catlist' => 'essential',
858 'tag' => 'free',
859 ],
860 'ecafe-teammember' => [
861 'label' => esc_html__('Team Member','essential-classy-addons-for-elementor'),
862 'catlist' => 'essential',
863 'tag' => 'free',
864 ],
865 'ecafe-teammember-grid' => [
866 'label' => esc_html__('Team Member Grid','essential-classy-addons-for-elementor'),
867 'catlist' => 'pro',
868 'tag' => 'pro',
869 ],
870 'ecafe-teammember-slider' => [
871 'label' => esc_html__('Team Member Slider','essential-classy-addons-for-elementor'),
872 'catlist' => 'pro',
873 'tag' => 'pro',
874 ],
875 'ecafe-testimonial' => [
876 'label' => esc_html__('Testimonial','essential-classy-addons-for-elementor'),
877 'catlist' => 'essential',
878 'tag' => 'free',
879 ],
880 'ecafe-testimonial-grid' => [
881 'label' => esc_html__('Testimonial Grid','essential-classy-addons-for-elementor'),
882 'catlist' => 'pro',
883 'tag' => 'pro',
884 ],
885 'ecafe-testimonial-slider' => [
886 'label' => esc_html__('Testimonial Slider','essential-classy-addons-for-elementor'),
887 'catlist' => 'pro',
888 'tag' => 'pro',
889 ],
890 'ecafe-timeline' => [
891 'label' => esc_html__('Timeline','essential-classy-addons-for-elementor'),
892 'catlist' => 'pro',
893 'tag' => 'pro',
894 ],
895 'ecafe-title' => [
896 'label' => esc_html__('Title','essential-classy-addons-for-elementor'),
897 'catlist' => 'essential',
898 'tag' => 'free',
899 ],
900 'ecafe-tabs' => [
901 'label' => esc_html__('Tabs','essential-classy-addons-for-elementor'),
902 'catlist' => 'essential',
903 'tag' => 'free',
904 ],
905 'ecafe-text-background' => [
906 'label' => esc_html__('Text Background','essential-classy-addons-for-elementor'),
907 'catlist' => 'essential',
908 'tag' => 'free',
909 ],
910 'ecafe-unfold-content' => [
911 'label' => esc_html__('Unfold Content','essential-classy-addons-for-elementor'),
912 'catlist' => 'pro',
913 'tag' => 'pro',
914 ],
915 'ecafe-whatsapp' => [
916 'label' => esc_html__('Whatsapp','essential-classy-addons-for-elementor'),
917 'catlist' => 'essential',
918 'tag' => 'free',
919 ],
920 'ecafe-wpforms' => [
921 'label' => esc_html__('WPForms','essential-classy-addons-for-elementor'),
922 'catlist' => 'forms',
923 'tag' => 'free',
924 ],
925 'ecafe-woocommerce-cart' => [
926 'label' => esc_html__('WooCommerce Cart','essential-classy-addons-for-elementor'),
927 'catlist' => 'woocommerce',
928 'tag' => 'free',
929 ],
930 'ecafe-woocommerce-checkout' => [
931 'label' => esc_html__('WooCommerce Checkout','essential-classy-addons-for-elementor'),
932 'catlist' => 'woocommerce',
933 'tag' => 'free',
934 ],
935 'ecafe-woocommerce-myaccount' => [
936 'label' => esc_html__('WooCommerce MyAccount','essential-classy-addons-for-elementor'),
937 'catlist' => 'woocommerce',
938 'tag' => 'free',
939 ],
940 'ecafe-woocommerce-ordertrack' => [
941 'label' => esc_html__('WooCommerce Order Track','essential-classy-addons-for-elementor'),
942 'catlist' => 'woocommerce',
943 'tag' => 'free',
944 ],
945 'ecafe-woocommerce-breadcrumb' => [
946 'label' => esc_html__('Woo Breadcrumb','essential-classy-addons-for-elementor'),
947 'catlist' => ['woocommerce','pro'],
948 'tag' => 'pro',
949 ],
950 'ecafe-woocommerce-title' => [
951 'label' => esc_html__('Woo Title','essential-classy-addons-for-elementor'),
952 'catlist' => ['woocommerce','pro'],
953 'tag' => 'pro',
954 ],
955 'ecafe-woocommerce-short-description' => [
956 'label' => esc_html__('Woo Short Description','essential-classy-addons-for-elementor'),
957 'catlist' => ['woocommerce','pro'],
958 'tag' => 'pro',
959 ],
960 'ecafe-woocommerce-product-description' => [
961 'label' => esc_html__('Woo Product Description','essential-classy-addons-for-elementor'),
962 'catlist' => ['woocommerce','pro'],
963 'tag' => 'pro',
964 ],
965 'ecafe-woocommerce-image' => [
966 'label' => esc_html__('Woo Image','essential-classy-addons-for-elementor'),
967 'catlist' => ['woocommerce','pro'],
968 'tag' => 'pro',
969 ],
970 'ecafe-woocommerce-gallery' => [
971 'label' => esc_html__('Woo Gallery','essential-classy-addons-for-elementor'),
972 'catlist' => ['woocommerce','pro'],
973 'tag' => 'pro',
974 ],
975 'ecafe-woocommerce-grid-gallery' => [
976 'label' => esc_html__('Woo Grid Gallery','essential-classy-addons-for-elementor'),
977 'catlist' => ['woocommerce','pro'],
978 'tag' => 'pro',
979 ],
980 'ecafe-woocommerce-slider-gallery' => [
981 'label' => esc_html__('Woo Slider Gallery','essential-classy-addons-for-elementor'),
982 'catlist' => ['woocommerce','pro'],
983 'tag' => 'pro',
984 ],
985 'ecafe-woocommerce-badge' => [
986 'label' => esc_html__('Woo Badge','essential-classy-addons-for-elementor'),
987 'catlist' => ['woocommerce','pro'],
988 'tag' => 'pro',
989 ],
990 'ecafe-woocommerce-rating' => [
991 'label' => esc_html__('Woo Rating','essential-classy-addons-for-elementor'),
992 'catlist' => ['woocommerce','pro'],
993 'tag' => 'pro',
994 ],
995 'ecafe-woocommerce-price' => [
996 'label' => esc_html__('Woo Price','essential-classy-addons-for-elementor'),
997 'catlist' => ['woocommerce','pro'],
998 'tag' => 'pro',
999 ],
1000 'ecafe-woocommerce-stock' => [
1001 'label' => esc_html__('Woo Stock','essential-classy-addons-for-elementor'),
1002 'catlist' => ['woocommerce','pro'],
1003 'tag' => 'pro',
1004 ],
1005 'ecafe-woocommerce-sold-info' => [
1006 'label' => esc_html__('Woo Sold Info','essential-classy-addons-for-elementor'),
1007 'catlist' => ['woocommerce','pro'],
1008 'tag' => 'pro',
1009 ],
1010 'ecafe-woocommerce-attribute' => [
1011 'label' => esc_html__('Woo Attribute','essential-classy-addons-for-elementor'),
1012 'catlist' => ['woocommerce','pro'],
1013 'tag' => 'pro',
1014 ],
1015 'ecafe-woocommerce-add-to-cart' => [
1016 'label' => esc_html__('Woo Add to Cart','essential-classy-addons-for-elementor'),
1017 'catlist' => ['woocommerce','pro'],
1018 'tag' => 'pro',
1019 ],
1020 'ecafe-woocommerce-info-tabs' => [
1021 'label' => esc_html__('Woo Info Tabs','essential-classy-addons-for-elementor'),
1022 'catlist' => ['woocommerce','pro'],
1023 'tag' => 'pro',
1024 ],
1025 'ecafe-woocommerce-navigation' => [
1026 'label' => esc_html__('Woo Navigation','essential-classy-addons-for-elementor'),
1027 'catlist' => ['woocommerce','pro'],
1028 'tag' => 'pro',
1029 ],
1030 'ecafe-facebook-embed' => [
1031 'label' => esc_html__('Facebook Embed','essential-classy-addons-for-elementor'),
1032 'catlist' => 'embed',
1033 'tag' => 'free',
1034 ],
1035 'ecafe-googlemap-embed' => [
1036 'label' => esc_html__('Google Map Embed','essential-classy-addons-for-elementor'),
1037 'catlist' => 'embed',
1038 'tag' => 'free',
1039 ],
1040 'ecafe-site-logo' => [
1041 'label' => esc_html__('Site Logo','essential-classy-addons-for-elementor'),
1042 'catlist' => 'essential',
1043 'tag' => 'free',
1044 ],
1045 'ecafe-site-title' => [
1046 'label' => esc_html__('Site Title','essential-classy-addons-for-elementor'),
1047 'catlist' => 'essential',
1048 'tag' => 'free',
1049 ],
1050 'ecafe-site-tagline' => [
1051 'label' => esc_html__('Site Tagline','essential-classy-addons-for-elementor'),
1052 'catlist' => 'essential',
1053 'tag' => 'free',
1054 ],
1055 'ecafe-post-title' => [
1056 'label' => esc_html__('Post Title','essential-classy-addons-for-elementor'),
1057 'catlist' => 'essential',
1058 'tag' => 'free',
1059 ],
1060 'ecafe-post-meta' => [
1061 'label' => esc_html__('Post Meta','essential-classy-addons-for-elementor'),
1062 'catlist' => 'essential',
1063 'tag' => 'free',
1064 ],
1065 'ecafe-post-content' => [
1066 'label' => esc_html__('Post Content','essential-classy-addons-for-elementor'),
1067 'catlist' => 'essential',
1068 'tag' => 'free',
1069 ],
1070 'ecafe-post-image' => [
1071 'label' => esc_html__('Post Image','essential-classy-addons-for-elementor'),
1072 'catlist' => 'essential',
1073 'tag' => 'free',
1074 ],
1075 'ecafe-post-authorinfo' => [
1076 'label' => esc_html__('Post Author Info','essential-classy-addons-for-elementor'),
1077 'catlist' => 'essential',
1078 'tag' => 'free',
1079 ],
1080 'ecafe-post-comment' => [
1081 'label' => esc_html__('Post Comment','essential-classy-addons-for-elementor'),
1082 'catlist' => 'essential',
1083 'tag' => 'free',
1084 ],
1085 'ecafe-post-navigation' => [
1086 'label' => esc_html__('Post Navigation','essential-classy-addons-for-elementor'),
1087 'catlist' => 'essential',
1088 'tag' => 'free',
1089 ],
1090 'ecafe-acf-text' => [
1091 'label' => esc_html__('ACF : Text','essential-classy-addons-for-elementor'),
1092 'catlist' => 'acf',
1093 'tag' => 'free',
1094 ],
1095 'ecafe-acf-text-area' => [
1096 'label' => esc_html__('ACF : Text Area','essential-classy-addons-for-elementor'),
1097 'catlist' => 'acf',
1098 'tag' => 'free',
1099 ],
1100 'ecafe-acf-wysiwyg-editor' => [
1101 'label' => esc_html__('ACF : Wysiwyg Editor','essential-classy-addons-for-elementor'),
1102 'catlist' => 'acf',
1103 'tag' => 'free',
1104 ],
1105 'ecafe-acf-url' => [
1106 'label' => esc_html__('ACF : Url','essential-classy-addons-for-elementor'),
1107 'catlist' => 'acf',
1108 'tag' => 'free',
1109 ],
1110 'ecafe-acf-email' => [
1111 'label' => esc_html__('ACF : Email','essential-classy-addons-for-elementor'),
1112 'catlist' => 'acf',
1113 'tag' => 'free',
1114 ],
1115 'ecafe-acf-number' => [
1116 'label' => esc_html__('ACF : Number','essential-classy-addons-for-elementor'),
1117 'catlist' => 'acf',
1118 'tag' => 'free',
1119 ],
1120 'ecafe-acf-image' => [
1121 'label' => esc_html__('ACF : Image','essential-classy-addons-for-elementor'),
1122 'catlist' => 'acf',
1123 'tag' => 'free',
1124 ],
1125 'ecafe-acf-date' => [
1126 'label' => esc_html__('ACF : Date','essential-classy-addons-for-elementor'),
1127 'catlist' => 'acf',
1128 'tag' => 'free',
1129 ],
1130 'ecafe-acf-time' => [
1131 'label' => esc_html__('ACF : Time','essential-classy-addons-for-elementor'),
1132 'catlist' => 'acf',
1133 'tag' => 'free',
1134 ],
1135 'ecafe-acf-date-time' => [
1136 'label' => esc_html__('ACF : Date Time','essential-classy-addons-for-elementor'),
1137 'catlist' => 'acf',
1138 'tag' => 'free',
1139 ],
1140 'ecafe-acf-oembed' => [
1141 'label' => esc_html__('ACF : oEmbed','essential-classy-addons-for-elementor'),
1142 'catlist' => 'acf',
1143 'tag' => 'free',
1144 ],
1145 'ecafe-cfs-text' => [
1146 'label' => esc_html__('Custom Field Suite : Text','essential-classy-addons-for-elementor'),
1147 'catlist' => 'cfs',
1148 'tag' => 'free',
1149 ],
1150 'ecafe-cfs-textarea' => [
1151 'label' => esc_html__('Custom Field Suite : Text Area','essential-classy-addons-for-elementor'),
1152 'catlist' => 'cfs',
1153 'tag' => 'free',
1154 ],
1155 'ecafe-cfs-wysiwyg' => [
1156 'label' => esc_html__('Custom Field Suite : Wysiwyg','essential-classy-addons-for-elementor'),
1157 'catlist' => 'cfs',
1158 'tag' => 'free',
1159 ],
1160 'ecafe-cfs-hyperlink' => [
1161 'label' => esc_html__('Custom Field Suite : Hyperlink','essential-classy-addons-for-elementor'),
1162 'catlist' => 'cfs',
1163 'tag' => 'free',
1164 ],
1165 'ecafe-cfs-date' => [
1166 'label' => esc_html__('Custom Field Suite : Date','essential-classy-addons-for-elementor'),
1167 'catlist' => 'cfs',
1168 'tag' => 'free',
1169 ],
1170 'ecafe-cfs-image' => [
1171 'label' => esc_html__('Custom Field Suite : Image','essential-classy-addons-for-elementor'),
1172 'catlist' => 'cfs',
1173 'tag' => 'free',
1174 ],
1175 'ecafe-jetengine-text' => [
1176 'label' => esc_html__('JetEngine : Text','essential-classy-addons-for-elementor'),
1177 'catlist' => 'jet',
1178 'tag' => 'free',
1179 ],
1180 'ecafe-jetengine-date' => [
1181 'label' => esc_html__('JetEngine : Date','essential-classy-addons-for-elementor'),
1182 'catlist' => 'jet',
1183 'tag' => 'free',
1184 ],
1185 'ecafe-jetengine-time' => [
1186 'label' => esc_html__('JetEngine : Time','essential-classy-addons-for-elementor'),
1187 'catlist' => 'jet',
1188 'tag' => 'free',
1189 ],
1190 'ecafe-jetengine-datetime' => [
1191 'label' => esc_html__('JetEngine : Date Time','essential-classy-addons-for-elementor'),
1192 'catlist' => 'jet',
1193 'tag' => 'free',
1194 ],
1195 'ecafe-jetengine-textarea' => [
1196 'label' => esc_html__('JetEngine : Text Area','essential-classy-addons-for-elementor'),
1197 'catlist' => 'jet',
1198 'tag' => 'free',
1199 ],
1200 'ecafe-jetengine-wysiwyg' => [
1201 'label' => esc_html__('JetEngine : Wysiwyg','essential-classy-addons-for-elementor'),
1202 'catlist' => 'jet',
1203 'tag' => 'free',
1204 ],
1205 'ecafe-jetengine-media' => [
1206 'label' => esc_html__('JetEngine : Media','essential-classy-addons-for-elementor'),
1207 'catlist' => 'jet',
1208 'tag' => 'free',
1209 ],
1210 'ecafe-jetengine-number' => [
1211 'label' => esc_html__('JetEngine : Number','essential-classy-addons-for-elementor'),
1212 'catlist' => 'jet',
1213 'tag' => 'free',
1214 ],
1215 'ecafe-metabox-text' => [
1216 'label' => esc_html__('Meta Box : Text','essential-classy-addons-for-elementor'),
1217 'catlist' => 'metabox',
1218 'tag' => 'free',
1219 ],
1220 'ecafe-metabox-textarea' => [
1221 'label' => esc_html__('Meta Box : Text Area','essential-classy-addons-for-elementor'),
1222 'catlist' => 'metabox',
1223 'tag' => 'free',
1224 ],
1225 'ecafe-metabox-wysiwyg' => [
1226 'label' => esc_html__('Meta Box : Wysiwyg','essential-classy-addons-for-elementor'),
1227 'catlist' => 'metabox',
1228 'tag' => 'free',
1229 ],
1230 'ecafe-metabox-email' => [
1231 'label' => esc_html__('Meta Box : Email','essential-classy-addons-for-elementor'),
1232 'catlist' => 'metabox',
1233 'tag' => 'free',
1234 ],
1235 'ecafe-metabox-number' => [
1236 'label' => esc_html__('Meta Box : Number','essential-classy-addons-for-elementor'),
1237 'catlist' => 'metabox',
1238 'tag' => 'free',
1239 ],
1240 'ecafe-metabox-url' => [
1241 'label' => esc_html__('Meta Box : Url','essential-classy-addons-for-elementor'),
1242 'catlist' => 'metabox',
1243 'tag' => 'free',
1244 ],
1245 'ecafe-metabox-imageadvanced' => [
1246 'label' => esc_html__('Meta Box : Image Advanced','essential-classy-addons-for-elementor'),
1247 'catlist' => 'metabox',
1248 'tag' => 'free',
1249 ],
1250 'ecafe-metabox-video' => [
1251 'label' => esc_html__('Meta Box : Video','essential-classy-addons-for-elementor'),
1252 'catlist' => 'metabox',
1253 'tag' => 'free',
1254 ],
1255 'ecafe-metabox-date' => [
1256 'label' => esc_html__('Meta Box : Date','essential-classy-addons-for-elementor'),
1257 'catlist' => 'metabox',
1258 'tag' => 'free',
1259 ],
1260 'ecafe-metabox-datetime' => [
1261 'label' => esc_html__('Meta Box : Datetime','essential-classy-addons-for-elementor'),
1262 'catlist' => 'metabox',
1263 'tag' => 'free',
1264 ],
1265 'ecafe-metabox-time' => [
1266 'label' => esc_html__('Meta Box : Time','essential-classy-addons-for-elementor'),
1267 'catlist' => 'metabox',
1268 'tag' => 'free',
1269 ],
1270 'ecafe-pods-plaintext' => [
1271 'label' => esc_html__('Pods : Plain Text','essential-classy-addons-for-elementor'),
1272 'catlist' => 'pods',
1273 'tag' => 'free',
1274 ],
1275 'ecafe-pods-website' => [
1276 'label' => esc_html__('Pods : Website','essential-classy-addons-for-elementor'),
1277 'catlist' => 'pods',
1278 'tag' => 'free',
1279 ],
1280 'ecafe-pods-phone' => [
1281 'label' => esc_html__('Pods : Phone','essential-classy-addons-for-elementor'),
1282 'catlist' => 'pods',
1283 'tag' => 'free',
1284 ],
1285 'ecafe-pods-email' => [
1286 'label' => esc_html__('Pods : Email','essential-classy-addons-for-elementor'),
1287 'catlist' => 'pods',
1288 'tag' => 'free',
1289 ],
1290 'ecafe-pods-plain-paragraph-text' => [
1291 'label' => esc_html__('Pods : Plain Paragraph Text','essential-classy-addons-for-elementor'),
1292 'catlist' => 'pods',
1293 'tag' => 'free',
1294 ],
1295 'ecafe-pods-wysywyg' => [
1296 'label' => esc_html__('Pods : WYSIWYG (Visual Editor)','essential-classy-addons-for-elementor'),
1297 'catlist' => 'pods',
1298 'tag' => 'free',
1299 ],
1300 'ecafe-pods-date-time' => [
1301 'label' => esc_html__('Pods : Date / Time','essential-classy-addons-for-elementor'),
1302 'catlist' => 'pods',
1303 'tag' => 'free',
1304 ],
1305 'ecafe-pods-date' => [
1306 'label' => esc_html__('Pods : Date','essential-classy-addons-for-elementor'),
1307 'catlist' => 'pods',
1308 'tag' => 'free',
1309 ],
1310 'ecafe-pods-time' => [
1311 'label' => esc_html__('Pods : Time','essential-classy-addons-for-elementor'),
1312 'catlist' => 'pods',
1313 'tag' => 'free',
1314 ],
1315 'ecafe-pods-plain-number' => [
1316 'label' => esc_html__('Pods : Plain Number','essential-classy-addons-for-elementor'),
1317 'catlist' => 'pods',
1318 'tag' => 'free',
1319 ],
1320 'ecafe-pods-currency' => [
1321 'label' => esc_html__('Pods : Currency','essential-classy-addons-for-elementor'),
1322 'catlist' => 'pods',
1323 'tag' => 'free',
1324 ],
1325 'ecafe-pods-image' => [
1326 'label' => esc_html__('Pods : Image','essential-classy-addons-for-elementor'),
1327 'catlist' => 'pods',
1328 'tag' => 'free',
1329 ],
1330 'ecafe-pods-video' => [
1331 'label' => esc_html__('Pods : Video','essential-classy-addons-for-elementor'),
1332 'catlist' => 'pods',
1333 'tag' => 'free',
1334 ],
1335 'ecafe-pods-oembed' => [
1336 'label' => esc_html__('Pods : oEmbed','essential-classy-addons-for-elementor'),
1337 'catlist' => 'pods',
1338 'tag' => 'free',
1339 ],
1340 'ecafe-toolset-single-line' => [
1341 'label' => esc_html__('Toolset : Single Line','essential-classy-addons-for-elementor'),
1342 'catlist' => 'toolset',
1343 'tag' => 'free',
1344 ],
1345 'ecafe-toolset-multiple-lines' => [
1346 'label' => esc_html__('Toolset : Multiple Lines','essential-classy-addons-for-elementor'),
1347 'catlist' => 'toolset',
1348 'tag' => 'free',
1349 ],
1350 'ecafe-toolset-wysiwyg' => [
1351 'label' => esc_html__('Toolset : WYSIWYG','essential-classy-addons-for-elementor'),
1352 'catlist' => 'toolset',
1353 'tag' => 'free',
1354 ],
1355 'ecafe-toolset-image' => [
1356 'label' => esc_html__('Toolset : Image','essential-classy-addons-for-elementor'),
1357 'catlist' => 'toolset',
1358 'tag' => 'free',
1359 ],
1360 'ecafe-toolset-video' => [
1361 'label' => esc_html__('Toolset : Video','essential-classy-addons-for-elementor'),
1362 'catlist' => 'toolset',
1363 'tag' => 'free',
1364 ],
1365 'ecafe-toolset-embedded-media' => [
1366 'label' => esc_html__('Toolset : Embedded Media','essential-classy-addons-for-elementor'),
1367 'catlist' => 'toolset',
1368 'tag' => 'free',
1369 ],
1370 'ecafe-toolset-email' => [
1371 'label' => esc_html__('Toolset : Email','essential-classy-addons-for-elementor'),
1372 'catlist' => 'toolset',
1373 'tag' => 'free',
1374 ],
1375 'ecafe-toolset-url' => [
1376 'label' => esc_html__('Toolset : URL','essential-classy-addons-for-elementor'),
1377 'catlist' => 'toolset',
1378 'tag' => 'free',
1379 ],
1380 'ecafe-toolset-number' => [
1381 'label' => esc_html__('Toolset : Number','essential-classy-addons-for-elementor'),
1382 'catlist' => 'toolset',
1383 'tag' => 'free',
1384 ],
1385 'ecafe-toolset-phone' => [
1386 'label' => esc_html__('Toolset : Phone','essential-classy-addons-for-elementor'),
1387 'catlist' => 'toolset',
1388 'tag' => 'free',
1389 ],
1390 'ecafe-toolset-skype' => [
1391 'label' => esc_html__('Toolset : Skype','essential-classy-addons-for-elementor'),
1392 'catlist' => 'toolset',
1393 'tag' => 'free',
1394 ],
1395 'ecafe-toolset-date' => [
1396 'label' => esc_html__('Toolset : Date','essential-classy-addons-for-elementor'),
1397 'catlist' => 'toolset',
1398 'tag' => 'free',
1399 ],
1400 'ecafe-wck-text' => [
1401 'label' => esc_html__('WCK : Text','essential-classy-addons-for-elementor'),
1402 'catlist' => 'wck',
1403 'tag' => 'free',
1404 ],
1405 'ecafe-wck-textarea' => [
1406 'label' => esc_html__('WCK : Text Area','essential-classy-addons-for-elementor'),
1407 'catlist' => 'wck',
1408 'tag' => 'free',
1409 ],
1410 'ecafe-wck-wysiwyg-editor' => [
1411 'label' => esc_html__('WCK : Wysiwyg Editor','essential-classy-addons-for-elementor'),
1412 'catlist' => 'wck',
1413 'tag' => 'free',
1414 ],
1415 'ecafe-wck-currency-select' => [
1416 'label' => esc_html__('WCK : Currency Select','essential-classy-addons-for-elementor'),
1417 'catlist' => 'wck',
1418 'tag' => 'free',
1419 ],
1420 'ecafe-wck-phone' => [
1421 'label' => esc_html__('WCK : Phone','essential-classy-addons-for-elementor'),
1422 'catlist' => 'wck',
1423 'tag' => 'free',
1424 ],
1425 'ecafe-wck-timepicker' => [
1426 'label' => esc_html__('WCK : Timepicker','essential-classy-addons-for-elementor'),
1427 'catlist' => 'wck',
1428 'tag' => 'free',
1429 ],
1430 'ecafe-wck-number' => [
1431 'label' => esc_html__('WCK : Number','essential-classy-addons-for-elementor'),
1432 'catlist' => 'wck',
1433 'tag' => 'free',
1434 ],
1435 'ecafe-wck-upload-image' => [
1436 'label' => esc_html__('WCK : Image Upload','essential-classy-addons-for-elementor'),
1437 'catlist' => 'wck',
1438 'tag' => 'free',
1439 ],
1440 'ecafe-wck-upload-video' => [
1441 'label' => esc_html__('WCK : Video Upload','essential-classy-addons-for-elementor'),
1442 'catlist' => 'wck',
1443 'tag' => 'free',
1444 ],
1445 ];
1446 }
1447
1448 /**
1449 * Render widget lists
1450 */
1451 private function ecafeRenderWidgetList(){
1452 $widgetList = $this->widget_lists;
1453 $show ='';
1454 $fetchWidgetsSave = get_option( 'ecafe_widgets' );
1455 $saveWidget ='';
1456
1457 if(!empty($fetchWidgetsSave['widgetsload'])){
1458 $saveWidget = $fetchWidgetsSave['widgetsload'];
1459 }
1460
1461 if(!empty($widgetList)){
1462 foreach ($widgetList as $key => $widget){
1463
1464 $proDisable = '';
1465 $proExtraDiv = '';
1466 if($widget['tag']=='pro' && !defined('ECAFEP_VERSION')){
1467 $proDisable = ' ecprodisable';
1468 $proExtraDiv = '<div class="ec-pro-hover-pro"></div>';
1469 }
1470 $listcatwise = '';
1471 if (is_array($widget['catlist'])) {
1472 if(!empty($widget['catlist'][0])){
1473 $listcatwise .= ' ecafecate'.$widget['catlist'][0];
1474 }
1475 if(!empty($widget['catlist'][1])){
1476 $listcatwise .= ' ecafecate'.$widget['catlist'][1];
1477 }
1478 }else{
1479 $listcatwise = ' ecafecate'.$widget['catlist'];
1480 }
1481 $show .='<div class="ecafe-panel-column '.esc_attr($listcatwise).' ecafefeatures-'.esc_attr($widget['tag']).' '.esc_attr($proDisable).'">';
1482 $show .= $proExtraDiv;
1483 $show .='<div class="widget-list-wrapper">';
1484 $show .='<div class="widget-list-inner">';
1485 $show .='<span class="widget-label">'.esc_html($widget['label']).'</span>';
1486 $show .='</div>';
1487 $checked = '';
1488 if(!empty($saveWidget) && in_array($key, $saveWidget)){
1489 $checked = 'checked="checked"';
1490 }
1491
1492 $show .='<div class="widget-check-wrapper">
1493 <input type="checkbox" class="widget-list-checkbox" name="widgetsload[]" id="'.esc_attr($key).'" value="'.esc_attr($key).'" '.$checked.'>
1494 <label for="'.esc_attr($key).'"></label>
1495 </div>';
1496 $show .='</div>';
1497 $show .='</div>';
1498 }
1499 }
1500 return $show;
1501 }
1502
1503 /**
1504 * Render Extra Options lists
1505 */
1506 private function ecafeRenderExtraList(){
1507 $extraList = [
1508 'ecafe-boxshadow' => [
1509 'label' => esc_html__('Box Shadow','essential-classy-addons-for-elementor'),
1510 'tag' => 'pro',
1511 ],
1512 'ecafe-confettieffect' => [
1513 'label' => esc_html__('Confetti Effect','essential-classy-addons-for-elementor'),
1514 'tag' => 'free',
1515 ],
1516 'ecafe-customcss' => [
1517 'label' => esc_html__('Custom CSS','essential-classy-addons-for-elementor'),
1518 'tag' => 'pro',
1519 ],
1520 'ecafe-displaycondition' => [
1521 'label' => esc_html__('Display Condition','essential-classy-addons-for-elementor'),
1522 'tag' => 'free',
1523 ],
1524 'ecafe-dropshadow' => [
1525 'label' => esc_html__('Drop Shadow','essential-classy-addons-for-elementor'),
1526 'tag' => 'pro',
1527 ],
1528 'ecafe-equalheight' => [
1529 'label' => esc_html__('Equal Height','essential-classy-addons-for-elementor'),
1530 'tag' => 'pro',
1531 ],
1532 'ecafe-fancyborder' => [
1533 'label' => esc_html__('Fancy Border','essential-classy-addons-for-elementor'),
1534 'tag' => 'pro',
1535 ],
1536 'ecafe-glassmorphism' => [
1537 'label' => esc_html__('Glassmorphism','essential-classy-addons-for-elementor'),
1538 'tag' => 'free',
1539 ],
1540 'ecafe-lax-scroll' => [
1541 'label' => esc_html__('Lax Scroll','essential-classy-addons-for-elementor'),
1542 'tag' => 'free',
1543 ],
1544 'ecafe-widget-link' => [
1545 'label' => esc_html__('Link','essential-classy-addons-for-elementor'),
1546 'tag' => 'free',
1547 ],
1548 'ecafe-live-copy' => [
1549 'label' => esc_html__('Live Copy Paste','essential-classy-addons-for-elementor'),
1550 'tag' => 'free',
1551 ],
1552 'ecafe-textshadow' => [
1553 'label' => esc_html__('Text Shadow','essential-classy-addons-for-elementor'),
1554 'tag' => 'pro',
1555 ],
1556 'ecafe-template-library' => [
1557 'label' => esc_html__('Template Library','essential-classy-addons-for-elementor'),
1558 'tag' => 'pro',
1559 ]
1560 ];
1561 $show ='';
1562 $extrasListOpt = get_option( 'ecafe_extension' );
1563 $saveWidget ='';
1564 if(!empty($extrasListOpt['extrasList'])){
1565 $saveWidget = $extrasListOpt['extrasList'];
1566 }
1567
1568 if(!empty($extraList)){
1569 foreach ($extraList as $key => $widget){
1570 $proDisable = '';
1571 $proExtraDiv = '';
1572 if($widget['tag']=='pro' && !defined('ECAFEP_VERSION')){
1573 $proDisable = ' ecprodisable';
1574 $proExtraDiv = '<div class="ec-pro-hover-pro"></div>';
1575 }
1576 $show .='<div class="ecafe-panel-column ecafefeatures-'.esc_attr($widget['tag']).' '.esc_attr($proDisable).'">';
1577 $show .= $proExtraDiv;
1578 $show .='<div class="widget-list-wrapper">';
1579 $show .='<div class="widget-list-inner">';
1580 $show .='<span class="widget-label">'.esc_html($widget['label']).'</span>';
1581 $show .='</div>';
1582 $checked = '';
1583 if(!empty($saveWidget) && in_array($key, $saveWidget)){
1584 $checked = 'checked="checked"';
1585 }
1586 $show .='<div class="widget-check-wrapper">
1587 <input type="checkbox" class="widget-list-checkbox" name="extrasList[]" id="'.esc_attr($key).'" value="'.esc_attr($key).'" '.$checked.'>
1588 <label for="'.esc_attr($key).'"></label>
1589 </div>';
1590 $show .='</div>';
1591 $show .='</div>';
1592 }
1593 }
1594 return $show;
1595 }
1596
1597 /**
1598 * Render WP Performance Options lists
1599 */
1600 private function ecafeRenderWpPerfomanceList(){
1601 $wpPerfList = [
1602 'disable_dashicons' => [
1603 'label' => esc_html__('Dashicons','essential-classy-addons-for-elementor'),
1604 ],
1605 'emoji_scripts' => [
1606 'label' => esc_html__('Emojis Script','essential-classy-addons-for-elementor'),
1607 ],
1608 'disable_embeds' => [
1609 'label' => esc_html__('Embeds','essential-classy-addons-for-elementor'),
1610 ],
1611 'pass_str_mtr' => [
1612 'label' => esc_html__('Password Strength Meter','essential-classy-addons-for-elementor'),
1613 ],
1614 'rsd_link' => [
1615 'label' => esc_html__('Remove RSD Link','essential-classy-addons-for-elementor'),
1616 ],
1617 'shortlink' => [
1618 'label' => esc_html__('Remove Shortlink','essential-classy-addons-for-elementor'),
1619 ],
1620 'wlwmanifest_link' => [
1621 'label' => esc_html__('Remove wlwmanifest Link','essential-classy-addons-for-elementor'),
1622 ],
1623 'rss_feeds' => [
1624 'label' => esc_html__('RSS Feeds','essential-classy-addons-for-elementor'),
1625 ],
1626 'rss_feed_link' => [
1627 'label' => esc_html__('Remove RSS Feed Links','essential-classy-addons-for-elementor'),
1628 ],
1629 'self_pingbacks' => [
1630 'label' => esc_html__('Self Pingbacks','essential-classy-addons-for-elementor'),
1631 ],
1632 'xml_rpc' => [
1633 'label' => esc_html__('XML-RPC','essential-classy-addons-for-elementor'),
1634 ],
1635 'wp_version' => [
1636 'label' => esc_html__('WP Version Generator','essential-classy-addons-for-elementor'),
1637 ],
1638 ];
1639 $show ='';
1640 $wpPerformanceListOpt = get_option( 'ecafe_wp_performance' );
1641 $saveWidget ='';
1642 if(!empty($wpPerformanceListOpt['wpperformanceList'])){
1643 $saveWidget = $wpPerformanceListOpt['wpperformanceList'];
1644 }
1645
1646 if(!empty($wpPerfList)){
1647 foreach ($wpPerfList as $key => $widget){
1648 $show .='<div class="ecafe-panel-column">';
1649 $show .='<div class="widget-list-wrapper">';
1650 $show .='<div class="widget-list-inner">';
1651 $show .='<span class="widget-label">'.esc_html($widget['label']).'</span>';
1652 $show .='</div>';
1653 $checked = '';
1654 if(!empty($saveWidget) && in_array($key, $saveWidget)){
1655 $checked = 'checked="checked"';
1656 }
1657 $show .='<div class="widget-check-wrapper">
1658 <input type="checkbox" class="widget-list-checkbox" name="wpperformanceList[]" id="'.esc_attr($key).'" value="'.esc_attr($key).'" '.$checked.'>
1659 <label for="'.esc_attr($key).'"></label>
1660 </div>';
1661 $show .='</div>';
1662 $show .='</div>';
1663 }
1664 }
1665 return $show;
1666 }
1667 /**
1668 * Options page append
1669 */
1670 public function optionsPageAppend() {
1671 $optionTabs = self::fieldsOption();
1672
1673 foreach ($optionTabs as $index => $optionTab) {
1674 if($index == 0) {
1675 $this->optionsPages[] = add_menu_page($this->title, $this->title, 'manage_options', $optionTab['id'],array($this,'displayAdminPage'),'dashicons-ecafe-settings');
1676 add_submenu_page($optionTabs[0]['id'], $this->title, $optionTab['title'], 'manage_options', $optionTab['id'], array($this,'displayAdminPage'));
1677 }else{
1678 if(isset($optionTabs)){
1679 $this->optionsPages[] = add_submenu_page($optionTabs[0]['id'], $this->title, $optionTab['title'], 'manage_options', $optionTab['id'], array($this,'displayAdminPage'));
1680 }
1681 }
1682 }
1683 }
1684
1685 /**
1686 * Display admin page
1687 */
1688 public function displayAdminPage() {
1689 $optionTabs = self::fieldsOption();
1690 $tabForms = array();
1691 $show ='';
1692 $show .='<div class="'.$this->key.'">';
1693 $show .='<div id="ecafe-setting-head-wrapper">';
1694 if(defined('ECAFEP_VERSION')){
1695 $get_values = unserialize(get_option('ecafewhitelabel'));
1696 $plugin_brand_image = (!empty($get_values['plugin_brand_image'])) ? $get_values['plugin_brand_image'] : '';
1697 if(!empty($plugin_brand_image)){
1698 $logo = wp_get_attachment_image_url($plugin_brand_image, 'full');
1699 $show .='<img style="height:100px" src='.$logo.' />';
1700 }else{
1701 $show .='<img src='.ECAFE_URL.'assets/images/ec-addons.gif />';
1702 }
1703 }
1704 else{
1705 $show .='<img src='.ECAFE_URL.'assets/images/ec-addons.gif />';
1706 }
1707
1708 $show .='<div class="ecafe-current-version"> '.esc_html__('Version','essential-classy-addons-for-elementor').' '.ECAFE_VERSION.'</div>';
1709 $show .='</div>';
1710
1711 $show .='<div class="ecafe-nav-tab-wrapper">';
1712 $show .='<div class="nav-tab-wrapper">';
1713 ob_start();
1714 foreach ($optionTabs as $optionTab):
1715 $tabSlug = $optionTab['id'];
1716 $navigationTabClass = 'nav-tab';
1717 $page_key = isset($_GET['page']) ? sanitize_text_field(wp_unslash($_GET['page'])) : '';
1718 if ($tabSlug == $page_key) {
1719 $navigationTabClass .= ' nav-tab-active';
1720 $tabForms[] = $optionTab;
1721 }
1722 ?>
1723 <a class="<?php echo esc_attr($navigationTabClass); ?>" href="<?php menu_page_url($tabSlug); ?>">
1724 <span><?php echo esc_html($optionTab['title']); ?></span>
1725 </a>
1726 <?php
1727
1728 endforeach;
1729 $show .= ob_get_clean();
1730 $show .='</div>';
1731 $show .='</div>';
1732
1733 $show .='<div class="ecafe-settings-form-wrapper form-'.$tabForms[0]['id'].'">';
1734
1735 if(!empty($tabForms)){
1736 ob_start();
1737 foreach ($tabForms as $tabForm):
1738 if($tabForm['id']=='ecafe_welcome'){
1739 echo '<div class="ecafe-panel-welcome-page">';
1740 echo '<div class="ecafe-panel-row">';
1741 echo '<div class="ecafe-panel-column">';
1742 /*User Info*/
1743 echo '<div class="ecafe-welcome-col ecafe-user-info-wrapper">';
1744 echo '<div class="ecafe-user-info">';
1745 $user = wp_get_current_user();
1746 if (isset($user)){
1747 echo '<img src="'.esc_url( get_avatar_url( $user->ID ) ).'" class="ecafe-avatar-img" />';
1748 }
1749 echo '<div class="ecafe-author-name">'.esc_html__('Welcome ','essential-classy-addons-for-elementor').esc_html($user->display_name).',</div>';
1750
1751 if ( function_exists( 'ini_get' ) ){
1752 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>";
1753 }
1754 echo '</div>';
1755 echo '</div>';
1756 /*User Info*/
1757
1758 /*Banner Image*/
1759 echo '<div class="ecafe-welcome-col ecafe-banner-wrapper">';
1760 echo '<a class="ecafe-banner-wrapper-link" href="https://kapasias.com/addons-features"></a>';
1761 echo '</div>';
1762 /*Banner Image*/
1763 $get_values = unserialize(get_option('ecafewhitelabel'));
1764 if(defined('ECAFEP_VERSION') && !empty($get_values['plugin_name_free'])){
1765
1766 }else{
1767 /*Rating*/
1768 echo '<div class="ecafe-welcome-col ecafe-ratting-wrapper">';
1769 echo '<div class="ecafe-welcome-title">'.esc_html__('Rate Us 😍✨🌟','essential-classy-addons-for-elementor').'</div>';
1770 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>';
1771 echo '<div class="ecafe-ratting-border"></div>';
1772 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>';
1773 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>';
1774 echo '</div>';
1775 /*Rating*/
1776
1777 /*Request New Feature*/
1778 echo '<div class="ecafe-welcome-col ecafe-request-wrapper">';
1779 echo '<div class="ecafe-welcome-title">'.esc_html__('Wish to see your favorite feature? 💬💓💌','essential-classy-addons-for-elementor').'</div>';
1780 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>';
1781 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>';
1782 echo '</div>';
1783 /*Request New Feature*/
1784
1785 /*Info Panel*/
1786 echo '<div class="ecafe-welcome-col ecafe-info-panel-wrapper">';
1787 echo '<div class="ecafe-welcome-title">'.esc_html__('Technical Support 👋','essential-classy-addons-for-elementor').'</div>';
1788 echo '<div class="ecafe-welcome-subtitle">'.esc_html__('Let’s start with queries and end with solutions.','essential-classy-addons-for-elementor').'</div>';
1789 echo '<a href="http://store.kapasias.com/helpdesk/" class="ecafe-wel-btn" title="'.esc_attr__('Helpdesk','essential-classy-addons-for-elementor').'" target="_blank">'.esc_html__('Helpdesk 💬🕘','essential-classy-addons-for-elementor').'</a>';
1790 echo '</div>';
1791 /*Info Panel*/
1792
1793 /*Change Log*/
1794 echo '<div class="ecafe-welcome-col ecafe-changelog-wrapper">';
1795 echo '<b class="ecafe-changelog-head">Change Log 💬</b><br/>';
1796 echo '<b><u>'.esc_html__('Free Version 3.0.38','essential-classy-addons-for-elementor').'</u></b><br/>';
1797 echo esc_html__('Add : PDF Viewer','essential-classy-addons-for-elementor').'<br/>';
1798 echo esc_html__('Add : Confetti Effect','essential-classy-addons-for-elementor').'<br/>';
1799 echo '<a href="https://wordpress.org/plugins/essential-classy-addons-for-elementor/#developers" class="ecafe-wel-btn" title="'.esc_attr__('free changelog','essential-classy-addons-for-elementor').'" target="_blank">'.esc_html__('Full Log','essential-classy-addons-for-elementor').'</a>';
1800
1801
1802 echo '<br/><b><u>'.esc_html__('Pro Version 3.0.24','essential-classy-addons-for-elementor').'</u></b><br/>';
1803 echo esc_html__('Add : Heading Gradient Animation','essential-classy-addons-for-elementor').'<br/>';
1804 echo '<a href="https://ecaddons.com/changelog/" class="ecafe-wel-btn" title="'.esc_attr__('pro changelog','essential-classy-addons-for-elementor').'" target="_blank">'.esc_html__('Full Log','essential-classy-addons-for-elementor').'</a>';
1805 echo '</div>';
1806 /*Change Log*/
1807 }
1808 echo '</div>';
1809 echo '</div>';
1810 echo '</div>';
1811 }
1812
1813 if($tabForm['id']=='ecafe_widgets'){
1814 echo '<div class="ecafe-panel-widget-page">';
1815
1816 echo '<div class="ecafe-panel-head">';
1817 echo '<div class="ecafe-panel-h-se">';
1818 echo '<div class="ecafe-panel-hse-edtoggle">';
1819 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">
1820 <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)"/>
1821 </svg></span><input type="checkbox" id="ecafe-edtoggleId" /> '.esc_html__('Enable/Disable Widgets','essential-classy-addons-for-elementor').'</label>';
1822 echo '</div>';
1823 echo '</div>';
1824
1825 echo '<div class="ecafe-panel-h-filter">';
1826 echo '<div class="ecafe-panel-h-filter-list">';
1827 echo '<a href="#" data-catlist="ecafecatall">'.esc_html__('All Widgets','essential-classy-addons-for-elementor').'</a>';
1828 echo '<a href="#" data-catlist="ecafecateessential">'.esc_html__('Essential','essential-classy-addons-for-elementor').'</a>';
1829 echo '<a href="#" data-catlist="ecafecateforms">'.esc_html__('Forms','essential-classy-addons-for-elementor').'</a>';
1830 echo '<a href="#" data-catlist="ecafecatewoocommerce">'.esc_html__('Woocommerce','essential-classy-addons-for-elementor').'</a>';
1831 echo '<a href="#" data-catlist="ecafecateembed">'.esc_html__('Embed','essential-classy-addons-for-elementor').'</a>';
1832 echo '<a href="#" data-catlist="ecafecateacf">'.esc_html__('ACF','essential-classy-addons-for-elementor').'</a>';
1833 echo '<a href="#" data-catlist="ecafecatecfs">'.esc_html__('CFS','essential-classy-addons-for-elementor').'</a>';
1834 echo '<a href="#" data-catlist="ecafecatejet">'.esc_html__('Jet','essential-classy-addons-for-elementor').'</a>';
1835 echo '<a href="#" data-catlist="ecafecatemetabox">'.esc_html__('Metabox','essential-classy-addons-for-elementor').'</a>';
1836 echo '<a href="#" data-catlist="ecafecatepods">'.esc_html__('PODS','essential-classy-addons-for-elementor').'</a>';
1837 echo '<a href="#" data-catlist="ecafecatetoolset">'.esc_html__('Toolset','essential-classy-addons-for-elementor').'</a>';
1838 echo '<a href="#" data-catlist="ecafecatewck">'.esc_html__('WCK','essential-classy-addons-for-elementor').'</a>';
1839 echo '<a href="#" data-catlist="ecafecatepro">'.esc_html__('Pro','essential-classy-addons-for-elementor').'</a>';
1840 echo '</div>';
1841 echo '</div>';
1842 echo '</div>';
1843 /*widget list*/
1844 echo '<form action="'.esc_url( admin_url('admin-post.php') ).'" method="post" id="ecafe_widgets" enctype="multipart/form-data" encoding="multipart/form-data">';
1845 wp_nonce_field( 'nonce_ecafe_widgets_action', 'nonce_ecafe_widgets' );
1846 echo '<div class="ecafe-panel-row widget-list">';
1847 echo $this->ecafeRenderWidgetList();
1848 echo '</div>';
1849 echo '<input type="hidden" name="action" value="ecafe_widgets_options_save">';
1850 echo '<input type="submit" name="submit-key" value="Save" class="button-primary ecafe-submit-widget">';
1851 echo '</form>';
1852 /*widget list*/
1853 echo '</div>';
1854 }
1855
1856 if($tabForm['id']=='ecafe_extension'){
1857 echo '<div class="ecafe-panel-widget-page">';
1858 /*widget list*/
1859 echo '<form action="'.esc_url( admin_url('admin-post.php') ).'" method="post" id="ecafe_extension" enctype="multipart/form-data" encoding="multipart/form-data">';
1860 wp_nonce_field( 'nonce_ecafe_extension_action', 'nonce_ecafe_extension' );
1861 echo '<div class="ecafe-panel-row widget-list">';
1862 echo $this->ecafeRenderExtraList();
1863 echo '</div>';
1864 echo '<input type="hidden" name="action" value="ecafe_extension_options_save">';
1865 echo '<input type="submit" name="submit-key" value="Save" class="button-primary ecafe-submit-widget">';
1866 echo '</form>';
1867 /*widget list*/
1868 echo '</div>';
1869 }
1870
1871 if($tabForm['id']=='ecafe_wp_performance'){
1872 echo '<div class="ecafe-panel-widget-page">';
1873 /*widget list*/
1874 echo '<form action="'.esc_url( admin_url('admin-post.php') ).'" method="post" id="ecafe_wp_performance" enctype="multipart/form-data" encoding="multipart/form-data">';
1875 wp_nonce_field( 'nonce_ecafe_wp_performance_action', 'nonce_ecafe_wp_performance' );
1876 echo '<div class="ecafe-panel-row widget-list">';
1877 echo $this->ecafeRenderWpPerfomanceList();
1878 echo '</div>';
1879 echo '<input type="hidden" name="action" value="ecafe_wp_performance_options_save">';
1880 echo '<input type="submit" name="submit-key" value="Save" class="button-primary ecafe-submit-widget">';
1881 echo '</form>';
1882 /*widget list*/
1883 echo '</div>';
1884 }
1885
1886 if($tabForm['id']=='ecafe_white_label'){
1887 do_action('ecafeWhiteLabelFree');
1888 }
1889 endforeach;
1890 $show .= ob_get_clean();
1891 }
1892 $show .='</div>';
1893
1894 $show .='</div>';
1895 echo wp_kses_normalize_entities($show);
1896 }
1897
1898 /**
1899 * Fields option
1900 */
1901 public function fieldsOption(){
1902 if (!empty($this->ecafefields)) {
1903 return $this->ecafefields;
1904 }
1905
1906 $this->ecafefields[] = array(
1907 'id' => 'ecafe_welcome',
1908 'title' => 'Welcome',
1909 'show_on' => array(
1910 'key' => 'option-page',
1911 'value' => array(
1912 'ecafe_welcome'
1913 )
1914 ),
1915 'show_names' => true,
1916 'fields' => ''
1917 );
1918
1919 $this->ecafefields[] = array(
1920 'id' => 'ecafe_widgets',
1921 'title' => 'Widgets',
1922 'show_on' => array(
1923 'key' => 'option-page',
1924 'value' => array(
1925 'ecafe_widgets'
1926 )
1927 ),
1928 'show_names' => true,
1929 'fields' => '',
1930 );
1931
1932 $this->ecafefields[] = array(
1933 'id' => 'ecafe_extension',
1934 'title' => 'Extension',
1935 'show_on' => array(
1936 'key' => 'option-page',
1937 'value' => array(
1938 'ecafe_extension'
1939 )
1940 ),
1941 'show_names' => true,
1942 'fields' => '',
1943 );
1944
1945 $this->ecafefields[] = array(
1946 'id' => 'ecafe_wp_performance',
1947 'title' => 'WP Performance',
1948 'show_on' => array(
1949 'key' => 'option-page',
1950 'value' => array(
1951 'ecafe_wp_performance'
1952 )
1953 ),
1954 'show_names' => true,
1955 'fields' => '',
1956 );
1957 $this->ecafefields[] = array(
1958 'id' => 'ecafe_white_label',
1959 'title' => 'White Label',
1960 'show_on' => array(
1961 'key' => 'option-page',
1962 'value' => array(
1963 'ecafe_white_label'
1964 )
1965 ),
1966 'show_names' => true,
1967 'fields' => '',
1968 );
1969 return $this->ecafefields;
1970 }
1971
1972 /**
1973 * Option key get
1974 */
1975 public function optionKeyGet($fieldId)
1976 {
1977 $optionTabs = $this->fieldsOption();
1978 foreach ($optionTabs as $optionTab) {
1979 foreach ($optionTab['fields'] as $field) {
1980 if ($field['id'] == $fieldId) {
1981 return $optionTab['id'];
1982 }
1983 }
1984 }
1985 return $this->key;
1986 }
1987
1988 public function __get($field)
1989 {
1990 if (in_array($field, array('key','fields','title','optionsPage'), true)) {
1991 return $this->{$field};
1992 }
1993 if ('ecafefields' === $field) {
1994 return $this->fieldsOption();
1995 }
1996
1997 throw new Exception('Invalid property: ' . $field);
1998 }
1999
2000 }
2001
2002 $EcafePluginOptions = new EcafePluginOptions();
2003 $EcafePluginOptions->hooks();