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 / Smart_Links / templates / view-edit.php

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

232 lines 12.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Smart Links add/edit view.
4 *
5 * @package King_Addons
6 */
7
8 if (!defined('ABSPATH')) {
9 exit;
10 }
11
12 $link_id = isset($_GET['link_id']) ? absint($_GET['link_id']) : 0;
13 $link = $link_id ? $service->get_link($link_id) : null;
14 $is_edit = (bool) $link;
15
16 $slug = $is_edit ? (string) get_post_meta($link->ID, \King_Addons\Smart_Links\Smart_Links::META_SLUG, true) : '';
17 $destination = $is_edit ? (string) get_post_meta($link->ID, \King_Addons\Smart_Links\Smart_Links::META_DESTINATION, true) : '';
18 $status = $is_edit ? (string) get_post_meta($link->ID, \King_Addons\Smart_Links\Smart_Links::META_STATUS, true) : 'active';
19 $tags = $is_edit ? (array) get_post_meta($link->ID, \King_Addons\Smart_Links\Smart_Links::META_TAGS, true) : [];
20 $notes = $is_edit ? (string) get_post_meta($link->ID, \King_Addons\Smart_Links\Smart_Links::META_NOTES, true) : '';
21 $utm = $is_edit ? (array) get_post_meta($link->ID, \King_Addons\Smart_Links\Smart_Links::META_UTM, true) : [];
22
23 $redirect_type = $is_edit ? (string) get_post_meta($link->ID, \King_Addons\Smart_Links\Smart_Links::META_REDIRECT, true) : '';
24 if (!in_array($redirect_type, ['301', '302'], true)) {
25 $redirect_type = (string) $settings['default_redirect_type'];
26 }
27
28 $allow_query = $is_edit ? (string) get_post_meta($link->ID, \King_Addons\Smart_Links\Smart_Links::META_ALLOW_QUERY, true) : '';
29 $allow_query = $allow_query === '' ? !empty($settings['pass_query_params']) : (bool) $allow_query;
30
31 $utm_enabled = !empty($utm['enabled']);
32 $short_url = $slug ? $service->build_short_url($slug) : $service->build_short_url('your-slug');
33 $tags_value = !empty($tags) ? implode(', ', $tags) : '';
34 $slug_mode = $is_edit && !empty($settings['allow_manual_slug']) ? 'manual' : 'auto';
35 ?>
36
37 <form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
38 <input type="hidden" name="action" value="kng_smart_links_save">
39 <input type="hidden" name="link_id" value="<?php echo esc_attr($link_id); ?>">
40 <?php wp_nonce_field('kng_smart_links_save'); ?>
41
42 <div class="ka-card">
43 <div class="ka-card-header">
44 <span class="dashicons dashicons-admin-links green"></span>
45 <h2><?php echo $is_edit ? esc_html__('Edit Link', 'king-addons') : esc_html__('Create New Link', 'king-addons'); ?></h2>
46 </div>
47 <div class="ka-card-body">
48 <div class="ka-row">
49 <div class="ka-row-label"><?php esc_html_e('Title', 'king-addons'); ?></div>
50 <div class="ka-row-field">
51 <input type="text" name="title" value="<?php echo esc_attr($is_edit ? $link->post_title : ''); ?>" placeholder="<?php esc_attr_e('Campaign name', 'king-addons'); ?>">
52 </div>
53 </div>
54 <div class="ka-row">
55 <div class="ka-row-label"><?php esc_html_e('Destination URL', 'king-addons'); ?></div>
56 <div class="ka-row-field">
57 <input type="url" id="kng-destination" name="destination_url" value="<?php echo esc_attr($destination); ?>" placeholder="https://example.com/product">
58 </div>
59 </div>
60 <div class="ka-row">
61 <div class="ka-row-label"><?php esc_html_e('Slug Mode', 'king-addons'); ?></div>
62 <div class="ka-row-field">
63 <div class="ka-radio-group">
64 <label class="ka-radio-item">
65 <input type="radio" name="slug_mode" value="auto" <?php checked($slug_mode, 'auto'); ?> />
66 <?php esc_html_e('Auto generate', 'king-addons'); ?>
67 </label>
68 <label class="ka-radio-item">
69 <input type="radio" name="slug_mode" value="manual" <?php checked($slug_mode, 'manual'); ?> <?php disabled(empty($settings['allow_manual_slug'])); ?> />
70 <?php esc_html_e('Manual slug', 'king-addons'); ?>
71 </label>
72 <?php if (empty($settings['allow_manual_slug'])) : ?>
73 <span class="ka-pro-badge">PRO</span>
74 <?php endif; ?>
75 </div>
76 </div>
77 </div>
78 <div class="ka-row kng-slug-manual" style="display:none;">
79 <div class="ka-row-label"><?php esc_html_e('Custom Slug', 'king-addons'); ?></div>
80 <div class="ka-row-field">
81 <input type="text" id="kng-slug-input" name="slug" value="<?php echo esc_attr($slug); ?>" placeholder="summer-sale">
82 </div>
83 </div>
84 <div class="ka-row">
85 <div class="ka-row-label"><?php esc_html_e('Short URL', 'king-addons'); ?></div>
86 <div class="ka-row-field">
87 <div class="ka-link-preview">
88 <code id="kng-short-preview" data-copy="<?php echo esc_attr($short_url); ?>"><?php echo esc_html($short_url); ?></code>
89 <button type="button" id="kng-copy-short" class="ka-copy-btn" data-copy="<?php echo esc_attr($short_url); ?>">
90 <span class="dashicons dashicons-admin-page"></span>
91 <span><?php esc_html_e('Copy', 'king-addons'); ?></span>
92 </button>
93 </div>
94 </div>
95 </div>
96 <div class="ka-row">
97 <div class="ka-row-label"><?php esc_html_e('Status', 'king-addons'); ?></div>
98 <div class="ka-row-field">
99 <label class="ka-toggle">
100 <input type="checkbox" name="status" value="disabled" <?php checked($status === 'disabled'); ?> />
101 <span class="ka-toggle-slider"></span>
102 <span class="ka-toggle-label"><?php esc_html_e('Disable this link', 'king-addons'); ?></span>
103 </label>
104 </div>
105 </div>
106 </div>
107 </div>
108
109 <div class="ka-card">
110 <div class="ka-card-header">
111 <span class="dashicons dashicons-admin-site green"></span>
112 <h2><?php esc_html_e('UTM Builder', 'king-addons'); ?></h2>
113 </div>
114 <div class="ka-card-body">
115 <div class="ka-row">
116 <div class="ka-row-label"><?php esc_html_e('Enable UTM', 'king-addons'); ?></div>
117 <div class="ka-row-field">
118 <label class="ka-toggle">
119 <input type="checkbox" id="kng-utm-enabled" name="utm_enabled" value="1" <?php checked($utm_enabled); ?> />
120 <span class="ka-toggle-slider"></span>
121 <span class="ka-toggle-label"><?php esc_html_e('Append UTM parameters', 'king-addons'); ?></span>
122 </label>
123 </div>
124 </div>
125 <div class="ka-inline-fields">
126 <div class="ka-field">
127 <label><?php esc_html_e('utm_source', 'king-addons'); ?></label>
128 <input type="text" id="kng-utm_source" name="utm_source" value="<?php echo esc_attr($utm['utm_source'] ?? ''); ?>" placeholder="newsletter">
129 </div>
130 <div class="ka-field">
131 <label><?php esc_html_e('utm_medium', 'king-addons'); ?></label>
132 <input type="text" id="kng-utm_medium" name="utm_medium" value="<?php echo esc_attr($utm['utm_medium'] ?? ''); ?>" placeholder="email">
133 </div>
134 <div class="ka-field">
135 <label><?php esc_html_e('utm_campaign', 'king-addons'); ?></label>
136 <input type="text" id="kng-utm_campaign" name="utm_campaign" value="<?php echo esc_attr($utm['utm_campaign'] ?? ''); ?>" placeholder="launch">
137 </div>
138 </div>
139 <div class="ka-inline-fields" style="margin-top:16px;">
140 <div class="ka-field">
141 <label><?php esc_html_e('utm_term', 'king-addons'); ?></label>
142 <input type="text" id="kng-utm_term" name="utm_term" value="<?php echo esc_attr($utm['utm_term'] ?? ''); ?>">
143 </div>
144 <div class="ka-field">
145 <label><?php esc_html_e('utm_content', 'king-addons'); ?></label>
146 <input type="text" id="kng-utm_content" name="utm_content" value="<?php echo esc_attr($utm['utm_content'] ?? ''); ?>">
147 </div>
148 </div>
149 <div class="ka-row" style="margin-top:16px;">
150 <div class="ka-row-label"><?php esc_html_e('Preview', 'king-addons'); ?></div>
151 <div class="ka-row-field">
152 <div class="ka-utm-preview" id="kng-utm-preview"></div>
153 </div>
154 </div>
155 </div>
156 </div>
157
158 <div class="ka-card">
159 <div class="ka-card-header">
160 <span class="dashicons dashicons-tag green"></span>
161 <h2><?php esc_html_e('Tags & Notes', 'king-addons'); ?></h2>
162 </div>
163 <div class="ka-card-body">
164 <div class="ka-row">
165 <div class="ka-row-label"><?php esc_html_e('Tags', 'king-addons'); ?></div>
166 <div class="ka-row-field">
167 <input type="text" name="tags" value="<?php echo esc_attr($tags_value); ?>" placeholder="summer, launch">
168 <p class="ka-row-desc"><?php esc_html_e('Separate tags with commas.', 'king-addons'); ?></p>
169 </div>
170 </div>
171 <div class="ka-row">
172 <div class="ka-row-label"><?php esc_html_e('Notes', 'king-addons'); ?></div>
173 <div class="ka-row-field">
174 <textarea name="notes" rows="3"><?php echo esc_textarea($notes); ?></textarea>
175 </div>
176 </div>
177 </div>
178 </div>
179
180 <div class="ka-card">
181 <div class="ka-card-header">
182 <span class="dashicons dashicons-admin-settings green"></span>
183 <h2><?php esc_html_e('Advanced', 'king-addons'); ?></h2>
184 </div>
185 <div class="ka-card-body">
186 <div class="ka-row">
187 <div class="ka-row-label"><?php esc_html_e('Redirect Type', 'king-addons'); ?></div>
188 <div class="ka-row-field">
189 <select name="redirect_type">
190 <option value="301" <?php selected($redirect_type, '301'); ?>><?php esc_html_e('301 Permanent', 'king-addons'); ?></option>
191 <option value="302" <?php selected($redirect_type, '302'); ?>><?php esc_html_e('302 Temporary', 'king-addons'); ?></option>
192 </select>
193 </div>
194 </div>
195 <div class="ka-row">
196 <div class="ka-row-label"><?php esc_html_e('Query Passthrough', 'king-addons'); ?></div>
197 <div class="ka-row-field">
198 <label class="ka-toggle">
199 <input type="checkbox" name="allow_query" value="1" <?php checked($allow_query); ?> />
200 <span class="ka-toggle-slider"></span>
201 <span class="ka-toggle-label"><?php esc_html_e('Forward query parameters', 'king-addons'); ?></span>
202 </label>
203 </div>
204 </div>
205 </div>
206 </div>
207
208 <div class="ka-card ka-smart-links-pro-card">
209 <div class="ka-card-header">
210 <span class="dashicons dashicons-lock pink"></span>
211 <h2><?php esc_html_e('Pro Features', 'king-addons'); ?></h2>
212 <?php if (!$is_pro) : ?><span class="ka-pro-badge">PRO</span><?php endif; ?>
213 </div>
214 <div class="ka-card-body">
215 <p><?php esc_html_e('Unlock A/B rotation, rules engine, expiration, and password protection.', 'king-addons'); ?></p>
216 <ul>
217 <li><?php esc_html_e('A/B testing with multiple destinations', 'king-addons'); ?></li>
218 <li><?php esc_html_e('Geo, device, and referrer rules', 'king-addons'); ?></li>
219 <li><?php esc_html_e('Password-protected and expiring links', 'king-addons'); ?></li>
220 </ul>
221 </div>
222 </div>
223
224 <div class="ka-card">
225 <div class="ka-submit">
226 <button type="submit" class="ka-btn ka-btn-primary">
227 <?php echo $is_edit ? esc_html__('Save Changes', 'king-addons') : esc_html__('Create Link', 'king-addons'); ?>
228 </button>
229 </div>
230 </div>
231 </form>
232