PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.78
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.78
51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 51.1.46 51.1.47 51.1.49 All 37 releases
king-addons / includes / extensions / Maintenance_Mode / templates / view-page-builder.php

view-page-builder.php in King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder 51.1.78, at includes/extensions/Maintenance_Mode/templates/view-page-builder.php

279 lines 16.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Maintenance Mode page builder view.
4 *
5 * @package King_Addons
6 */
7
8 if (!defined('ABSPATH')) {
9 exit;
10 }
11
12 $template_source = $settings['template_source'] ?? 'built_in';
13 $template_id = $settings['template_id'] ?? 'minimal';
14 $page_id = (int) ($settings['page_id'] ?? 0);
15 $elementor_id = (int) ($settings['elementor_id'] ?? 0);
16 $mode = $settings['mode'] ?? 'coming_soon';
17 $pro_templates = $this->get_pro_templates();
18
19 if (!$is_pro && in_array($template_id, $pro_templates, true)) {
20 $template_id = 'minimal';
21 }
22
23 $pages = get_pages([
24 'sort_column' => 'post_title',
25 'sort_order' => 'ASC',
26 'post_status' => 'publish',
27 ]);
28
29 $elementor_templates = [];
30 if (class_exists('\\Elementor\\Plugin')) {
31 $elementor_templates = get_posts([
32 'post_type' => 'elementor_library',
33 'post_status' => 'publish',
34 'posts_per_page' => 50,
35 'orderby' => 'title',
36 'order' => 'ASC',
37 ]);
38 }
39
40 $preview_url = wp_nonce_url(add_query_arg([
41 'kng_maintenance_preview' => 1,
42 ], home_url('/')), 'kng_maintenance_preview', '_kng_preview_nonce');
43 ?>
44
45 <form method="post" action="options.php">
46 <?php settings_fields('kng_maintenance_settings_group'); ?>
47
48 <div class="ka-card">
49 <div class="ka-card-header">
50 <span class="dashicons dashicons-layout purple"></span>
51 <h2><?php esc_html_e('Page Source', 'king-addons'); ?></h2>
52 </div>
53 <div class="ka-card-body kng-maintenance-source-grid">
54 <label class="kng-maintenance-radio">
55 <input type="radio" name="kng_maintenance_settings[template_source]" value="built_in" <?php checked($template_source, 'built_in'); ?>>
56 <span><?php esc_html_e('Built-in Templates', 'king-addons'); ?></span>
57 </label>
58 <label class="kng-maintenance-radio">
59 <input type="radio" name="kng_maintenance_settings[template_source]" value="page" <?php checked($template_source, 'page'); ?>>
60 <span><?php esc_html_e('WordPress Page', 'king-addons'); ?></span>
61 </label>
62 <label class="kng-maintenance-radio <?php echo empty($elementor_templates) ? 'is-disabled' : ''; ?>">
63 <input type="radio" name="kng_maintenance_settings[template_source]" value="elementor" <?php checked($template_source, 'elementor'); ?> <?php disabled(empty($elementor_templates)); ?>>
64 <span><?php esc_html_e('Elementor Template', 'king-addons'); ?></span>
65 <?php if (empty($elementor_templates)) : ?>
66 <small><?php esc_html_e('Elementor not detected', 'king-addons'); ?></small>
67 <?php endif; ?>
68 </label>
69 </div>
70 </div>
71
72 <div class="ka-card kng-maintenance-section" data-section="built_in">
73 <div class="ka-card-header">
74 <span class="dashicons dashicons-art purple"></span>
75 <h2><?php esc_html_e('Built-in Templates', 'king-addons'); ?></h2>
76 </div>
77 <div class="ka-card-body">
78 <div class="kng-maintenance-template-grid">
79 <?php foreach ($templates as $key => $label) :
80 $is_pro_template = in_array($key, $pro_templates, true);
81 $is_locked = $is_pro_template && !$is_pro;
82 ?>
83 <label class="kng-maintenance-template-card<?php echo $is_locked ? ' is-locked' : ''; ?>">
84 <input type="radio" name="kng_maintenance_settings[template_id]" value="<?php echo esc_attr($key); ?>" <?php checked($template_id, $key); ?> <?php disabled($is_locked); ?>>
85 <div class="kng-maintenance-template-preview kng-maintenance-template-<?php echo esc_attr($key); ?>">
86 <div class="kng-template-line"></div>
87 <div class="kng-template-line"></div>
88 <div class="kng-template-line"></div>
89 </div>
90 <strong><?php echo esc_html($label); ?></strong>
91 <?php if ($is_pro_template) : ?>
92 <span class="ka-pro-badge">PRO</span>
93 <?php endif; ?>
94 </label>
95 <?php endforeach; ?>
96 </div>
97 </div>
98 </div>
99
100 <div class="ka-card kng-maintenance-section" data-section="built_in">
101 <div class="ka-card-header">
102 <span class="dashicons dashicons-edit purple"></span>
103 <h2><?php esc_html_e('Template Content', 'king-addons'); ?></h2>
104 </div>
105 <div class="ka-card-body">
106 <?php foreach ($templates as $key => $label) :
107 $content = $this->get_template_content($key);
108 ?>
109 <div class="kng-maintenance-content-block" data-template="<?php echo esc_attr($key); ?>">
110 <div class="kng-maintenance-content-grid">
111 <div class="kng-field">
112 <label><?php esc_html_e('Badge text', 'king-addons'); ?></label>
113 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][badge]" value="<?php echo esc_attr($content['badge']); ?>" placeholder="<?php echo esc_attr($mode === 'maintenance' ? __('Maintenance Mode', 'king-addons') : __('Coming Soon', 'king-addons')); ?>">
114 </div>
115 <div class="kng-field">
116 <label><?php esc_html_e('Headline', 'king-addons'); ?></label>
117 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][headline]" value="<?php echo esc_attr($content['headline']); ?>">
118 </div>
119 <div class="kng-field">
120 <label><?php esc_html_e('Subhead', 'king-addons'); ?></label>
121 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][subhead]" value="<?php echo esc_attr($content['subhead']); ?>">
122 </div>
123 <div class="kng-field">
124 <label><?php esc_html_e('Launch label (optional)', 'king-addons'); ?></label>
125 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][launch_label]" value="<?php echo esc_attr($content['launch_label']); ?>" placeholder="<?php esc_attr_e('Estimated return: 2025-06-01', 'king-addons'); ?>">
126 </div>
127 <div class="kng-field">
128 <label><?php esc_html_e('Footer left', 'king-addons'); ?></label>
129 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][footer_left]" value="<?php echo esc_attr($content['footer_left']); ?>">
130 </div>
131 <div class="kng-field">
132 <label><?php esc_html_e('Footer right', 'king-addons'); ?></label>
133 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][footer_right]" value="<?php echo esc_attr($content['footer_right']); ?>">
134 </div>
135 </div>
136
137 <?php if ($key === 'countdown') : ?>
138 <div class="kng-maintenance-content-grid kng-maintenance-content-grid-sm">
139 <div class="kng-field">
140 <label><?php esc_html_e('Days', 'king-addons'); ?></label>
141 <input type="number" min="0" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][countdown_days]" value="<?php echo esc_attr($content['countdown_days']); ?>">
142 </div>
143 <div class="kng-field">
144 <label><?php esc_html_e('Hours', 'king-addons'); ?></label>
145 <input type="number" min="0" max="23" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][countdown_hours]" value="<?php echo esc_attr($content['countdown_hours']); ?>">
146 </div>
147 <div class="kng-field">
148 <label><?php esc_html_e('Minutes', 'king-addons'); ?></label>
149 <input type="number" min="0" max="59" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][countdown_minutes]" value="<?php echo esc_attr($content['countdown_minutes']); ?>">
150 </div>
151 </div>
152 <?php endif; ?>
153
154 <?php if ($key === 'progress') : ?>
155 <div class="kng-maintenance-content-grid kng-maintenance-content-grid-sm">
156 <div class="kng-field">
157 <label><?php esc_html_e('Progress (%)', 'king-addons'); ?></label>
158 <input type="number" min="0" max="100" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][progress_percent]" value="<?php echo esc_attr($content['progress_percent']); ?>">
159 </div>
160 <div class="kng-field">
161 <label><?php esc_html_e('Progress label', 'king-addons'); ?></label>
162 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][progress_label]" value="<?php echo esc_attr($content['progress_label']); ?>">
163 </div>
164 </div>
165 <?php endif; ?>
166
167 <?php if (in_array($key, ['subscribe', 'product-launch'], true)) : ?>
168 <div class="kng-maintenance-content-grid kng-maintenance-content-grid-sm">
169 <div class="kng-field">
170 <label><?php esc_html_e('Email placeholder', 'king-addons'); ?></label>
171 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][form_placeholder]" value="<?php echo esc_attr($content['form_placeholder']); ?>">
172 </div>
173 <div class="kng-field">
174 <label><?php esc_html_e('Button label', 'king-addons'); ?></label>
175 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][form_button]" value="<?php echo esc_attr($content['form_button']); ?>">
176 </div>
177 </div>
178 <?php endif; ?>
179
180 <?php if ($key === 'split') : ?>
181 <div class="kng-maintenance-content-grid">
182 <div class="kng-field">
183 <label><?php esc_html_e('Left title', 'king-addons'); ?></label>
184 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][split_title_a]" value="<?php echo esc_attr($content['split_title_a']); ?>">
185 </div>
186 <div class="kng-field">
187 <label><?php esc_html_e('Left text', 'king-addons'); ?></label>
188 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][split_text_a]" value="<?php echo esc_attr($content['split_text_a']); ?>">
189 </div>
190 <div class="kng-field">
191 <label><?php esc_html_e('Right title', 'king-addons'); ?></label>
192 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][split_title_b]" value="<?php echo esc_attr($content['split_title_b']); ?>">
193 </div>
194 <div class="kng-field">
195 <label><?php esc_html_e('Right text', 'king-addons'); ?></label>
196 <input type="text" name="kng_maintenance_settings[template_content][<?php echo esc_attr($key); ?>][split_text_b]" value="<?php echo esc_attr($content['split_text_b']); ?>">
197 </div>
198 </div>
199 <?php endif; ?>
200 </div>
201 <?php endforeach; ?>
202 </div>
203 </div>
204
205 <div class="ka-card kng-maintenance-section" data-section="page">
206 <div class="ka-card-header">
207 <span class="dashicons dashicons-admin-page purple"></span>
208 <h2><?php esc_html_e('Select WordPress Page', 'king-addons'); ?></h2>
209 </div>
210 <div class="ka-card-body">
211 <select name="kng_maintenance_settings[page_id]">
212 <option value="0"><?php esc_html_e('Select a page', 'king-addons'); ?></option>
213 <?php foreach ($pages as $page) : ?>
214 <option value="<?php echo esc_attr($page->ID); ?>" <?php selected($page_id, $page->ID); ?>>
215 <?php echo esc_html($page->post_title); ?>
216 </option>
217 <?php endforeach; ?>
218 </select>
219 <p class="kng-maintenance-note"><?php esc_html_e('Use an existing page as the maintenance view.', 'king-addons'); ?></p>
220 </div>
221 </div>
222
223 <div class="ka-card kng-maintenance-section" data-section="elementor">
224 <div class="ka-card-header">
225 <span class="dashicons dashicons-welcome-widgets-menus purple"></span>
226 <h2><?php esc_html_e('Select Elementor Template', 'king-addons'); ?></h2>
227 </div>
228 <div class="ka-card-body">
229 <select name="kng_maintenance_settings[elementor_id]" <?php disabled(empty($elementor_templates)); ?>>
230 <option value="0"><?php esc_html_e('Select a template', 'king-addons'); ?></option>
231 <?php foreach ($elementor_templates as $template) : ?>
232 <option value="<?php echo esc_attr($template->ID); ?>" <?php selected($elementor_id, $template->ID); ?>>
233 <?php echo esc_html($template->post_title); ?>
234 </option>
235 <?php endforeach; ?>
236 </select>
237 <p class="kng-maintenance-note"><?php esc_html_e('Elementor templates give you full design control.', 'king-addons'); ?></p>
238 </div>
239 </div>
240
241 <div class="ka-card">
242 <div class="ka-card-header">
243 <span class="dashicons dashicons-admin-appearance purple"></span>
244 <h2><?php esc_html_e('Appearance', 'king-addons'); ?></h2>
245 </div>
246 <div class="ka-card-body">
247 <div class="ka-row">
248 <div class="ka-row-label"><?php esc_html_e('Theme', 'king-addons'); ?></div>
249 <div class="ka-row-field">
250 <select name="kng_maintenance_settings[theme]">
251 <option value="dark" <?php selected($settings['theme'] ?? 'dark', 'dark'); ?>><?php esc_html_e('Dark (Default)', 'king-addons'); ?></option>
252 <option value="light" <?php selected($settings['theme'] ?? 'dark', 'light'); ?>><?php esc_html_e('Light', 'king-addons'); ?></option>
253 </select>
254 </div>
255 </div>
256 <div class="ka-row">
257 <div class="ka-row-label"><?php esc_html_e('Shortcode', 'king-addons'); ?></div>
258 <div class="ka-row-field">
259 <code>[kng_maintenance_page id="<?php echo esc_html($template_id); ?>"]</code>
260 <p class="kng-maintenance-note"><?php esc_html_e('Use shortcode to preview inside any page.', 'king-addons'); ?></p>
261 </div>
262 </div>
263 <div class="kng-maintenance-actions">
264 <a href="<?php echo esc_url($preview_url); ?>" target="_blank" class="ka-btn ka-btn-secondary">
265 <?php esc_html_e('Preview Page', 'king-addons'); ?>
266 </a>
267 </div>
268 </div>
269 </div>
270
271 <div class="ka-card">
272 <div class="ka-submit">
273 <button type="submit" class="ka-btn ka-btn-primary">
274 <?php esc_html_e('Save Builder', 'king-addons'); ?>
275 </button>
276 </div>
277 </div>
278 </form>
279