PluginProbe ʕ •ᴥ•ʔ
Royal Addons for Elementor – Addons and Templates Kit for Elementor / 1.7.1064
Royal Addons for Elementor – Addons and Templates Kit for Elementor v1.7.1064
1.7.1064 1.7.1063 1.7.1062 1.7.1061 1.7.1060 1.7.1059 1.7.1058 trunk 1.0.0 1.1.0 1.2 1.3 1.3.1 1.3.2 1.3.21 1.3.22 1.3.23 1.3.24 1.3.25 1.3.26 1.3.27 1.3.28 1.3.29 1.3.30 1.3.31 1.3.32 1.3.33 1.3.34 1.3.35 1.3.36 1.3.37 1.3.38 1.3.39 1.3.40 1.3.41 1.3.42 1.3.43 1.3.44 1.3.45 1.3.46 1.3.47 1.3.48 1.3.49 1.3.50 1.3.51 1.3.52 1.3.53 1.3.54 1.3.55 1.3.56 1.3.57 1.3.58 1.3.59 1.3.60 1.3.61 1.3.62 1.3.63 1.3.64 1.3.65 1.3.66 1.3.67 1.3.68 1.3.69 1.3.70 1.3.71 1.3.72 1.3.73 1.3.74 1.3.75 1.3.76 1.3.77 1.3.78 1.3.79 1.3.80 1.3.81 1.3.82 1.3.83 1.3.84 1.3.85 1.3.86 1.3.87 1.3.88 1.3.89 1.3.90 1.3.91 1.3.92 1.3.93 1.3.94 1.3.95 1.3.96 1.3.97 1.3.971 1.3.972 1.3.973 1.3.974 1.3.975 1.3.976 1.3.977 1.3.978 1.3.979 1.3.980 1.3.981 1.3.982 1.3.983 1.3.984 1.3.985 1.3.986 1.3.987 1.7.1 1.7.1001 1.7.1002 1.7.1003 1.7.1004 1.7.1005 1.7.1006 1.7.1007 1.7.1008 1.7.1009 1.7.1010 1.7.1011 1.7.1012 1.7.1013 1.7.1014 1.7.1015 1.7.1016 1.7.1017 1.7.1018 1.7.1019 1.7.1020 1.7.1021 1.7.1022 1.7.1023 1.7.1024 1.7.1025 1.7.1026 1.7.1027 1.7.1028 1.7.1029 1.7.1030 1.7.1031 1.7.1032 1.7.1033 1.7.1034 1.7.1035 1.7.1036 1.7.1037 1.7.1038 1.7.1039 1.7.1040 1.7.1041 1.7.1042 1.7.1043 1.7.1044 1.7.1045 1.7.1046 1.7.1047 1.7.1048 1.7.1049 1.7.1050 1.7.1051 1.7.1052 1.7.1053 1.7.1054 1.7.1055 1.7.1056 1.7.1057
royal-elementor-addons / admin / plugin-options.php
royal-elementor-addons / admin Last commit date
import 5 days ago includes 5 days ago metabox 5 days ago notices 5 days ago templates 5 days ago mega-menu.php 5 days ago plugin-options.php 5 days ago popups.php 5 days ago premade-blocks.php 5 days ago templates-kit.php 5 days ago theme-builder.php 5 days ago
plugin-options.php
1891 lines
1 <?php
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 exit; // Exit if accessed directly.
5 }
6
7 use WprAddons\Admin\Includes\WPR_Templates_Loop;
8 use WprAddonsPro\Admin\Wpr_White_Label;
9 use WprAddonsPro\Classes\Pro_Modules;
10 use WprAddons\Classes\Utilities;
11 use WprAddons\Admin\Templates\Library\WPR_Templates_Data;
12
13 // Register Menus
14 function wpr_addons_add_admin_menu() {
15 $menu_icon = !empty(get_option('wpr_wl_plugin_logo')) ? 'dashicons-admin-generic' : 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTciIGhlaWdodD0iNzUiIHZpZXdCb3g9IjAgMCA5NyA3NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuMDM2NDA4NiAyMy4yODlDLTAuNTc1NDkgMTguNTIxIDYuNjg4NzMgMTYuMzY2NiA5LjU0OSAyMC40Njc4TDQyLjgzNjUgNjguMTk3MkM0NC45MTgxIDcxLjE4MiA0Mi40NDk0IDc1IDM4LjQzNzggNzVIMTEuMjc1NkM4LjY1NDc1IDc1IDYuNDUyNjQgNzMuMjg1NSA2LjE2MTcgNzEuMDE4NEwwLjAzNjQwODYgMjMuMjg5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTk2Ljk2MzYgMjMuMjg5Qzk3LjU3NTUgMTguNTIxIDkwLjMxMTMgMTYuMzY2NiA4Ny40NTEgMjAuNDY3OEw1NC4xNjM1IDY4LjE5NzJDNTIuMDgxOCA3MS4xODIgNTQuNTUwNiA3NSA1OC41NjIyIDc1SDg1LjcyNDRDODguMzQ1MiA3NSA5MC41NDc0IDczLjI4NTUgOTAuODM4MyA3MS4wMTg0TDk2Ljk2MzYgMjMuMjg5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTUzLjI0MTIgNC40ODUyN0M1My4yNDEyIC0wLjI3MDc2MSA0NS44NDg1IC0xLjc0ODAzIDQzLjQ2NTEgMi41MzE3NEw2LjY4OTkxIDY4LjU2NzdDNS4wMzM0OSA3MS41NDIxIDcuNTIyNzIgNzUgMTEuMzIwMyA3NUg0OC4wOTU1QzUwLjkzNzQgNzUgNTMuMjQxMiA3Mi45OTQ4IDUzLjI0MTIgNzAuNTIxMlY0LjQ4NTI3WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTQzLjc1ODggNC40ODUyN0M0My43NTg4IC0wLjI3MDc2MSA1MS4xNTE1IC0xLjc0ODAzIDUzLjUzNDkgMi41MzE3NEw5MC4zMTAxIDY4LjU2NzdDOTEuOTY2NSA3MS41NDIxIDg5LjQ3NzMgNzUgODUuNjc5NyA3NUg0OC45MDQ1QzQ2LjA2MjYgNzUgNDMuNzU4OCA3Mi45OTQ4IDQzLjc1ODggNzAuNTIxMlY0LjQ4NTI3WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==';
16 add_menu_page( Utilities::get_plugin_name(), Utilities::get_plugin_name(), 'manage_options', 'wpr-addons', 'wpr_addons_settings_page', $menu_icon, '58.6' );
17
18 add_action( 'admin_init', 'wpr_register_addons_settings' );
19 add_filter( 'plugin_action_links_'. WPR_ADDONS_PLUGIN_BASE, 'wpr_settings_link' );
20 }
21 add_action( 'admin_menu', 'wpr_addons_add_admin_menu' );
22
23 // Ajax Hooks
24 add_action( 'wp_ajax_wpr_backend_widget_search_query_results', 'wpr_backend_widget_search_query_results' );
25 add_action( 'wp_ajax_wpr_backend_freepro_search_query_results', 'wpr_backend_freepro_search_query_results' );
26
27 // Add Settings page link to plugins screen
28 function wpr_settings_link( $links ) {
29 $settings_link = '<a href="admin.php?page=wpr-addons">Settings</a>';
30 array_push( $links, $settings_link );
31
32 if ( !is_plugin_installed('wpr-addons-pro/wpr-addons-pro.php') ) { // GOGA - Check if ok
33 $links[] = '<a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-wpplugindashboard-upgrade-pro#purchasepro" style="color:#93003c;font-weight:700" target="_blank">' . esc_html__('Go Pro', 'wpr-addons') . '</a>';
34 } elseif ( !defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->is_plan( 'expert' ) ) {
35 $links[] = '<a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-wpplugindashboard-upgrade-expert#purchasepro" style="color:#93003c;font-weight:700" target="_blank">' . esc_html__('Go Expert', 'wpr-addons') . '</a>';
36 }
37
38 return $links;
39 }
40
41 function is_plugin_installed($file) {
42 $installed_plugins = [];
43
44 foreach( get_plugins() as $slug => $plugin_info ) {
45 array_push($installed_plugins, $slug);
46 }
47
48 if ( in_array($file, $installed_plugins) ) {
49 return true;
50 } else {
51 return false;
52 }
53 }
54
55 // Register Settings
56 function wpr_register_addons_settings() {
57 // Optimizers
58 register_setting ('wpr-settings', 'wpr_hide_banners');
59 register_setting ('wpr-settings', 'wpr_hide_head_foot_on_maintenenace');
60
61 // WooCommerce
62 register_setting( 'wpr-settings', 'wpr_override_woo_templates' );
63 register_setting( 'wpr-settings', 'wpr_override_woo_cart' );
64 register_setting( 'wpr-settings', 'wpr_override_woo_mini_cart' );
65 register_setting( 'wpr-settings', 'wpr_override_woo_notices' );
66 register_setting( 'wpr-settings', 'wpr_remove_wc_default_lightbox' );
67 register_setting( 'wpr-settings', 'wpr_enable_product_image_zoom' );
68 register_setting( 'wpr-settings', 'wpr_enable_woo_flexslider_navigation' );
69 register_setting( 'wpr-settings', 'wpr_add_wishlist_to_my_account' );
70 register_setting( 'wpr-settings', 'wpr_woo_shop_ppp' );
71 register_setting( 'wpr-settings', 'wpr_woo_shop_cat_ppp' );
72 register_setting( 'wpr-settings', 'wpr_woo_shop_tag_ppp' );
73 register_setting( 'wpr-settings', 'wpr_compare_page' );
74 register_setting( 'wpr-settings', 'wpr_wishlist_page' );
75
76 // Integrations
77 register_setting( 'wpr-settings', 'wpr_google_api_key' );
78 register_setting( 'wpr-settings', 'wpr_google_map_api_key' );
79 register_setting( 'wpr-settings', 'wpr_google_map_language' );
80 register_setting( 'wpr-settings', 'wpr_serpapi_key' );
81 register_setting( 'wpr-settings', 'wpr_openweather_api_key' );
82 register_setting( 'wpr-settings', 'wpr_mailchimp_api_key' );
83 register_setting( 'wpr-settings', 'wpr_recaptcha_v3_site_key' );
84 register_setting( 'wpr-settings', 'wpr_recaptcha_v3_secret_key' );
85 register_setting( 'wpr-settings', 'wpr_recaptcha_v3_score' );
86 register_setting( 'wpr-settings', 'wpr_recaptcha_v2_site_key' );
87 register_setting( 'wpr-settings', 'wpr_recaptcha_v2_secret_key' );
88
89 // Lightbox
90 register_setting( 'wpr-settings', 'wpr_lb_bg_color' );
91 register_setting( 'wpr-settings', 'wpr_lb_toolbar_color' );
92 register_setting( 'wpr-settings', 'wpr_lb_caption_color' );
93 register_setting( 'wpr-settings', 'wpr_lb_gallery_color' );
94 register_setting( 'wpr-settings', 'wpr_lb_pb_color' );
95 register_setting( 'wpr-settings', 'wpr_lb_ui_color' );
96 register_setting( 'wpr-settings', 'wpr_lb_ui_hr_color' );
97 register_setting( 'wpr-settings', 'wpr_lb_text_color' );
98 register_setting( 'wpr-settings', 'wpr_lb_icon_size' );
99 register_setting( 'wpr-settings', 'wpr_lb_arrow_size' );
100 register_setting( 'wpr-settings', 'wpr_lb_text_size' );
101
102 // White Label
103 register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_logo' );
104 register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_name' );
105 register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_desc' );
106 register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_author' );
107 register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_website' );
108 register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_links' );
109 register_setting( 'wpr-wh-settings', 'wpr_wl_hide_elements_tab' );
110 register_setting( 'wpr-wh-settings', 'wpr_wl_hide_extensions_tab' );
111 register_setting( 'wpr-wh-settings', 'wpr_wl_hide_settings_tab' );
112 register_setting( 'wpr-wh-settings', 'wpr_wl_hide_free_pro_tab' );
113 register_setting( 'wpr-wh-settings', 'wpr_wl_hide_white_label_tab' );
114
115 // Optimizers
116 register_setting ('wpr-settings', 'wpr_ignore_wp_rocket_js');
117 register_setting ('wpr-settings', 'wpr_ignore_wp_optimize_js');
118 register_setting ('wpr-settings', 'wpr_ignore_wp_optimize_css');
119
120 // Extensions
121 register_setting('wpr-extension-settings', 'wpr-particles');
122 register_setting('wpr-extension-settings', 'wpr-parallax-background');
123 register_setting('wpr-extension-settings', 'wpr-parallax-multi-layer');
124 register_setting('wpr-extension-settings', 'wpr-custom-css');
125 register_setting('wpr-extension-settings', 'wpr-display-conditions');
126 register_setting('wpr-extension-settings', 'wpr-equal-height');
127 register_setting('wpr-extension-settings', 'wpr-column-slider');
128 register_setting('wpr-extension-settings', 'wpr-sticky-section');
129
130 // Element Toggle
131 register_setting( 'wpr-elements-settings', 'wpr-element-toggle-all', [ 'default' => 'on' ] );
132
133 // Widgets
134 foreach ( Utilities::get_registered_modules() as $title => $data ) {
135 $slug = $data[0];
136 register_setting( 'wpr-elements-settings', 'wpr-element-'. $slug, [ 'default' => 'on' ] );
137 }
138
139 // Pro widgets that appear in Elements tab (so their toggles are saved)
140 if ( defined( 'WPR_ADDONS_PRO_VERSION' ) && wpr_fs()->can_use_premium_code() ) {
141 $pro_element_slugs = [ 'breadcrumbs-pro', 'weather-pro', 'google-reviews-pro' ];
142 if ( wpr_fs()->is_plan( 'expert' ) ) {
143 $pro_element_slugs = array_merge( $pro_element_slugs, [ 'category-grid-pro', 'advanced-filters-pro' ] );
144 }
145 foreach ( $pro_element_slugs as $slug ) {
146 register_setting( 'wpr-elements-settings', 'wpr-element-' . $slug, [ 'default' => 'on' ] );
147 }
148 }
149
150 // Theme Builder
151 foreach ( Utilities::get_theme_builder_modules() as $title => $data ) {
152 $slug = $data[0];
153 register_setting( 'wpr-elements-settings', 'wpr-element-'. $slug, [ 'default' => 'on' ] );
154 }
155
156 $woo_modules = Utilities::get_woocommerce_builder_modules();
157 $woo_modules_pro = (defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->can_use_premium_code()) ? Pro_Modules::get_woocommerce_builder_modules() : [];
158
159 // WooCommerce Builder
160 foreach ( array_merge($woo_modules, $woo_modules_pro) as $title => $data ) {
161 $slug = is_array($data) ? $data[0] : $data;
162 // var_dump('wpr-element-'. $slug);
163 register_setting( 'wpr-elements-settings', 'wpr-element-'. $slug, [ 'default' => 'on' ] );
164 }
165
166 // Image Metaboxes
167 $post_types = Utilities::get_custom_types_of( 'post', false );
168 foreach ( $post_types as $key => $value ) {
169 if ( 'page' !== $key && 'e-landing-page' !== $key ) {
170 register_setting( 'wpr-settings', 'wpr_meta_secondary_image_'. $key );
171 }
172
173 if ( 'post' !== $key && 'product' !== $key && 'page' !== $key && 'e-landing-page' !== $key ) {
174 register_setting( 'wpr-settings', 'wpr_cpt_ppp_'. $key );
175 }
176 }
177
178 // Featured Video Metabox (WooCommerce products only)
179 register_setting( 'wpr-settings', 'wpr_meta_featured_video_product', [ 'default' => 'on' ] );
180
181 }
182
183 function wpr_addons_settings_page() {
184
185 ?>
186
187 <div class="wrap wpr-settings-page-wrap">
188
189 <div class="wpr-settings-page-header">
190 <h1><?php echo esc_html(Utilities::get_plugin_name(true)); ?></h1>
191 <p><?php esc_html_e( 'The most powerful Elementor Addon in the universe.', 'wpr-addons' ); ?></p>
192
193 <?php if ( empty(get_option('wpr_wl_plugin_links')) ) : ?>
194 <div class="wpr-preview-buttons">
195 <a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-plugin-prev-btn" target="_blank" class="button wpr-options-button">
196 <span><?php echo esc_html__( 'View Plugin Demo', 'wpr-addons' ); ?></span>
197 <span class="dashicons dashicons-external"></span>
198 </a>
199
200 <a href="https://www.youtube.com/watch?v=rkYQfn3tUc0" class="wpr-options-button button" target="_blank">
201 <?php echo esc_html__( 'How to use Widgets', 'wpr-addons' ); ?>
202 <span class="dashicons dashicons-video-alt3"></span>
203 </a>
204
205 <!-- <a href="https://royaladdons.frill.co/b/6m4d5qm4/feature-ideas" class="wpr-options-button button" target="_blank">
206 <?php echo esc_html__( 'Request New Feature', 'wpr-addons' ); ?>
207 <span class="dashicons dashicons-star-empty"></span>
208 </a> -->
209 </div>
210 <?php endif; ?>
211 </div>
212
213 <div class="wpr-settings-page">
214 <form method="post" action="options.php">
215 <?php
216
217 // Active Tab
218 if ( empty(get_option('wpr_wl_hide_elements_tab')) ) {
219 $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_elements';
220 } elseif ( empty(get_option('wpr_wl_hide_extensions_tab')) ) {
221 $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_extensions';
222 } elseif ( empty(get_option('wpr_wl_hide_settings_tab')) ) {
223 $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_settings';
224 } elseif ( empty(get_option('wpr_wl_hide_free_pro_tab')) ) {
225 $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_free_pro';
226 } elseif ( empty(get_option('wpr_wl_hide_white_label_tab')) ) {
227 $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_white_label';
228 } else {
229 $active_tab = $_GET['tab'];
230 }
231
232
233 // Render Create Templte Popup
234 WPR_Templates_Loop::render_create_template_popup();
235
236 // Render Backup Plugin Popup
237 WPR_Templates_Loop::render_backup_plugin_popup();
238
239 ?>
240
241 <!-- Tabs -->
242 <div class="nav-tab-wrapper wpr-nav-tab-wrapper">
243 <?php if ( empty(get_option('wpr_wl_hide_elements_tab')) ) : ?>
244 <a href="?page=wpr-addons&tab=wpr_tab_elements" data-title="Elements" class="nav-tab <?php echo ($active_tab == 'wpr_tab_elements') ? 'nav-tab-active' : ''; ?>">
245 <?php esc_html_e( 'Widgets', 'wpr-addons' ); ?>
246 </a>
247 <?php endif; ?>
248
249 <?php if ( empty(get_option('wpr_wl_hide_extensions_tab')) ) : ?>
250 <a href="?page=wpr-addons&tab=wpr_tab_extensions" data-title="Extensions" class="nav-tab <?php echo ($active_tab == 'wpr_tab_extensions') ? 'nav-tab-active' : ''; ?>">
251 <?php esc_html_e( 'Extensions', 'wpr-addons' ); ?>
252 </a>
253 <?php endif; ?>
254
255 <?php if ( empty(get_option('wpr_wl_hide_settings_tab')) ) : ?>
256 <a href="?page=wpr-addons&tab=wpr_tab_settings" data-title="Settings" class="nav-tab <?php echo ($active_tab == 'wpr_tab_settings') ? 'nav-tab-active' : ''; ?>">
257 <?php esc_html_e( 'Settings', 'wpr-addons' ); ?>
258 </a>
259 <?php endif; ?>
260
261 <?php if ( empty(get_option('wpr_wl_hide_free_pro_tab')) && (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->is_plan( 'expert' )) ) : ?>
262 <a href="?page=wpr-addons&tab=wpr_tab_free_pro" data-title="Settings" class="nav-tab <?php echo ($active_tab == 'wpr_tab_free_pro') ? 'nav-tab-active' : ''; ?>">
263 <?php esc_html_e( 'Free vs Pro', 'wpr-addons' ); ?>
264 </a>
265 <?php endif; ?>
266
267 <?php // White Label
268 if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->is_plan( 'expert' ) ) {
269 echo !empty(get_option('wpr_wl_hide_white_label_tab')) ? '<div style="display: none;">' : '<div>';
270 do_action('wpr_white_label_tab');
271 echo '</div>';
272 }
273 ?>
274 </div>
275
276 <?php if ( $active_tab == 'wpr_tab_elements' ) : ?>
277
278 <?php
279
280 // Settings
281 settings_fields( 'wpr-elements-settings' );
282 do_settings_sections( 'wpr-elements-settings' );
283
284 ?>
285
286 <div class="wpr-elements-header">
287 <div class="wpr-widgets-search">
288 <input type="text" autocomplete="off" placeholder="<?php esc_html_e('Search Widgets...', 'wpr-addons'); ?>">
289 <span class="dashicons dashicons-search"></span>
290 </div>
291
292 <div class="wpr-elements-toggle">
293 <div>
294 <h3><?php esc_html_e( 'Toggle all Widgets', 'wpr-addons' ); ?></h3>
295 <input type="checkbox" name="wpr-element-toggle-all" id="wpr-element-toggle-all" <?php checked( get_option('wpr-element-toggle-all', 'on'), 'on', true ); ?>>
296 <label for="wpr-element-toggle-all"></label>
297 </div>
298 <p><?php esc_html_e( 'You can disable some widgets for faster page speed.', 'wpr-addons' ); ?></p>
299 </div>
300
301 <div class="wpr-elements-filters">
302 <ul>
303 <li data-filter="all" class="wpr-active-filter"><?php esc_html_e( 'All Widgets', 'wpr-addons' ); ?></li>
304 <li data-filter="theme"><?php esc_html_e( 'Theme Builder', 'wpr-addons' ); ?></li>
305 <li data-filter="woo"><?php esc_html_e( 'WooCommerce', 'wpr-addons' ); ?></li>
306 </ul>
307 </div>
308 </div>
309
310 <div class="wpr-elements wpr-elements-general">
311 <?php
312 $modules = Utilities::get_registered_modules();
313 $premium_modules = [
314 'Breadcrumbs' => ['breadcrumbs-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-breadcrumbs-widgets-upgrade-pro#purchasepro', '', 'pro'],
315 'Category Grid' => ['category-grid-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-catgrid-widgets-upgrade-pro#purchasepro', '', 'expert'],
316 'Advanced Filters' => ['advanced-filters-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-advancedfilters-widgets-upgrade-pro#purchasepro', '', 'expert'],
317 'Weather' => ['weather-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-weather-widgets-upgrade-pro#purchasepro', '', 'pro'],
318 'Google Reviews' => ['google-reviews-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-google-reviews-widgets-upgrade-pro#purchasepro', '', 'pro'],
319 ];
320
321 foreach ( array_merge($modules, $premium_modules) as $title => $data ) {
322 $slug = $data[0];
323 $url = $data[1];
324 $reff = '?ref=rea-plugin-backend-elements-widget-prev'. $data[2];
325 $class = 'new' === $data[3] ? ' wpr-new-element' : '';
326 $default_value = 'on';
327 $link_text = esc_html__('View Widget Demo', 'wpr-addons');
328
329 if ( 'pro' === $data[3] && (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code()) ) {
330 $class = 'wpr-pro-element';
331 } elseif ( 'expert' === $data[3] && (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->is_plan( 'expert' )) ) {
332 $class = 'wpr-expert-element';
333 }
334
335 if ( 'wpr-pro-element' === $class || 'wpr-expert-element' === $class ) {
336 $default_value = 'off';
337 $link_text = '';
338 $reff = '';
339 }
340
341 if ( 'breadcrumbs-pro' == $data[0] && (defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->can_use_premium_code()) ) {
342 $url = '';
343 }
344
345 if ( 'category-grid-pro' == $data[0] && (defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->is_plan( 'expert' )) ) {
346 $url = '';
347 }
348
349 if ( 'advanced-filters-pro' == $data[0] && (defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->is_plan( 'expert' )) ) {
350 $url = 'https://demosites.royal-elementor-addons.com/fashion-v2/shop-fashion-v2/';
351 }
352
353 echo '<div class="wpr-element '. esc_attr($class) .'">';
354 echo '<div class="wpr-element-info">';
355 echo '<h3>'. esc_html($title) .'</h3>';
356 echo '<input type="checkbox" name="wpr-element-'. esc_attr($slug) .'" id="wpr-element-'. esc_attr($slug) .'" '. checked( get_option('wpr-element-'. $slug, $default_value), 'on', false ) .'>';
357 echo '<label for="wpr-element-'. esc_attr($slug) .'"></label>';
358 echo ( '' !== $url && empty(get_option('wpr_wl_plugin_links')) ) ? '<a href="'. esc_url($url . $reff) .'" target="_blank">'. esc_html( $link_text ) .'</a>' : '';
359 echo '</div>';
360 echo '</div>';
361 }
362 ?>
363 </div>
364
365 <div class="wpr-elements-heading">
366 <h3><?php esc_html_e( 'Theme Builder Widgets', 'wpr-addons' ); ?></h3>
367 <p><?php esc_html_e( 'Post (CPT) Archive Pages, Post (CPT) Single Pages', 'wpr-addons' ); ?></p>
368 <a href="https://youtu.be/cwkhwO_rPuo?t=743" target="_blank"><?php esc_html_e( 'How to use Theme Builder Widgets', 'wpr-addons' ); ?></a>
369 <br><br>
370 <a href="https://www.youtube.com/watch?v=kE1zmi3fxh8" target="_blank"><?php esc_html_e( ' How to build Dynamic Websites', 'wpr-addons' ); ?></a>
371 </div>
372 <div class="wpr-elements wpr-elements-theme">
373 <?php
374 foreach ( Utilities::get_theme_builder_modules() as $title => $data ) {
375 $slug = $data[0];
376 $url = $data[1];
377 $reff = '?ref=rea-plugin-backend-elements-widget-prev'. $data[2];
378 $class = 'new' === $data[3] ? ' wpr-new-element' : '';
379
380 echo '<div class="wpr-element'. esc_attr($class) .'">';
381 echo '<div class="wpr-element-info">';
382 echo '<h3>'. esc_html($title) .'</h3>';
383 echo '<input type="checkbox" name="wpr-element-'. esc_attr($slug) .'" id="wpr-element-'. esc_attr($slug) .'" '. checked( get_option('wpr-element-'. $slug, 'on'), 'on', false ) .'>';
384 echo '<label for="wpr-element-'. esc_attr($slug) .'"></label>';
385 echo ( '' !== $url && empty(get_option('wpr_wl_plugin_links')) ) ? '<a href="'. esc_url($url . $reff) .'" target="_blank">'. esc_html__('View Widget Demo', 'wpr-addons') .'</a>' : '';
386 echo '</div>';
387 echo '</div>';
388 }
389 ?>
390 </div>
391
392 <div class="wpr-elements-heading">
393 <h3><?php esc_html_e( 'WooCommerce Builder Widgets', 'wpr-addons' ); ?></h3>
394 <p><?php esc_html_e( 'Product Archive Pages, Product Single Pages. Cart, Checkout and My Account Pages', 'wpr-addons' ); ?></p>
395 <?php if (!class_exists('WooCommerce')) : ?>
396 <p class='wpr-install-activate-woocommerce'><span class="dashicons dashicons-info-outline"></span> <?php esc_html_e( 'Install/Activate WooCommerce to use these widgets', 'wpr-addons' ); ?></p>
397 <?php endif; ?>
398 <a href="https://youtu.be/f_3tNiBC3dw?t=238" target="_blank"><?php esc_html_e( 'How to use WooCommerce Builder Widgets', 'wpr-addons' ); ?></a>
399 <br><br>
400 <a href="https://www.youtube.com/watch?v=wis1rQTn1tg" target="_blank"><?php esc_html_e( 'How to use Wishlist & Compare', 'wpr-addons' ); ?></a>
401 <br><br>
402 <a href="https://www.youtube.com/watch?v=ejbvzt2BkJE" target="_blank"><?php esc_html_e( ' How to use Advanced Filters', 'wpr-addons' ); ?></a>
403 </div>
404 <div class="wpr-elements wpr-elements-woo">
405 <?php
406 $woocommerce_builder_modules = Utilities::get_woocommerce_builder_modules();
407 $premium_woo_modules = [
408 'Product Filters' => ['product-filters-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-prodfilter-widgets-upgrade-pro#purchasepro', '', 'pro'],
409 'Product Breadcrumbs' => ['product-breadcrumbs-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-breadcru-widgets-upgrade-pro#purchasepro', '', 'pro'],
410 'Page My Account' => ['page-my-account-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-myacc-widgets-upgrade-pro#purchasepro', '', 'pro'],
411 'Woo Category Grid' => ['woo-category-grid-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-catgrid-widgets-upgrade-pro#purchasepro', '', 'pro'],
412 'Wishlist Button' => ['wishlist-button-pro', 'https://royal-elementor-addons.com/#purchasepro?ref=rea-plugin-backend-elements-woo-wishlist-btn-widgets-upgrade-expert#purchasepro', '', 'expert'],
413 'Mini Wishlist' => ['mini-wishlist-pro', 'https://royal-elementor-addons.com/#purchasepro?ref=rea-plugin-backend-elements-woo-wishlist-mini-widgets-upgrade-expert#purchasepro', '', 'expert'],
414 'Wishlist Table' => ['wishlist-pro', 'https://royal-elementor-addons.com/#purchasepro?ref=rea-plugin-backend-elements-woo-wishlist-widgets-upgrade-expert#purchasepro', '', 'expert'],
415 'Compare Button' => ['compare-button-pro', 'https://royal-elementor-addons.com/#purchasepro?ref=rea-plugin-backend-elements-woo-compare-btn-widgets-upgrade-expert#purchasepro', '', 'expert'],
416 'Mini Compare' => ['mini-compare-pro', 'https://royal-elementor-addons.com/#purchasepro?ref=rea-plugin-backend-elements-woo-compare-mini-widgets-upgrade-expert#purchasepro', '', 'expert'],
417 'Compare Table' => ['compare-pro', 'https://royal-elementor-addons.com/#purchasepro?ref=rea-plugin-backend-elements-woo-compare-widgets-upgrade-expert#purchasepro', '', 'expert'],
418 ];
419
420 foreach ( array_merge($woocommerce_builder_modules, $premium_woo_modules) as $title => $data ) {
421 $slug = $data[0];
422 $url = $data[1];
423 $reff = '?ref=rea-plugin-backend-elements-widget-prev'. $data[1];
424 $class = 'new' === $data[3] ? 'wpr-new-element' : '';
425 $class = ('pro' === $data[3] && (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code()) ) ? 'wpr-pro-element' : '';
426 $default_value = class_exists( 'WooCommerce' ) ? 'on' : 'off';
427
428 if ( 'pro' === $data[3] && (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code()) ) {
429 $class = 'wpr-pro-element';
430 } elseif ( 'expert' === $data[3] && (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->is_plan( 'expert' )) ) {
431 $class = 'wpr-expert-element';
432 }
433
434 if ( 'wpr-pro-element' === $class || 'wpr-expert-element' === $class ) {
435 $default_value = 'off';
436 $reff = '';
437 }
438
439 echo '<div class="wpr-element '. esc_attr($class) .'">';
440 echo '<a href="'. esc_url($url . $reff) .'" target="_blank"></a>';
441 echo '<div class="wpr-element-info">';
442 echo '<h3>'. esc_html($title) .'</h3>';
443 echo '<input type="checkbox" name="wpr-element-'. esc_attr($slug) .'" id="wpr-element-'. esc_attr($slug) .'" '. checked( get_option('wpr-element-'. $slug, $default_value), 'on', false ) .'>';
444 echo '<label for="wpr-element-'. esc_attr($slug) .'"></label>';
445 // echo ( '' !== $url && empty(get_option('wpr_wl_plugin_links')) ) ? '<a href="'. esc_url($url . $reff) .'" target="_blank">'. esc_html__('View Widget Demo', 'wpr-addons') .'</a>' : '';
446 echo '</div>';
447 echo '</div>';
448 }
449 ?>
450 </div>
451
452 <div class="wpr-widgets-not-found">
453 <img src="<?php echo esc_url(WPR_ADDONS_ASSETS_URL .'img/not-found.png'); ?>">
454 <h1><?php esc_html_e('No Search Results Found.', 'wpr-addons'); ?></h1>
455 <p><?php esc_html_e('Cant find a Widget you are looking for?', 'wpr-addons'); ?></p>
456 <a href="https://royaladdons.frill.co/b/6m4d5qm4/feature-ideas" target="_blank"><?php esc_html_e('Request a New Widget', 'wpr-addons'); ?></a>
457 </div>
458
459 <?php //submit_button( '', 'wpr-options-button' ); ?>
460
461 <?php elseif ( $active_tab == 'wpr_tab_settings' ) : ?>
462
463 <?php
464
465 // Settings
466 settings_fields( 'wpr-settings' );
467 do_settings_sections( 'wpr-settings' );
468
469 ?>
470
471 <div class="wpr-settings">
472
473 <?php submit_button( '', 'wpr-options-button' ); ?>
474
475 <div class="wpr-settings-group wpr-settings-navigation">
476 <a href="#general-tab">General</a> /
477 <a href="#optimizers-tab">Optimizers</a> /
478 <a href="#woocommerce-tab">WooCommerce</a> /
479 <?php if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->is_plan( 'expert' ) ) : ?>
480 <a href="#cpt-tab">Custom Post Types</a> /
481 <?php endif; ?>
482 <?php if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->can_use_premium_code() ) : ?>
483 <a href="#metabox-tab">Metabox</a> /
484 <?php endif; ?>
485 <a href="#integrations-tab">Integrations</a> /
486 <a href="#lightbox-tab">Lightbox</a>
487 </div>
488
489 <div class="wpr-settings-group wpr-settings-group-general">
490 <h3 id="general-tab" class="wpr-settings-group-title"><?php esc_html_e( 'General', 'wpr-addons' ); ?></h3>
491
492 <div class="wpr-woo-template-info">
493 <div class="wpr-woo-template-title">
494 <h4>Hide Banners</h4>
495 <span>Disable All REA Banners Related to Discounts and New Features</span>
496 </div>
497 <input type="checkbox" name="wpr_hide_banners" id="wpr_hide_banners" <?php echo checked( get_option('wpr_hide_banners'), 'on', false ); ?>>
498 <label for="wpr_hide_banners"></label>
499 </div>
500
501 <div class="wpr-woo-template-info">
502 <div class="wpr-woo-template-title">
503 <h4>Hide Header & Footer</h4>
504 <span>Disable Header & Footer on Elementor Maintenance/Coming Soon Mode</span>
505 </div>
506 <input type="checkbox" name="wpr_hide_head_foot_on_maintenenace" id="wpr_hide_head_foot_on_maintenenace" <?php echo checked( get_option('wpr_hide_head_foot_on_maintenenace', 'on'), 'on', true ); ?>>
507 <label for="wpr_hide_head_foot_on_maintenenace"></label>
508 </div>
509 </div>
510
511 <div class="wpr-settings-group wpr-settings-group-optimizers">
512 <h3 id="optimizers-tab" class="wpr-settings-group-title"><?php esc_html_e( 'Optimizers', 'wpr-addons' ); ?></h3>
513
514 <div class="wpr-woo-template-info">
515 <div class="wpr-woo-template-title">
516 <h4><?php echo 'WP Rocket JS'; ?></h4>
517 </div>
518 <input type="checkbox" name="wpr_ignore_wp_rocket_js" id="wpr_ignore_wp_rocket_js" <?php echo checked( get_option('wpr_ignore_wp_rocket_js', 'on'), 'on', false ); ?>>
519 <label for="wpr_ignore_wp_rocket_js"></label>
520 </div>
521
522 <div class="wpr-woo-template-info">
523 <div class="wpr-woo-template-title">
524 <h4><?php echo 'WP Optimize JS'; ?></h4>
525 </div>
526 <input type="checkbox" name="wpr_ignore_wp_optimize_js" id="wpr_ignore_wp_optimize_js" <?php echo checked( get_option('wpr_ignore_wp_optimize_js', 'on'), 'on', false ); ?>>
527 <label for="wpr_ignore_wp_optimize_js"></label>
528 </div>
529
530 <div class="wpr-woo-template-info">
531 <div class="wpr-woo-template-title">
532 <h4><?php echo 'WP Optimize CSS'; ?></h4>
533 </div>
534 <input type="checkbox" name="wpr_ignore_wp_optimize_css" id="wpr_ignore_wp_optimize_css" <?php echo checked( get_option('wpr_ignore_wp_optimize_css', 'on'), 'on', false ); ?>>
535 <label for="wpr_ignore_wp_optimize_css"></label>
536 </div>
537
538 <p class="wpr-settings-group-description"><?php esc_html_e( 'Ignores our Scripts in Respective Optimizers.', 'wpr-addons' ); ?></p>
539 </div>
540
541 <div class="wpr-settings-group wpr-settings-group-woo">
542 <h3 id="woocommerce-tab" class="wpr-settings-group-title"><?php esc_html_e( 'WooCommerce', 'wpr-addons' ); ?></h3>
543
544 <div class="wpr-settings-group-inner">
545
546 <?php if ( !defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code() ) : ?>
547 <a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-settings-woo-pro#purchasepro" class="wpr-settings-pro-overlay" target="_blank">
548 <span class="dashicons dashicons-lock"></span>
549 <span class="dashicons dashicons-unlock"></span>
550 <span><?php esc_html_e( 'Upgrade to Pro', 'wpr-addons' ); ?></span>
551 </a>
552 <div class="wpr-setting">
553 <h4>
554 <span><?php esc_html_e( 'Shop Page: Products Per Page', 'wpr-addons' ); ?></span>
555 <br>
556 </h4>
557 <input type="text" value="9">
558 </div>
559 <div class="wpr-setting">
560 <h4>
561 <span><?php esc_html_e( 'Product Category: Products Per Page', 'wpr-addons' ); ?></span>
562 <br>
563 </h4>
564 <input type="text" value="9">
565 </div>
566 <div class="wpr-setting">
567 <h4>
568 <span><?php esc_html_e( 'Product Tag: Products Per Page', 'wpr-addons' ); ?></span>
569 <br>
570 </h4>
571 <input type="text" value="9">
572 </div>
573 <?php else: ?>
574 <?php do_action('wpr_woocommerce_settings'); ?>
575 <?php endif; ?>
576
577 </div>
578
579 <div class="wpr-woo-template-info">
580 <div class="wpr-woo-template-title">
581 <h4>Royal Woocommerce Config</h4>
582 <span>Below options work only if this option is enabled</span>
583 </div>
584 <input type="checkbox" name="wpr_override_woo_templates" id="wpr_override_woo_templates" <?php echo checked( get_option('wpr_override_woo_templates', 'on'), 'on', false ); ?>>
585 <label for="wpr_override_woo_templates"></label>
586 </div>
587
588 <div class="wpr-woo-template-info">
589 <div class="wpr-woo-template-title">
590 <h4>Cart</h4>
591 <span>Overrides Default Cart Template</span>
592 </div>
593 <input type="checkbox" name="wpr_override_woo_cart" id="wpr_override_woo_cart" <?php echo checked( get_option('wpr_override_woo_cart', 'on'), 'on', false ); ?>>
594 <label for="wpr_override_woo_cart"></label>
595 </div>
596
597 <div class="wpr-woo-template-info">
598 <div class="wpr-woo-template-title">
599 <h4>Mini Cart</h4>
600 <span>Overrides Default Mini Cart Template</span>
601 </div>
602 <input type="checkbox" name="wpr_override_woo_mini_cart" id="wpr_override_woo_mini_cart" <?php echo checked( get_option('wpr_override_woo_mini_cart', 'on'), 'on', false ); ?>>
603 <label for="wpr_override_woo_mini_cart"></label>
604 </div>
605
606 <div class="wpr-woo-template-info">
607 <div class="wpr-woo-template-title">
608 <h4>Notices</h4>
609 <span>Overrides Default Notice Templates</span>
610 </div>
611 <input type="checkbox" name="wpr_override_woo_notices" id="wpr_override_woo_notices" <?php echo checked( get_option('wpr_override_woo_notices', 'on'), 'on', false ); ?>>
612 <label for="wpr_override_woo_notices"></label>
613 </div>
614
615 <div class="wpr-woo-template-info">
616 <div class="wpr-woo-template-title">
617 <h4>Lightbox</h4>
618 <span>Disables Default Lightbox to avoid compatibility issues while using royal product media</span>
619 </div>
620 <input type="checkbox" name="wpr_remove_wc_default_lightbox" id="wpr_remove_wc_default_lightbox" <?php echo checked( get_option('wpr_remove_wc_default_lightbox', 'on'), 'on', false ); ?>>
621 <label for="wpr_remove_wc_default_lightbox"></label>
622 </div>
623
624 <div class="wpr-woo-template-info">
625 <div class="wpr-woo-template-title">
626 <h4>Product Image Zoom</h4>
627 <span>Enable/Disable Image Zoom Effect on Woocommerce products</span>
628 </div>
629 <input type="checkbox" name="wpr_enable_product_image_zoom" id="wpr_enable_product_image_zoom" <?php echo checked( get_option('wpr_enable_product_image_zoom', 'on'), 'on', false ); ?>>
630 <label for="wpr_enable_product_image_zoom"></label>
631 </div>
632
633 <div class="wpr-woo-template-info">
634 <div class="wpr-woo-template-title">
635 <h4>Product Slider Nav</h4>
636 <span>Enable/Disable Navigation Arrows on Woocommerce products slider</span>
637 </div>
638 <input type="checkbox" name="wpr_enable_woo_flexslider_navigation" id="wpr_enable_woo_flexslider_navigation" <?php echo checked( get_option('wpr_enable_woo_flexslider_navigation', 'on'), 'on', false ); ?>>
639 <label for="wpr_enable_woo_flexslider_navigation"></label>
640 </div>
641
642 <?php if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->is_plan( 'expert' ) ) : ?>
643
644 <div class="wpr-woo-template-info">
645 <div class="wpr-woo-template-title">
646 <h4>Add Wishlist To My Account</h4>
647 <span>Adds wishlist menu item to my account widget</span>
648 </div>
649 <input type="checkbox" name="wpr_add_wishlist_to_my_account" id="wpr_add_wishlist_to_my_account" <?php echo checked( get_option('wpr_add_wishlist_to_my_account', 'on'), 'on', false ); ?>>
650 <label for="wpr_add_wishlist_to_my_account"></label>
651 </div>
652
653 <div class="wpr-woo-template-info wpr-compare-wishlist">
654 <?php
655 $pages = get_pages(); // Get all pages on the site
656 $current_page = get_option( 'wpr_compare_page' ); // Get the current selected page
657 echo '<label for="wpr_compare_page">Select Compare Page</label>';
658 echo '<select name="wpr_compare_page" id="wpr_compare_page" >';
659
660 foreach ( $pages as $page ) {
661 echo '<option value="' . esc_attr( $page->ID ) . '" ' . selected( $current_page, $page->ID, false ) . '>' . esc_html( $page->post_title ) . '</option>';
662 }
663
664 echo '</select>';
665 ?>
666 </div>
667
668 <div class="wpr-woo-template-info wpr-compare-wishlist">
669 <?php
670 $pages = get_pages(); // Get all pages on the site
671 $current_page = get_option( 'wpr_wishlist_page' ); // Get the current selected page
672 echo '<label for="wpr_wishlist_page">Select Wishlist Page</label>';
673 echo '<select name="wpr_wishlist_page" id="wpr_wishlist_page" >';
674
675 foreach ( $pages as $page ) {
676 echo '<option value="' . esc_attr( $page->ID ) . '" ' . selected( $current_page, $page->ID, false ) . '>' . esc_html( $page->post_title ) . '</option>';
677 }
678
679 echo '</select>';
680 ?>
681 </div>
682
683 <h4>
684 <a href="https://youtu.be/wis1rQTn1tg?t=97" target="_blank"><?php esc_html_e( 'How to use Wishlist & Compare pages', 'wpr-addons' ); ?></a>
685 </h4>
686 <?php endif; ?>
687
688 </div>
689
690
691 <?php if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->is_plan( 'expert' ) ) : ?>
692 <div class="wpr-settings-group wpr-settings-group-cpt">
693 <h3 id="cpt-tab" class="wpr-settings-group-title"><?php esc_html_e( 'Custom Post Types', 'wpr-addons' ); ?></h3>
694
695 <?php
696 $post_types = Utilities::get_custom_types_of( 'post', false );
697
698 $custom_post_types_exist = false;
699
700 foreach ( $post_types as $key => $post_type ) {
701 if ( ! in_array( $key, ['post', 'page', 'attachment', 'product', 'e-landing-page', 'revision', 'nav_menu_item'] ) ) {
702 // This is a custom post type.
703 $custom_post_types_exist = true;
704 break;
705 }
706 }
707
708 if ( $custom_post_types_exist ) {
709 foreach ( $post_types as $key => $value ) {
710 if ( 'post' == $key || 'product' == $key || 'page' == $key || 'e-landing-page' === $key ) {
711 continue;
712 }
713
714 ?>
715 <div class="wpr-setting">
716 <h4>
717 <span>
718 <?php
719 // Translators: %s is replaced with the custom post type (CPT) name
720 echo esc_html( sprintf( __( '%s : Posts Per Page', 'wpr-addons' ), $value ) );
721 ?>
722 </span>
723 <br>
724 </h4>
725
726
727 <input type="text" name="wpr_cpt_ppp_<?php echo esc_attr( $key ); ?>" id="wpr_cpt_ppp_<?php echo esc_attr( $key ); ?>" value="<?php echo esc_attr(get_option('wpr_cpt_ppp_'. $key, 10)); ?>">
728 </div>
729 <?php
730 }
731 } else {
732 echo '<p>No custom post types found.</p>';
733 }
734
735
736 // do_action('wpr_cpt_settings');
737 ?>
738
739 <!-- <div class="wpr-settings-group-inner"> -->
740
741 <!-- </div> -->
742 </div>
743 <?php endif; ?>
744
745
746 <?php if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->can_use_premium_code() ) : ?>
747 <div class="wpr-settings-group wpr-settings-group-meta">
748 <h3 id="metabox-tab" class="wpr-settings-group-title"><?php esc_html_e( 'Metabox', 'wpr-addons' ); ?></h3>
749
750 <?php
751 $post_types = Utilities::get_custom_types_of( 'post', false );
752 foreach ( $post_types as $key => $value ) {
753 if ( 'page' == $key || 'e-landing-page' === $key ) {
754 continue;
755 }
756
757 ?>
758 <div class="wpr-woo-template-info">
759 <div class="wpr-woo-template-title">
760 <h4><?php echo esc_html( $value ); ?></h4>
761 </div>
762 <input type="checkbox" name="wpr_meta_secondary_image_<?php echo esc_attr( $key ); ?>" id="wpr_meta_secondary_image_<?php echo esc_attr( $key ); ?>" <?php echo checked( get_option('wpr_meta_secondary_image_'. $key, 'on'), 'on', false ); ?>>
763 <label for="wpr_meta_secondary_image_<?php echo esc_attr( $key ); ?>"></label>
764 </div>
765 <?php
766 }
767 ?>
768 <p class="wpr-settings-group-description"><?php esc_html_e( 'Add secondary Featured image metabox to post types.', 'wpr-addons' ); ?></p>
769
770 <?php if ( class_exists( 'WooCommerce' ) ) : ?>
771 <div class="wpr-woo-template-info">
772 <div class="wpr-woo-template-title">
773 <h4><?php esc_html_e( 'Product: Featured Video', 'wpr-addons' ); ?></h4>
774 </div>
775 <input type="checkbox" name="wpr_meta_featured_video_product" id="wpr_meta_featured_video_product" <?php echo checked( get_option( 'wpr_meta_featured_video_product', 'on' ), 'on', false ); ?>>
776 <label for="wpr_meta_featured_video_product"></label>
777 </div>
778 <p class="wpr-settings-group-description"><?php esc_html_e( 'Add Featured Video metabox to WooCommerce products.', 'wpr-addons' ); ?></p>
779 <?php endif; ?>
780
781 <!-- <div class="wpr-settings-group-inner"> -->
782
783 <!-- </div> -->
784 </div>
785 <?php endif; ?>
786
787 <div class="wpr-settings-group">
788 <h3 id="integrations-tab" class="wpr-settings-group-title"><?php esc_html_e( 'Integrations', 'wpr-addons' ); ?></h3>
789
790 <div class="wpr-setting">
791 <h4>
792 <span><?php esc_html_e( 'Google API Key (REA)', 'wpr-addons' ); ?></span>
793 <br>
794 <a href="https://www.youtube.com/watch?v=hsNlz7-abd0" target="_blank"><?php esc_html_e( 'How to get Google API Key?', 'wpr-addons' ); ?></a>
795 </h4>
796
797 <input type="text" name="wpr_google_api_key" id="wpr_google_api_key" value="<?php echo esc_attr( get_option( 'wpr_google_api_key' ) ); ?>">
798 <p class="wpr-settings-group-description"><?php esc_html_e( 'Primary key used by Google Reviews (Google Places API). If empty, it falls back to Google Map API Key below.', 'wpr-addons' ); ?></p>
799 </div>
800
801 <div class="wpr-setting">
802 <h4>
803 <span><?php esc_html_e( 'Google Map API Key', 'wpr-addons' ); ?></span>
804 <br>
805 <a href="https://www.youtube.com/watch?v=hsNlz7-abd0" target="_blank"><?php esc_html_e( 'How to get Google Map API Key?', 'wpr-addons' ); ?></a>
806 </h4>
807
808 <input type="text" name="wpr_google_map_api_key" id="wpr_google_map_api_key" value="<?php echo esc_attr(get_option('wpr_google_map_api_key')); ?>">
809 <p class="wpr-settings-group-description"><?php esc_html_e( 'Also used by the Google Reviews widget when Data Source is Google Places API.', 'wpr-addons' ); ?></p>
810
811 <h4>
812 <span><?php esc_html_e( 'Google Map Language', 'wpr-addons' ); ?></span>
813 </h4>
814
815 <select name="wpr_google_map_language" id="wpr_google_map_language">
816 <option value=""><?php esc_html_e('Default', 'wpr-addons'); ?></option>
817 <option value="en" <?php selected(get_option('wpr_google_map_language'), 'en'); ?>><?php esc_html_e('English', 'wpr-addons'); ?></option>
818 <option value="es" <?php selected(get_option('wpr_google_map_language'), 'es'); ?>><?php esc_html_e('Spanish', 'wpr-addons'); ?></option>
819 <option value="fr" <?php selected(get_option('wpr_google_map_language'), 'fr'); ?>><?php esc_html_e('French', 'wpr-addons'); ?></option>
820 <option value="de" <?php selected(get_option('wpr_google_map_language'), 'de'); ?>><?php esc_html_e('German', 'wpr-addons'); ?></option>
821 <option value="zh" <?php selected(get_option('wpr_google_map_language'), 'zh'); ?>><?php esc_html_e('Chinese', 'wpr-addons'); ?></option>
822 <option value="ja" <?php selected(get_option('wpr_google_map_language'), 'ja'); ?>><?php esc_html_e('Japanese', 'wpr-addons'); ?></option>
823 <option value="ko" <?php selected(get_option('wpr_google_map_language'), 'ko'); ?>><?php esc_html_e('Korean', 'wpr-addons'); ?></option>
824 <option value="hi" <?php selected(get_option('wpr_google_map_language'), 'hi'); ?>><?php esc_html_e('Hindi', 'wpr-addons'); ?></option>
825 <option value="ar" <?php selected(get_option('wpr_google_map_language'), 'ar'); ?>><?php esc_html_e('Arabic', 'wpr-addons'); ?></option>
826 </select>
827 </div>
828
829 <div class="wpr-setting">
830 <h4>
831 <span><?php esc_html_e( 'SerpApi Key', 'wpr-addons' ); ?></span>
832 <br>
833 <a href="https://serpapi.com/google-maps-reviews-api" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'How to get SerpApi Key?', 'wpr-addons' ); ?></a>
834 <p class="wpr-settings-group-description"><?php esc_html_e( 'Used by the Google Reviews widget when Data Source is SerpApi.', 'wpr-addons' ); ?></p>
835 </h4>
836
837 <input type="text" name="wpr_serpapi_key" id="wpr_serpapi_key" value="<?php echo esc_attr( get_option( 'wpr_serpapi_key' ) ); ?>">
838 </div>
839
840 <div class="wpr-setting">
841 <h4>
842 <span><?php esc_html_e( 'OpenWeather API Key', 'wpr-addons' ); ?></span>
843 <br>
844 <a href="https://openweathermap.org/appid" target="_blank" rel="noopener noreferrer"><?php esc_html_e( 'How to get OpenWeather API Key?', 'wpr-addons' ); ?></a>
845 <p class="wpr-settings-group-description"><?php esc_html_e( 'Used by the Weather widget.', 'wpr-addons' ); ?></p>
846 </h4>
847
848 <input type="text" name="wpr_openweather_api_key" id="wpr_openweather_api_key" value="<?php echo esc_attr( get_option( 'wpr_openweather_api_key' ) ); ?>">
849 </div>
850
851 <div class="wpr-setting">
852 <h4>
853 <span><?php esc_html_e( 'MailChimp API Key', 'wpr-addons' ); ?></span>
854 <br>
855 <a href="https://mailchimp.com/help/about-api-keys/" target="_blank"><?php esc_html_e( 'How to get MailChimp API Key?', 'wpr-addons' ); ?></a>
856 </h4>
857
858 <input type="text" name="wpr_mailchimp_api_key" id="wpr_mailchimp_api_key" value="<?php echo esc_attr(get_option('wpr_mailchimp_api_key')); ?>">
859 </div>
860
861 <div class="wpr-setting">
862 <h4>
863 <span><?php esc_html_e( 'reCAPTCHA Site Key', 'wpr-addons' ); ?></span>
864 <br>
865 <a href="https://www.google.com/recaptcha/intro/v3.html" target="_blank"><?php esc_html_e( 'How to get reCAPTCHA Site Key?', 'wpr-addons' ); ?></a>
866 <p class="wpr-settings-group-description"><?php esc_html_e( 'Add a recaptcha element in Form Builder fields to make it work.', 'wpr-addons' ); ?></p>
867 </h4>
868
869 <input type="text" name="wpr_recaptcha_v3_site_key" id="wpr_recaptcha_v3_site_key" value="<?php echo esc_attr(get_option('wpr_recaptcha_v3_site_key')); ?>">
870 </div>
871
872 <div class="wpr-setting">
873 <h4>
874 <span><?php esc_html_e( 'reCAPTCHA Secret Key', 'wpr-addons' ); ?></span>
875 <br>
876 </h4>
877
878 <input type="text" name="wpr_recaptcha_v3_secret_key" id="wpr_recaptcha_v3_secret_key" value="<?php echo esc_attr(get_option('wpr_recaptcha_v3_secret_key')); ?>">
879 </div>
880
881 <div class="wpr-setting">
882 <h4>
883 <span><?php esc_html_e( 'Score Threshold', 'wpr-addons' ); ?></span>
884 <br>
885 </h4>
886
887 <input type="number" name="wpr_recaptcha_v3_score" id="wpr_recaptcha_v3_score" placeholder="0.5" step="0.1" min="0" max="1" value="<?php echo esc_attr(get_option('wpr_recaptcha_v3_score')); ?>">
888 </div>
889
890 <div class="wpr-setting">
891 <h4>
892 <span><?php esc_html_e( 'reCAPTCHA v2 (Checkbox) Site Key', 'wpr-addons' ); ?></span>
893 <br>
894 <a href="https://www.google.com/recaptcha/intro/v3.html" target="_blank"><?php esc_html_e( 'How to get reCAPTCHA keys?', 'wpr-addons' ); ?></a>
895 <p class="wpr-settings-group-description"><?php esc_html_e( 'Use reCAPTCHA v2 checkbox in Form Builder. Create a "reCAPTCHA v2" type key in Google reCAPTCHA admin.', 'wpr-addons' ); ?></p>
896 </h4>
897
898 <input type="text" name="wpr_recaptcha_v2_site_key" id="wpr_recaptcha_v2_site_key" value="<?php echo esc_attr(get_option('wpr_recaptcha_v2_site_key')); ?>">
899 </div>
900
901 <div class="wpr-setting">
902 <h4>
903 <span><?php esc_html_e( 'reCAPTCHA v2 Secret Key', 'wpr-addons' ); ?></span>
904 <br>
905 </h4>
906
907 <input type="text" name="wpr_recaptcha_v2_secret_key" id="wpr_recaptcha_v2_secret_key" value="<?php echo esc_attr(get_option('wpr_recaptcha_v2_secret_key')); ?>">
908 </div>
909
910 </div>
911
912 <div class="wpr-settings-group">
913 <h3 id="lightbox-tab" class="wpr-settings-group-title"><?php esc_html_e( 'Lightbox', 'wpr-addons' ); ?></h3>
914
915 <div class="wpr-setting">
916 <h4><?php esc_html_e( 'Background Color', 'wpr-addons' ); ?></h4>
917 <input type="text" name="wpr_lb_bg_color" id="wpr_lb_bg_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_bg_color','rgba(0,0,0,0.6)')); ?>">
918 </div>
919
920 <div class="wpr-setting">
921 <h4><?php esc_html_e( 'Toolbar BG Color', 'wpr-addons' ); ?></h4>
922 <input type="text" name="wpr_lb_toolbar_color" id="wpr_lb_toolbar_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_toolbar_color','rgba(0,0,0,0.8)')); ?>">
923 </div>
924
925 <div class="wpr-setting">
926 <h4><?php esc_html_e( 'Caption BG Color', 'wpr-addons' ); ?></h4>
927 <input type="text" name="wpr_lb_caption_color" id="wpr_lb_caption_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_caption_color','rgba(0,0,0,0.8)')); ?>">
928 </div>
929
930 <div class="wpr-setting">
931 <h4><?php esc_html_e( 'Gallery BG Color', 'wpr-addons' ); ?></h4>
932 <input type="text" name="wpr_lb_gallery_color" id="wpr_lb_gallery_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_gallery_color','#444444')); ?>">
933 </div>
934
935 <div class="wpr-setting">
936 <h4><?php esc_html_e( 'Progress Bar Color', 'wpr-addons' ); ?></h4>
937 <input type="text" name="wpr_lb_pb_color" id="wpr_lb_pb_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_pb_color','#a90707')); ?>">
938 </div>
939
940 <div class="wpr-setting">
941 <h4><?php esc_html_e( 'UI Color', 'wpr-addons' ); ?></h4>
942 <input type="text" name="wpr_lb_ui_color" id="wpr_lb_ui_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_ui_color','#efefef')); ?>">
943 </div>
944
945 <div class="wpr-setting">
946 <h4><?php esc_html_e( 'UI Hover Color', 'wpr-addons' ); ?></h4>
947 <input type="text" name="wpr_lb_ui_hr_color" id="wpr_lb_ui_hr_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_ui_hr_color','#ffffff')); ?>">
948 </div>
949
950 <div class="wpr-setting">
951 <h4><?php esc_html_e( 'Text Color', 'wpr-addons' ); ?></h4>
952 <input type="text" name="wpr_lb_text_color" id="wpr_lb_text_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_text_color','#efefef')); ?>">
953 </div>
954
955 <div class="wpr-setting">
956 <h4><?php esc_html_e( 'UI Icon Size', 'wpr-addons' ); ?></h4>
957 <input type="number" name="wpr_lb_icon_size" id="wpr_lb_icon_size" value="<?php echo esc_attr(get_option('wpr_lb_icon_size','20')); ?>">
958 </div>
959
960 <div class="wpr-setting">
961 <h4><?php esc_html_e( 'Navigation Arrow Size', 'wpr-addons' ); ?></h4>
962 <input type="number" name="wpr_lb_arrow_size" id="wpr_lb_arrow_size" value="<?php echo esc_attr(get_option('wpr_lb_arrow_size','35')); ?>">
963 </div>
964
965 <div class="wpr-setting">
966 <h4><?php esc_html_e( 'Text Size', 'wpr-addons' ); ?></h4>
967 <input type="number" name="wpr_lb_text_size" id="wpr_lb_text_size" value="<?php echo esc_attr(get_option('wpr_lb_text_size','14')); ?>">
968 </div>
969 </div>
970
971 <?php submit_button( '', 'wpr-options-button' ); ?>
972
973 </div>
974
975
976 <?php elseif ( $active_tab == 'wpr_tab_free_pro' && (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->is_plan( 'expert' )) ) : ?>
977
978 <div class="wpr-free-vs-pro-wrap">
979
980 <div class="wpr-free-vs-pro-search-wrap">
981 <div class="wpr-free-pro-search">
982 <input type="text" autocomplete="off" placeholder="<?php esc_html_e('Search for Features...', 'wpr-addons'); ?>">
983 <span class="dashicons dashicons-search"></span>
984 </div>
985
986 <a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-freevsprotab-pro#purchasepro" target="_blank" class="button wpr-free-pro-upgrade">
987 <span><?php echo esc_html__( 'Get Premium', 'wpr-addons' ); ?></span>
988 <span class="dashicons dashicons-smiley"></span>
989 </a>
990 </div>
991
992 <div class="wpr-free-vs-pro">
993 <div class="wpr-free-widgets">
994 <header>
995 <span class="dashicons dashicons-layout"></span>
996 <h3><?php echo esc_html__( 'Free Version', 'wpr-addons' ); ?></h3>
997 <span><?php echo esc_html__( 'Basic Functionality', 'wpr-addons' ); ?></span>
998 </header>
999 <ul>
1000 <li><span>Basic Support</span></li>
1001 <li><span>Mega Menu</span></li>
1002 <li><span>Post Grid/Slider/Carousel Widget</span></li>
1003 <li><span>Woocommerce Grid/Slider/Carousel Widget</span></li>
1004 <li><span>Image Grid/Slider/Carousel Widget</span></li>
1005 <li><span>Magazine Grid/Slider Widget</span></li>
1006 <li><span>Basic Timeline Widget</span></li>
1007 <li><span>Basic Slider Widget</span></li>
1008 <li><span>Basic Form Builder Widget</span></li>
1009 <li><span>Offcanvas Content</span></li>
1010 <li><span>Instagram Feed</span></li>
1011 <li><span>Twitter Feed</span></li>
1012 <li><span>Basic Data Table</span></li>
1013 <li><span>Testimonial Slider Widget</span></li>
1014 <li><span>Nav Menu Widget</span></li>
1015 <li><span>Advanced Accordion</span></li>
1016 <li><span>Image Accordion</span></li>
1017 <li><span>Charts</span></li>
1018 <li><span>One Page Navigation / Scroll Widget</span></li>
1019 <li><span>Tabs Widget</span></li>
1020 <li><span>Promo Box Widget</span></li>
1021 <li><span>Flip Box Widget</span></li>
1022 <li><span>Flip Carousel</span></li>
1023 <li><span>Before After Slider Widget</span></li>
1024 <li><span>Content Ticker Widget</span></li>
1025 <li><span>MailChimp Widget</span></li>
1026 <li><span>Image Hotspot Widget</span></li>
1027 <li><span>Team Member Widget</span></li>
1028 <li><span>Button Widget</span></li>
1029 <li><span>Dual Button Widget</span></li>
1030 <li><span>Price List Widget</span></li>
1031 <li><span>Business Hours Widget</span></li>
1032 <li><span>Sharing Buttons Widget</span></li>
1033 <li><span>Progress Bar Widget</span></li>
1034 <li><span>Countdown Timer Widget</span></li>
1035 <li><span>Content Toggle Widget</span></li>
1036 <li><span>Pricing Table Widget</span></li>
1037 <li><span>Advanced Text Widget</span></li>
1038 <li><span>Search Widget (Ajax)</span></li>
1039 <li><span>Video Playlist Widget</span></li>
1040 <li><span>Unfold Widget</span></li>
1041 <li><span>Circle Menu Widget</span></li>
1042 <li><span>Password Protected Content Widget</span></li>
1043 <li><span>Free Premade Widget Templates</span></li>
1044 <li><span>Popup Builder</span></li>
1045 <li><span>9 Premade Popup Templates</span></li>
1046 <li><span>Particle Effects</span></li>
1047 <li><span>Parallax Effect</span></li>
1048 <li><span>Sticky Section</span></li>
1049 <li><span>Free Templates Kit Library</span></li>
1050 <li><span>Theme Builder</span></li>
1051 <li><span>WooCommerce Shop Builder </span></li>
1052 <li><span>Elementor Pro Not Required</span></li>
1053 </ul>
1054 </div>
1055
1056 <div class="wpr-pro-widgets">
1057 <header>
1058 <span class="dashicons dashicons-star-filled"></span>
1059 <h3><?php echo esc_html__( 'Pro Version', 'wpr-addons' ); ?></h3>
1060 <span><?php echo esc_html__( 'Advanced Functionality', 'wpr-addons' ); ?></span>
1061 </header>
1062 <ul>
1063 <li><span>Priority Support</span></li>
1064 <li><span>Advanced Mega Menu</span>
1065 <ul>
1066 <li>Load SubMenu Items with Ajax</li>
1067 <li>Add Icons and Badges to Menu Items</li>
1068 <li>Set Submenu width to Automatically Fit to Section width</li>
1069 <li>Display Mobile Menu sub items as Mega Item or WordPress Default Sub Item</li>
1070 <li>Vertical Mega Menu Layout</li>
1071 <li>Mobile Menu Off-Canvas Layout</li>
1072 <li>Mobile Menu Display Conditions</li>
1073 <li>SubMenu Width option</li>
1074 <li>Advanced Link Hover Effects: Slide, Grow, Drop</li>
1075 <li>SubMenu Entrance Advanced Effects</li>
1076 <li>Mobile Menu Button Custom Text option</li>
1077 </ul>
1078 </li>
1079 <li><span>Advanced Post Grid/Slider/Carousel Widget</span>
1080 <ul>
1081 <li>Grid Columns 1,2,3,4,5,6</li>
1082 <li>Custom Post Types Support (Expert)</li>
1083 <li>Secondary Featured Image on Hover</li>
1084 <li>Masonry Layout</li>
1085 <li>List Layout Zig-zag</li>
1086 <li>Posts Slider Columns (Carousel) 1,2,3,4,5,6</li>
1087 <li>Related Posts Query, Current Page Query, Random Posts Query</li>
1088 <li>Infinite Scrolling Pagination</li>
1089 <li>Post Slider Autoplay options</li>
1090 <li>Post Slider Advanced Navigation Positioning</li>
1091 <li>Post Slider Advanced Pagination Positioning</li>
1092 <li>Advanced Post Likes</li>
1093 <li>Advanced Post Sharing</li>
1094 <li>Custom Fields Support</li>
1095 <li>Advanced Grid Loading Animations (Fade in & Slide Up)</li>
1096 <li>Unlimited Grid Elements Positioning</li>
1097 <li>Unlimited Image Overlay Animations</li>
1098 <li>Image overlay GIF upload option</li>
1099 <li>Image Overlay Blend Mode</li>
1100 <li>Image Effects: Zoom, Grayscale, Blur</li>
1101 <li>Lightbox Thumbnail Gallery, Lightbox Image Sharing Button</li>
1102 <li>Ability to Select Default Active Grid Filter</li>
1103 <li>Grid Category Filter Deeplinking</li>
1104 <li>Grid Category Filter Icons select</li>
1105 <li>Grid Category Filter Count</li>
1106 <li>Grid Item Even/Odd Background Color</li>
1107 <li>Title, Category, Read More Advanced Link Hover Animations</li>
1108 <li>Display Scheduled Posts</li>
1109 <li>Lazy Loading</li>
1110 <li>Open Links in New Tab</li>
1111 <li>Posts Order</li>
1112 <li>Trim Title & Excerpt By Letter Count</li>
1113 </ul>
1114 </li>
1115 <li><span>Advanced Woo Grid/Slider/Carousel Widget</span>
1116 <ul>
1117 <li>Grid Columns 1,2,3,4,5,6</li>
1118 <li>Masonry Layout</li>
1119 <li>Products Slider Columns (Carousel) 1,2,3,4,5,6</li>
1120 <li>Current Page Query, Random Products Query</li>
1121 <li>Infinite Scrolling Pagination</li>
1122 <li>Products Slider Autoplay options</li>
1123 <li>Products Slider Advanced Navigation Positioning</li>
1124 <li>Products Slider Advanced Pagination Positioning</li>
1125 <li>Advanced Products Likes</li>
1126 <li>Advanced Products Sharing</li>
1127 <li>Advanced Grid Loading Animations (Fade in & Slide Up)</li>
1128 <li>Unlimited Grid Elements Positioning</li>
1129 <li>Unlimited Image Overlay Animations</li>
1130 <li>Image overlay GIF upload option</li>
1131 <li>Image Overlay Blend Mode</li>
1132 <li>Image Effects: Zoom, Grayscale, Blur</li>
1133 <li>Lightbox Thumbnail Gallery, Lightbox Image Sharing Button</li>
1134 <li>Ability to Select Default Active Grid Filter</li>
1135 <li>Grid Category Filter Deeplinking</li>
1136 <li>Grid Category Filter Icons select</li>
1137 <li>Grid Category Filter Count</li>
1138 <li>Grid Item Even/Odd Background Color</li>
1139 <li>Title, Category, Read More Advanced Link Hover Animation</li>
1140 <li>Open Links in New Tab</li>
1141 </ul>
1142 </li>
1143 <li><span>Advanced Image Grid/Slider/Carousel Widget</span>
1144 <ul>
1145 <li>Grid Columns 1,2,3,4,5,6,7,8</li>
1146 <li>Masonry Layout</li>
1147 <li>Random Images Query</li>
1148 <li>Image Slider Columns (Carousel) 1,2,3,4,5,6,7,8</li>
1149 <li>Infinite Scrolling Pagination</li>
1150 <li>Image Slider Autoplay options</li>
1151 <li>Image Slider Advanced Navigation Positioning</li>
1152 <li>Image Slider Advanced Pagination Positioning</li>
1153 <li>Advanced Image Likes</li>
1154 <li>Advanced Image Sharing</li>
1155 <li>Advanced Grid Loading Animations (Fade in & Slide Up)</li>
1156 <li>Unlimited Grid Elements Positioning</li>
1157 <li>Unlimited Image Overlay Animations</li>
1158 <li>Image overlay GIF upload option</li>
1159 <li>Image Overlay Blend Mode</li>
1160 <li>Image Effects: Zoom, Grayscale, Blur</li>
1161 <li>Lightbox Thumbnail Gallery, Lightbox Image Sharing Button</li>
1162 <li>Ability to Select Default Active Grid Filter</li>
1163 <li>Grid Category Filter Deeplinking</li>
1164 <li>Grid Category Filter Icons select</li>
1165 <li>Grid Category Filter Count</li>
1166 <li>Grid Item Even/Odd Background Color</li>
1167 <li>Title & Category Advanced Link Hover Animations</li>
1168 </ul>
1169 </li>
1170 <li><span>Advanced Magazine Grid/Slider Widget</span>
1171 <ul>
1172 <li>Random Posts Query</li>
1173 <li>Custom Post Types Support (Expert)</li>
1174 <li>+6 Magazine Grid Layouts</li>
1175 <li>Magazine Grid Slider</li>
1176 <li>Magazine Grid Slider Autoplay options</li>
1177 <li>Magazine Grid Slider Advanced Navigation Positioning</li>
1178 <li>Magazine Grid Slider Advanced Pagination Positioning</li>
1179 <li>Advanced Post Likes</li>
1180 <li>Advanced Post Sharing</li>
1181 <li>Custom Fields Support</li>
1182 <li>Unlimited Grid Elements Positioning</li>
1183 <li>Unlimited Image Overlay Animations</li>
1184 <li>Image overlay GIF upload option</li>
1185 <li>Title, Category, Read More Advanced Link Hover Animations</li>
1186 <li>Open Links in New Tab</li>
1187 <li>Posts Order</li>
1188 <li>Trim Title & Excerpt By Letter Count</li>
1189 </ul>
1190 </li>
1191 <li><span>Advanced Timeline Widget</span>
1192 <ul>
1193 <li>Add Unlimited Custom Timeline Items</li>
1194 <li>Custom Post Types Support (Expert)</li>
1195 <li>Advanced Pagination - Load More Button or Infinite Scroll options</li>
1196 <li>Unlimited Slides to Show option</li>
1197 <li>Carousel Autoplay and Autoplay Speed</li>
1198 <li>Unlimited Posts Per Page option</li>
1199 <li>Advanced Entrance Animation Options</li>
1200 </ul>
1201 </li>
1202 <li><span>Advanced Slider Widget</span>
1203 <ul>
1204 <li>Add Unlimited Slides</li>
1205 <li>Vertical Slider</li>
1206 <li>Elementor Templates Slider option</li>
1207 <li>Scroll to Section Button</li>
1208 <li>Ken Burn Effect</li>
1209 <li>Columns (Carousel) 1,2,3,4,5,6</li>
1210 <li>Unlimited Slides to Scroll option</li>
1211 <li>Autoplay options</li>
1212 <li>Advanced Navigation Positioning</li>
1213 <li>Advanced Pagination Positioning</li>
1214 </ul>
1215 </li>
1216 <li><span>Advanced Form Builder Widget</span>
1217 <ul>
1218 <li>Unlimited number of fields</li>
1219 <li>Submission action</li>
1220 <li>Mailchimp action</li>
1221 <li>Webhook action</li>
1222 </ul>
1223 </li>
1224 <li><span>Advanced Offcanvas Menu</span>
1225 <ul>
1226 <li>Advanced Positioning</li>
1227 <li>Advanced Entrance Animations</li>
1228 <li>Custom Width & Height</li>
1229 <li>Open Offcanvas by Default</li>
1230 <li>Trigger Button Icon Select</li>
1231 <li>Close Icon Positioning</li>
1232 </ul>
1233 </li>
1234 <li><span>Advanced Instagram Feed</span>
1235 <ul>
1236 <li>Unlimited Number of Posts</li>
1237 <li>Unlimited Number of Slides</li>
1238 <li>Trim Title & Caption By Letter Count</li>
1239 <li>Advanced Grid Elements Positioning</li>
1240 <li>Advanced Post Sharing</li>
1241 <li>Unlimited Image Overlay Animations</li>
1242 <li>Lightbox Thumbnail Gallery, Lightbox Image Sharing Button</li>
1243 </ul>
1244 </li>
1245 <li><span>Advanced Twitter Feed</span>
1246 <ul>
1247 <li>Unlimited Number of Profiles</li>
1248 <li>Unlimited Number of Posts</li>
1249 </ul>
1250 </li>
1251 <li><span>Advanced Data Table Widget</span>
1252 <ul>
1253 <li>Import Table data from CSV file upload or URL</li>
1254 <li>Show/Hide Export Table data buttons</li>
1255 <li>Enable Live Search for Tables</li>
1256 <li>Enable Table Pagination. Divide Table items by pages</li>
1257 <li>Enable Table Sorting option</li>
1258 <li>Enable Tooltips on each cell</li>
1259 </ul>
1260 </li>
1261 <li><span>Advanced Testimonial Slider Widget</span>
1262 <ul>
1263 <li>Add Unlimited Testimonials</li>
1264 <li>Columns (Carousel) 1,2,3,4,5,6</li>
1265 <li>Advanced Social Media Icon options</li>
1266 <li>Advanced Rating Styling options</li>
1267 <li>Unlimited Slides to Scroll option</li>
1268 <li>Autoplay options</li>
1269 <li>Advanced Navigation Positioning</li>
1270 <li>Advanced Pagination Positioning</li>
1271 </ul>
1272 </li>
1273 <li><span>Advanced Nav Menu Widget</span>
1274 <ul>
1275 <li>Vertical Layout</li>
1276 <li>Advanced Link Hover Effects: Slide, Grow, Drop</li>
1277 <li>SubMenu Entrance Slide Effect</li>
1278 <li>SubMenu Width option</li>
1279 <li>Advanced Display Conditions</li>
1280 <li>Mobile Menu Display Custom Conditions</li>
1281 <li>Mobile Menu Button Custom Text option</li>
1282 </ul>
1283 </li>
1284 <li><span>Advanced Accordion</span>
1285 <ul>
1286 <li>Load Elementor Template in Accordion Panels</li>
1287 <li>Enable Accordion content Live Search</li>
1288 </ul>
1289 </li>
1290 <li><span>Advanced Image Accordion</span>
1291 <ul>
1292 <li>Add Unlimited Images</li>
1293 <li>Vertical Accordion Layout</li>
1294 <li>Trigger Images on Click</li>
1295 <li>Skew Images by default</li>
1296 <li>Enable Image Lightbox</li>
1297 <li>Advanced Elements Positioning</li>
1298 <li>Image Effects: Zoom, Grayscale, Blur</li>
1299 <li>Image Overlay Blend Mode</li>
1300 </ul>
1301 </li>
1302 <li><span>Advanced Charts</span>
1303 <ul>
1304 <li>Add Unlimited Data Labels</li>
1305 <li>Add Unlimited Chart Items</li>
1306 <li>Import published Google Sheets</li>
1307 <li>Import CSV File from URL</li>
1308 <li>Upload CSV File</li>
1309 </ul>
1310 </li>
1311 <li><span>Advanced One Page Navigation / Scroll Widget</span>
1312 <ul>
1313 <li>Highlight Active Nav Icon</li>
1314 <li>Nav Icon Custom Color</li>
1315 <li>Nav Icon Advanced Tooltip</li>
1316 <li>Scrolling Animation Speed</li>
1317 <li>Navigation Full-height (Sidebar) option</li>
1318 </ul>
1319 </li>
1320 <li><span>Advanced Tabs Widget</span>
1321 <ul>
1322 <li>Add Unlimited Tabs</li>
1323 <li>Tab Content Type - Elementor Template</li>
1324 <li>Custom Tab Colors</li>
1325 <li>Tab Label Align</li>
1326 <li>Swich Tabs on Hover option</li>
1327 <li>Set Active Tab by Default</li>
1328 <li>Advanced Tab Content Animations</li>
1329 <li>Tabs Autoplay option</li>
1330 </ul>
1331 </li>
1332 <li><span>Advanced Promo Box Widget</span>
1333 <ul>
1334 <li>Classic Layout - Image & Content Side to Side with Image Width & Position options</li>
1335 <li>Advanced Image Hover Animations</li>
1336 <li>Advanced Content Hover Animations - Icon, Title, Description, Button separately</li>
1337 <li>Advanced Badge (Ribon) options</li>
1338 </ul>
1339 </li>
1340 <li><span>Advanced Flip Box Widget</span>
1341 <ul>
1342 <li>Flip on Button Click</li>
1343 <li>Advanced Flipping Animations</li>
1344 </ul>
1345 </li>
1346 <li><span>Advanced Flip Carousel Widget</span>
1347 <ul>
1348 <li>Add Unlimited Slides</li>
1349 <li>Slider Autoplay options</li>
1350 </ul>
1351 </li>
1352 <li><span>Advanced Before After Slider Widget</span>
1353 <ul>
1354 <li>Vertical Image Comparison</li>
1355 <li>Move Images on Mouse Move (Hover)</li>
1356 <li>Set Default Divider Position (What part of After Image to show)</li>
1357 <li>Show Labels on Image Hover</li>
1358 </ul>
1359 </li>
1360 <li><span>Advanced Content Ticker Widget</span>
1361 <ul>
1362 <li>Add Custom Ticker Items (Instead of loading Dynamically)</li>
1363 <li>Custom Post Types Support (Expert)</li>
1364 <li>Query Shop Products, On Sale products and Featured products (Instead of loading Dynamically)</li>
1365 <li>Marquee Animation - a Smooth Animation with Direction option</li>
1366 <li>Slider Animation options - Typing, Fade & Vertical Slide</li>
1367 <li>Heading Icon Type - Animated Circle</li>
1368 </ul>
1369 </li>
1370 <li><span>Advanced MailChimp Widget</span>
1371 <ul>
1372 <li>Add Extra Fields - Name & Last Name</li>
1373 </ul>
1374 </li>
1375 <li><span>Advanced Image Hotspot Widget</span>
1376 <ul>
1377 <li>Add Unlimited Hotspots</li>
1378 <li>Show Tooltips on Click or Hover</li>
1379 <li>Advanced Tooltip Positioning</li>
1380 </ul>
1381 </li>
1382 <li><span>Advanced Team Member Widget</span>
1383 <ul>
1384 <li>Advanced Layout options - Move Elements over Image (Title, Job, Social Icons, etc...)</li>
1385 <li>Advanced Image Overlay Hover Animations</li>
1386 </ul>
1387 </li>
1388 <li><span>Advanced Button Widget</span>
1389 <ul>
1390 <li>Advanced Button Styles</li>
1391 <li>Advanced Hover Animations - Change Text on Hover</li>
1392 <li>Advanced Tooltip options</li>
1393 </ul>
1394 </li>
1395 <li><span>Advanced Dual Button Widget</span>
1396 <ul>
1397 <li>Middle Badge Text & Icon options</li>
1398 <li>Advanced Tooltip options</li>
1399 </ul>
1400 </li>
1401 <li><span>Advanced Price List Widget</span>
1402 <ul>
1403 <li>Add Images to Menu Items</li>
1404 <li>Add Custom Links to Menu Items</li>
1405 <li>Advanced Layout Options</li>
1406 </ul>
1407 </li>
1408 <li><span>Advanced Business Hours Widget</span>
1409 <ul>
1410 <li>List Item Custom Icon options</li>
1411 <li>List Item Custom Text & Background Color options</li>
1412 <li>List Item Even/Odd Background Color option</li>
1413 </ul>
1414 </li>
1415 <li><span>Advanced Sharing Buttons Widget</span>
1416 <ul>
1417 <li>Custom Social Media Label</li>
1418 <li>Custom Social Media Colors</li>
1419 <li>Layout Columns 1,2,3,4,5,6</li>
1420 <li>Show Hide Icon</li>
1421 <li>Show Hide Label</li>
1422 <li>Advanced Styling options</li>
1423 </ul>
1424 </li>
1425 <li><span>Advanced Progress Bar Widget</span>
1426 <ul>
1427 <li>Vertical Progress Bar</li>
1428 <li>Stripe Animation option</li>
1429 <li>Advanced Animation Timing options</li>
1430 </ul>
1431 </li>
1432 <li><span>Advanced Countdown Timer Widget</span>
1433 <ul>
1434 <li>Evergreen Timer - User Specific Timer</li>
1435 <li>An evergreen countdown timer is used to display the amount of time a particular user has to avail the offer. This is a great way to create a feeling of scarcity, urgency and exclusivity</li>
1436 </ul>
1437 </li>
1438 <li><span>Advanced Content Toggle Widget</span>
1439 <ul>
1440 <li>Multi Label Switcher (ex: Monthly, Annually, Lifetime)</li>
1441 <li>Switcher Label Inside Position</li>
1442 </ul>
1443 </li>
1444 <li><span>Advanced Pricing Table Widget</span>
1445 <ul>
1446 <li>List Item Advanced Tooltip</li>
1447 <li>List Item Even/Odd Background Color</li>
1448 </ul>
1449 </li>
1450 <li><span>Advanced Text Widget</span>
1451 <ul>
1452 <li>Clipped Text Effect</li>
1453 <li>Examples - Clipped effects</li>
1454 </ul>
1455 </li>
1456 <li><span>Advanced Search Widget (Ajax)</span>
1457 <ul>
1458 <li>More than 2 Results in Ajax Search</li>
1459 <li>Custom Search Query - Only Posts, Pages or Custom Post Types (Expert)</li>
1460 <li>Ajax Search Results Pagination (Load More)</li>
1461 <li>Enable Taxonomy Filter (Pro)</li>
1462 </ul>
1463 </li>
1464 <li><span>Advanced Video Playlist Widget</span>
1465 <ul>
1466 <li>Dynamic YouTube Playlist Query</li>
1467 <li>Unlimited Custom Video Items</li>
1468 <li>Custom Video Titles for Custom Items</li>
1469 </ul>
1470 </li>
1471 <li><span>Advanced Unfold Widget</span>
1472 <ul>
1473 <li>Content Type: Elementor Template - unfold any template</li>
1474 </ul>
1475 </li>
1476 <li><span>Advanced Circle Menu Widget</span>
1477 <ul>
1478 <li>Unlimited Menu Items</li>
1479 <li>All Menu Directions</li>
1480 <li>Click Trigger option</li>
1481 <li>Hide Titles option</li>
1482 <li>Advanced Transition Effects</li>
1483 </ul>
1484 </li>
1485 <li><span>Advanced Password Protected Content Widget</span>
1486 <ul>
1487 <li>Content Type: Elementor Template - protect any template behind a password</li>
1488 </ul>
1489 </li>
1490 <li><span>60+ PRO Premade Widget Templates</span>
1491 <ul>
1492 <li>Post Grid Premade Templates</li>
1493 <li>Post Carousel Premade Templates</li>
1494 <li>Post Slider Premade templates</li>
1495 <li>Product Grid Premade Templates</li>
1496 <li>Product Carousel Premade Templates</li>
1497 <li>Product Slider Premade templates</li>
1498 <li>Image Grid Premade Templates</li>
1499 <li>Image Carousel Premade Templates</li>
1500 <li>Image Slider Premade templates</li>
1501 <li>Magazine Grid Premade Templates</li>
1502 <li>Advanced Slider Premade Templates</li>
1503 <li>Testimonial Slider Premade Templates</li>
1504 <li>Advanced Nav Menu Premade Templates</li>
1505 <li>OnePage Navigation Premade Templates</li>
1506 <li>Tabs Premade Templates</li>
1507 <li>Promo Box Premade Templates</li>
1508 <li>Flip Box Premade Templates</li>
1509 <li>Before After Slider Premade Templates</li>
1510 <li>Content Ticker Premade Templates</li>
1511 <li>Mail Chimp Premade Templates</li>
1512 <li>Image Hotspot Premade Templates</li>
1513 <li>Team Member Premade Templates</li>
1514 <li>Button Premade Templates</li>
1515 <li>Dual Button Premade Templates</li>
1516 <li>Price List Premade Templates</li>
1517 <li>Business Hours Premade Templates</li>
1518 <li>Sharing Buttons Premade Templates</li>
1519 <li>Progress Bar Premade Templates</li>
1520 <li>Countdown Timer Premade Templates</li>
1521 <li>Content Toggle Premade Templates</li>
1522 <li>Pricing Table Premade Templates</li>
1523 <li>Advanced Text Premade Templates</li>
1524 <li>Search Premade Templates</li>
1525 </ul>
1526 </li>
1527 <li><span>Advanced Popup Builder</span>
1528 <ul>
1529 <li>Build any type of popups: Email subscriptions, Promotion Sales, Countdown, Announcements, Yes/No popups, Welcome Mat, Cookie contest, GDPR notice, Age Restriction gates and others</li>
1530 <li>Trigger Popup: On Page Load, on Page scroll, after user Exit intent, by clicking on specific element or button, after user inactivity, after Specific date, on Scroll to specific element</li>
1531 <li>Trigger popup on specific URL Query parameters</li>
1532 <li>Layout styles: Full Screen, Slide in, Modal, Top or Bottom Bar</li>
1533 <li>Customize "Show Again Delay" option after popup being closed</li>
1534 <li>Show Popup for Specific User Roles & Devices</li>
1535 <li>Show Popups anywhere you want: Entire site, only for the Front page, only for the Single post or Single page, on Search page, 404 page or any other pages</li>
1536 <li>Use prebuilt Popups from Library</li>
1537 <li>Use any Elementor widget you like</li>
1538 </ul>
1539 </li>
1540 <li><span>17 Premade Popup Templates</span>
1541 <ul>
1542 <li>Discount Popup Templates</li>
1543 <li>Subscription Popup Templates</li>
1544 <li>Cookie & GDPR Popup Templates</li>
1545 <li>Yes/No Popup Templates</li>
1546 </ul>
1547 </li>
1548 <li><span>Advanced Particles</span>
1549 <ul>
1550 <li>Pro Effects: Particles, Nasa, Snow</li>
1551 <li>Control Particle Shapes: Circle, Edge, Triangle, Polygon, Star</li>
1552 <li>Control Particles Quantity</li>
1553 <li>Control Particles Size</li>
1554 <li>Control Animation Speed</li>
1555 <li>Control Animation Color</li>
1556 </ul>
1557 </li>
1558 <li><span>Advanced Parallax Effext</span>
1559 <ul>
1560 <li>Advanced Scrolling Effects: Opacity, Scale opacity, Scroll opacity</li>
1561 <li>Multilayer Parallax</li>
1562 </ul>
1563 </li>
1564 <li><span class="wpr-advanced-sticky-options">Advanced Sticky Section - View Demo</span>
1565 <ul>
1566 <li>Replace Header Section with a new Section on Scroll</li>
1567 <li>Change Section Height, Background and Text/Link Colors and Scale logo with transitions</li>
1568 <li>Hide Section when Scrolling Down and only show when Scrolling Up</li>
1569 <li>Add Borders, Shadows and Animations on Scroll</li>
1570 </ul>
1571 </li>
1572 <li><span class="wpr-premium-template-kit-lib">Premium Template Kit Library - View Demo</span>
1573 <ul>
1574 <li>Access to All Premium Template Kit Library. Ready to use Sites which can be imported in one click in a few seconds.</li>
1575 </ul>
1576 </li>
1577 <li><span>Advanced Theme Builder</span>
1578 <ul>
1579 <li>Advanced Conditions: create multiple Theme Builder templates and set custom conditions. You choose where and how your Header, Footer or other templates appear.</li>
1580 <li>Premium premade Template Kits.</li>
1581 <li>Advanced Theme Builder widgets: Archive Title, Single Post Navigation, Post Comments, Author Box, etc...</li>
1582 <li>Custom Post Type Support (Expert)</li>
1583 </ul>
1584 </li>
1585 <li><span>Advanced WooCommerce Shop Builder</span>
1586 <ul>
1587 <li>My account Widget - Customize any part of my account page.</li>
1588 <li>Product Filter Widget - Filter Products by Price, Rating, Category, Tags. Also Woocommerce native search is supported.</li>
1589 <li>Sort Woocommerce Grid by: Default, Latest, Popularity, Average Rating, Price Low to High, Price Hight to Low, Title A to Z, Title Z to A.</li>
1590 <li>Category Widget - Display Woocommerce categories with advanced Grid.</li>
1591 <li>Display Upsell, Cross Sell, Featured and Onsale Products.</li>
1592 <li>Controll how many products to display on the Shop page, Category Page, and Tag page.</li>
1593 <li>Ability to customize Category & Tag page in theme builder.</li>
1594 <li>Advanced Woo Builder Conditions: Create multiple Woo Builder templates and set custom conditions.</li>
1595 <li>Premium premade Woocommerce Template Kits.</li>
1596 <li>Advanced Mini Cart widget options like display Mini cart as Dropdown or as Sidebar.</li>
1597 <li>Add to cart popup effect. Displays a small popup banner on left/right corner of the screen with the text "XXX item was added to Cart - View Cart".</li>
1598 <li>Vertical single product tabs layout.</li>
1599 <li>Product Breadcrumbs - Display Product, Post, Page, Categories addresses to make navigation much easier.</li>
1600 <li>Custom Post Type Support (Expert)</li>
1601 </ul>
1602 </li>
1603 <li><span>Elementor Pro Not Required</span>
1604 <ul>
1605 <li>Templates Kit, Widgets and any other setting and Extension Doesn't require Elementor PRO</li>
1606 </ul>
1607 </li>
1608 </ul>
1609 </div>
1610
1611 <div class="wpr-expert-widgets">
1612 <header>
1613 <span class="dashicons dashicons-star-filled"></span>
1614 <h3><?php echo esc_html__( 'Expert Version', 'wpr-addons' ); ?></h3>
1615 <span><?php echo esc_html__( 'Top-tier Functionality', 'wpr-addons' ); ?></span>
1616 </header>
1617 <ul>
1618 <li><span>Dedicated Support</span></li>
1619 <li><span>Free and Pro Functionality Included</span></li>
1620 <li><span><span style="color: yellow;">*New</span> - Advanced Filters - <a href="https://demosites.royal-elementor-addons.com/woo-advanced-filters-preview/preview-links/?ref=rea-plugin-backend-freevsprotab-filters">View Demos</a></span></li>
1621 <li><span>Extended Custom Field Options </span></li>
1622 <li><span>Ability to build Dynamic Websites</span></li>
1623 <li><span>Dynamic Tags for All Widgets</span></li>
1624 <li><span>Extended Custom Field Options</span></li>
1625 <li><span>Custom Post Type Generator</span></li>
1626 <li><span>Custom Taxonomy Generator</span></li>
1627 <li><span>WooCommerce Wishlist Widget</span></li>
1628 <li><span>WooCommerce Compare Widget</span></li>
1629 <li><span>Category Grid Widget</span></li>
1630 <li><span>White Label Branding</span></li>
1631 <li><span>Elementor Pro Not Required</span></li>
1632 <li><span>Custom Field Widget</span></li>
1633 <li><span>Advanced Filters Widget</span></li>
1634 <li>And More is Comming Soon...</li>
1635 </ul>
1636 </div>
1637 </div>
1638
1639 <div class="wpr-feature-not-found">
1640 <img src="<?php echo esc_url(WPR_ADDONS_ASSETS_URL .'img/not-found.png'); ?>">
1641 <h1><?php esc_html_e('No Search Results Found.', 'wpr-addons'); ?></h1>
1642 <p><?php esc_html_e('Cant find a Feature you are looking for?', 'wpr-addons'); ?></p>
1643 <a href="https://royaladdons.frill.co/b/6m4d5qm4/feature-ideas" target="_blank"><?php esc_html_e('Request a New Feature', 'wpr-addons'); ?></a>
1644 </div>
1645
1646 <a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-freevsprotab-pro#purchasepro" target="_blank" class="button last wpr-free-pro-upgrade">
1647 <span><?php echo esc_html__( 'Get Premium', 'wpr-addons' ); ?></span>
1648 <span class="dashicons dashicons-smiley"></span>
1649 </a>
1650
1651 </div>
1652
1653 <?php elseif ( $active_tab == 'wpr_tab_extensions' ) :
1654
1655 // Extensions
1656 settings_fields( 'wpr-extension-settings' );
1657 do_settings_sections( 'wpr-extension-settings' );
1658
1659 global $new_allowed_options;
1660
1661 // array of option names
1662 $option_names = $new_allowed_options[ 'wpr-extension-settings' ];
1663
1664 // Sticky Section - Separate Container
1665 echo '<div class="wpr-elements wpr-elements-sticky">';
1666 $sticky_option = 'wpr-sticky-section';
1667 $sticky_title = ucwords( preg_replace( '/-/i', ' ', preg_replace('/wpr-||-toggle/i', '', $sticky_option ) ));
1668 echo '<div class="wpr-element">';
1669 echo '<div class="wpr-element-info">';
1670 echo '<h3>'. esc_html($sticky_title) .'</h3>';
1671 echo '<input type="checkbox" name="'. esc_attr($sticky_option) .'" id="'. esc_attr($sticky_option) .'" '. checked( get_option(''. $sticky_option .'', 'on'), 'on', false ) .'>';
1672 echo '<label for="'. esc_attr($sticky_option) .'"></label>';
1673 echo '<br><span>Tip: Edit any Section > Navigate to Advanced tab</span>';
1674 echo '<a href="https://www.youtube.com/watch?v=at0CPKtklF0&t=375s" target="_blank">Watch Video Tutorial</a>';
1675 if ( (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code()) && !wpr_fs()->is_plan( 'expert') ) {
1676 echo '<h4 class="wpr-sticky-advanced-demos-title">Advanced Sticky Section (Pro)</h4>';
1677 echo '<p class="wpr-sticky-advanced-demos">';
1678 echo '<span>View Demos: </span>';
1679 echo '<a href="https://demosites.royal-elementor-addons.com/construction-v3/?ref=rea-plugin-backend-elements-advanced-stiky-preview" target="_blank">Demo 1, </a>';
1680 echo '<a href="https://demosites.royal-elementor-addons.com/personal-blog-v1/?ref=rea-plugin-backend-elements-advanced-stiky-preview" target="_blank">Demo 2, </a>';
1681 echo '<a href="https://demosites.royal-elementor-addons.com/digital-marketing-agency-v2/?ref=rea-plugin-backend-elements-advanced-stiky-preview" target="_blank">Demo 3, </a>';
1682 echo '<a href="https://demosites.royal-elementor-addons.com/digital-marketing-agency-v1/?ref=rea-plugin-backend-elements-advanced-stiky-preview" target="_blank">Demo 4, </a>';
1683 echo '<a href="https://demosites.royal-elementor-addons.com/fashion-v2/?ref=rea-plugin-backend-elements-advanced-stiky-preview" target="_blank">Demo 5</a>';
1684 echo '</p>';
1685 echo '<a class="wpr-sticky-video-tutorial wpr-inline-link" href="https://www.youtube.com/watch?v=ORay3VWrWuc" target="_blank">Watch Video Tutorial</a>';
1686 echo '<a class="wpr-inline-link" href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-advanced-stiky-pro#purchasepro" target="_blank">Upgrade to Pro</a>';
1687 } else {
1688 echo '<h4 class="wpr-sticky-advanced-demos-title">Advanced Sticky Section</h4>';
1689 echo '<p class="wpr-sticky-advanced-demos">';
1690 echo '<span>View Demos: </span>';
1691 echo '<a href="https://demosites.royal-elementor-addons.com/construction-v3/?ref=rea-plugin-backend-elements-advanced-stiky-preview" target="_blank">Demo 1, </a>';
1692 echo '<a href="https://demosites.royal-elementor-addons.com/personal-blog-v1/?ref=rea-plugin-backend-elements-advanced-stiky-preview" target="_blank">Demo 2, </a>';
1693 echo '<a href="https://demosites.royal-elementor-addons.com/digital-marketing-agency-v2/?ref=rea-plugin-backend-elements-advanced-stiky-preview" target="_blank">Demo 3, </a>';
1694 echo '<a href="https://demosites.royal-elementor-addons.com/digital-marketing-agency-v1/?ref=rea-plugin-backend-elements-advanced-stiky-preview" target="_blank">Demo 4, </a>';
1695 echo '<a href="https://demosites.royal-elementor-addons.com/fashion-v2/?ref=rea-plugin-backend-elements-advanced-stiky-preview" target="_blank">Demo 5</a>';
1696 echo '</p>';
1697 echo '<a class="wpr-sticky-video-tutorial" href="https://www.youtube.com/watch?v=ORay3VWrWuc" target="_blank">Watch Video Tutorial</a>';
1698 }
1699 echo '</div>';
1700 echo '</div>';
1701 echo '</div>';
1702
1703 // Other Extensions Container
1704 echo '<div class="wpr-elements wpr-elements-extensions">';
1705
1706 foreach ($option_names as $option_name) {
1707 // Skip sticky section - already rendered above
1708 if ( 'wpr-sticky-section' === $option_name ) {
1709 continue;
1710 }
1711
1712 $option_title = ucwords( preg_replace( '/-/i', ' ', preg_replace('/wpr-||-toggle/i', '', $option_name ) ));
1713
1714 echo '<div class="wpr-element">';
1715 echo '<div class="wpr-element-info">';
1716 echo '<h3>'. esc_html($option_title) .'</h3>';
1717 echo '<input type="checkbox" name="'. esc_attr($option_name) .'" id="'. esc_attr($option_name) .'" '. checked( get_option(''. $option_name .'', 'on'), 'on', false ) .'>';
1718 echo '<label for="'. esc_attr($option_name) .'"></label>';
1719
1720 if ( 'wpr-parallax-background' === $option_name ) {
1721 echo '<br><span>Tip: Edit any Section > Navigate to Style tab</span>';
1722 echo '<a href="https://www.youtube.com/watch?v=DcDeQ__lJbw" target="_blank">Watch Video Tutorial</a>';
1723 } elseif ( 'wpr-parallax-multi-layer' === $option_name ) {
1724 echo '<br><span>Tip: Edit any Section > Navigate to Style tab</span>';
1725 echo '<a href="https://youtu.be/DcDeQ__lJbw?t=121" target="_blank">Watch Video Tutorial</a>';
1726 } elseif ( 'wpr-particles' === $option_name ) {
1727 echo '<br><span>Tip: Edit any Section > Navigate to Style tab</span>';
1728 echo '<a href="https://www.youtube.com/watch?v=8OdnaoFSj94" target="_blank">Watch Video Tutorial</a>';
1729 } elseif ( 'wpr-custom-css' === $option_name ) {
1730 echo '<br><span>Tip: Edit any Section > Navigate to Advanced tab</span>';
1731 } elseif ( 'wpr-display-conditions' === $option_name ) {
1732 echo '<br><span>Tip: Edit any Element > Navigate to Visibility tab</span>';
1733 } elseif ( 'wpr-column-slider' === $option_name ) {
1734 echo '<br><span>Tip: Edit any Section > Navigate to Advanced tab</span>';
1735 // echo '<a href="https://www.youtube.com" target="_blank">Watch Video Tutorial</a>';
1736 } elseif ( 'wpr-equal-height' === $option_name ) {
1737 echo '<br><span>Tip: Edit any Section > Navigate to Advanced tab</span>';
1738 // echo '<a href="https://www.youtube.com" target="_blank">Watch Video Tutorial</a>';
1739 }
1740
1741 // echo '<a href="https://royal-elementor-addons.com/elementor-particle-effects/?ref=rea-plugin-backend-extentions-prev">'. esc_html('View Extension Demo', 'wpr-addons') .'</a>';
1742 echo '</div>';
1743 echo '</div>';
1744 }
1745
1746 echo '</div>';
1747 ?>
1748
1749
1750
1751 <?php
1752
1753 elseif ( $active_tab == 'wpr_tab_white_label' ) :
1754
1755 if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->is_plan( 'expert' ) ) {
1756 do_action('wpr_white_label_tab_content');
1757 }
1758
1759 endif; ?>
1760
1761 <div class="wpr-settings-saved">
1762 <span><?php esc_html_e('Options Updated', 'wpr-addons'); ?></span>
1763 <span class="dashicons dashicons-yes"></span>
1764 </div>
1765 </form>
1766 </div>
1767
1768 </div>
1769
1770
1771 <?php
1772
1773 } // End wpr_addons_settings_page()
1774
1775 // // Add Pro Plugin Link Sub Menu item that will redirect to wp.org
1776 // function wpr_addons_add_pro_plugin_direct_link_page() {
1777 // add_submenu_page( 'wpr-addons', 'Pro Plugin Direct Link', 'Pro Plugin Direct Link', 'manage_options', 'wpr-pro-plugin-direct-link', 'wpr_addons_pro_plugin_direct_link', 99 );
1778 // }
1779 // add_action( 'admin_menu', 'wpr_addons_add_pro_plugin_direct_link_page', 99 );
1780
1781 // function wpr_addons_pro_plugin_direct_link() {
1782 // define( 'FS__API_SCOPE', 'developer' );
1783 // define( 'FS__API_DEV_ID', 8416 );
1784 // define( 'FS__API_PUBLIC_KEY', 'pk_a0b21b234a7c9581a555b9ee9f28a' );
1785 // define( 'FS__API_SECRET_KEY', 'sk_HN%H:Qlyn]0(3R[IhfCYss3A9.]mO' );
1786
1787 // // Init SDK.
1788 // $api = new Freemius_Api_WordPress(FS__API_SCOPE, FS__API_DEV_ID, FS__API_PUBLIC_KEY, FS__API_SECRET_KEY);
1789
1790 // // Get all products.
1791 // $result = $api->Api('/plugins/8416/licenses/721741/tags/latest.json?format=json');
1792
1793 // var_dump($result);
1794 // }
1795
1796
1797
1798 // Add Support Sub Menu item that will redirect to wp.org
1799 function wpr_addons_add_support_menu() {
1800 add_submenu_page( 'wpr-addons', 'Support', 'Support', 'manage_options', 'wpr-support', 'wpr_addons_support_page', 99 );
1801 }
1802 add_action( 'admin_menu', 'wpr_addons_add_support_menu', 99 );
1803
1804 function wpr_addons_support_page() {}
1805
1806 function wpr_redirect_support_page() {
1807 ?>
1808 <script type="text/javascript">
1809 jQuery(document).ready( function($) {
1810 $( 'ul#adminmenu a[href*="page=wpr-support"]' ).attr('href', 'https://wordpress.org/support/plugin/royal-elementor-addons/').attr( 'target', '_blank' );
1811 });
1812 </script>
1813 <?php
1814 }
1815 add_action( 'admin_head', 'wpr_redirect_support_page' );
1816
1817
1818 // Add Upgrade Sub Menu item that will redirect to royal-elementor-addons.com
1819 function wpr_addons_add_upgrade_menu() {
1820 if ( defined('WPR_ADDONS_PRO_VERSION') && (!defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code()) ) return;
1821
1822 if ( defined('WPR_ADDONS_PRO_VERSION') && wpr_fs()->is_plan( 'expert' ) ) return;
1823
1824 if ( !defined('WPR_ADDONS_PRO_VERSION') || !wpr_fs()->can_use_premium_code() ) {
1825 $label = 'Upgrade';
1826 } else if ( wpr_fs()->is_plan( 'pro' ) ) {
1827 $label = 'Upgrade to Expert';
1828 }
1829
1830 $label = isset($label) ? $label : __('Upgrade', 'wpr-addons');
1831
1832 add_submenu_page( 'wpr-addons', $label, $label, 'manage_options', 'wpr-upgrade', 'wpr_addons_upgrade_page', 999 );
1833 }
1834 add_action( 'admin_menu', 'wpr_addons_add_upgrade_menu', 999999999999 );
1835
1836 function wpr_addons_upgrade_page() {}
1837
1838 function wpr_redirect_upgrade_page() {
1839 ?>
1840 <script type="text/javascript">
1841 jQuery(document).ready( function($) {
1842 let ref = 'Upgrade to Expert' == $( 'ul#adminmenu a[href*="page=wpr-upgrade"]' ).text() ? 'expert' : 'pro';
1843 $( 'ul#adminmenu a[href*="page=wpr-upgrade"]' ).attr('href', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-menu-upgrade-'+ ref +'#purchasepro').attr( 'target', '_blank' );
1844 $( 'ul#adminmenu a[href*="#purchasepro"]' ).css('color', 'greenyellow');
1845 });
1846 </script>
1847 <?php
1848 }
1849 add_action( 'admin_head', 'wpr_redirect_upgrade_page' );
1850
1851
1852 /**
1853 ** Search Query Results
1854 */
1855 function wpr_backend_widget_search_query_results() {
1856 // Freemius OptIn
1857 if ( ! ( wpr_fs()->is_registered() && wpr_fs()->is_tracking_allowed() || wpr_fs()->is_pending_activation() ) ) {
1858 return;
1859 }
1860
1861 if ( strpos($_SERVER['SERVER_NAME'],'instawp') || strpos($_SERVER['SERVER_NAME'],'tastewp') ) {
1862 return;
1863 }
1864
1865 $search_query = isset($_POST['search_query']) ? sanitize_text_field(wp_unslash($_POST['search_query'])) : '';
1866
1867 wp_remote_post( 'http://reastats.kinsta.cloud/wp-json/backend-widget-search/data', [
1868 'body' => [
1869 'search_query' => $search_query
1870 ]
1871 ] );
1872 }
1873
1874 function wpr_backend_freepro_search_query_results() {
1875 // Freemius OptIn
1876 if ( ! ( wpr_fs()->is_registered() && wpr_fs()->is_tracking_allowed() || wpr_fs()->is_pending_activation() ) ) {
1877 return;
1878 }
1879
1880 if ( strpos($_SERVER['SERVER_NAME'],'instawp') || strpos($_SERVER['SERVER_NAME'],'tastewp') ) {
1881 return;
1882 }
1883
1884 $search_query = isset($_POST['search_query']) ? sanitize_text_field(wp_unslash($_POST['search_query'])) : '';
1885
1886 wp_remote_post( 'http://reastats.kinsta.cloud/wp-json/backend-freepro-search/data', [
1887 'body' => [
1888 'search_query' => $search_query
1889 ]
1890 ] );
1891 }