PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.87
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.87
51.1.87 51.1.86 51.1.84 51.1.85 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 All 41 releases
← All changes | includes/extensions/Maintenance_Mode/templates/view-mode.php +123 -10 51.1.44 → 51.1.87 View file →
@@ -70,20 +70,133 @@
70 70 <h2><?php esc_html_e('Private Access', 'king-addons'); ?></h2>
71 71 <?php if (!$is_pro) : ?><span class="ka-pro-badge">PRO</span><?php endif; ?>
72 72 </div>
73 73 <div class="ka-card-body">
74 - <div class="ka-row">
75 - <div class="ka-row-label"><?php esc_html_e('Password protection', 'king-addons'); ?></div>
76 - <div class="ka-row-field">
77 - <input type="password" disabled placeholder="<?php esc_attr_e('Set a password (Pro)', 'king-addons'); ?>">
74 + <?php if (!$is_pro) : ?>
75 + <div class="ka-row">
76 + <div class="ka-row-label"><?php esc_html_e('Password protection', 'king-addons'); ?></div>
77 + <div class="ka-row-field">
78 + <input type="password" disabled placeholder="<?php esc_attr_e('Set a password (Pro)', 'king-addons'); ?>">
79 + </div>
78 80 </div>
79 - </div>
80 - <div class="ka-row">
81 - <div class="ka-row-label"><?php esc_html_e('Access token', 'king-addons'); ?></div>
82 - <div class="ka-row-field">
83 - <input type="text" disabled placeholder="<?php esc_attr_e('Generate token link (Pro)', 'king-addons'); ?>">
81 + <div class="ka-row">
82 + <div class="ka-row-label"><?php esc_html_e('Access token', 'king-addons'); ?></div>
83 + <div class="ka-row-field">
84 + <input type="text" disabled placeholder="<?php esc_attr_e('Generate token link (Pro)', 'king-addons'); ?>">
85 + </div>
84 86 </div>
85 - </div>
87 + <?php else : ?>
88 + <?php
89 + $password_is_set = !empty($settings['private_password_hash']);
90 + $token = (string) ($settings['private_token'] ?? '');
91 + $token_is_set = $token !== '';
92 +
93 + $token_url = $token_is_set
94 + ? add_query_arg('kng_maintenance_token', rawurlencode($token), home_url('/'))
95 + : '';
96 +
97 + $token_generate_url = wp_nonce_url(
98 + add_query_arg([
99 + 'action' => 'kng_maintenance_generate_token',
100 + ], admin_url('admin-post.php')),
101 + 'kng_maintenance_private_token'
102 + );
103 +
104 + $token_revoke_url = wp_nonce_url(
105 + add_query_arg([
106 + 'action' => 'kng_maintenance_revoke_token',
107 + ], admin_url('admin-post.php')),
108 + 'kng_maintenance_private_token'
109 + );
110 +
111 + $password_revoke_url = wp_nonce_url(
112 + add_query_arg([
113 + 'action' => 'kng_maintenance_revoke_password',
114 + ], admin_url('admin-post.php')),
115 + 'kng_maintenance_private_password'
116 + );
117 + ?>
118 +
119 + <div class="ka-row">
120 + <div class="ka-row-label"><?php esc_html_e('Password protection', 'king-addons'); ?></div>
121 + <div class="ka-row-field">
122 + <?php
123 + $kng_password_notice_allowed = isset($message_code) && $message_code === 'password_revoked';
124 + if ($kng_password_notice_allowed && isset($messages[$message_code])) :
125 + ?>
126 + <div class="ka-alert kng-maintenance-inline-alert">
127 + <span class="dashicons dashicons-yes"></span>
128 + <?php echo esc_html($messages[$message_code]); ?>
129 + </div>
130 + <?php endif; ?>
131 +
132 + <input type="password" name="kng_maintenance_settings[private_password]" value="" placeholder="<?php echo esc_attr($password_is_set ? __('Leave blank to keep current password', 'king-addons') : __('Set a password', 'king-addons')); ?>" autocomplete="new-password">
133 + <small>
134 + <?php if ($password_is_set) : ?>
135 + <?php esc_html_e('A password is set.', 'king-addons'); ?>
136 + <?php else : ?>
137 + <?php esc_html_e('No password set.', 'king-addons'); ?>
138 + <?php endif; ?>
139 + </small>
140 +
141 + <?php if ($password_is_set) : ?>
142 + <div class="kng-maintenance-token-actions kng-maintenance-password-actions">
143 + <a class="ka-btn ka-btn-secondary ka-btn-sm kng-maintenance-btn-danger" href="<?php echo esc_url($password_revoke_url); ?>" onclick="return confirm('<?php echo esc_js(__('Revoke password protection now? Visitors will no longer be able to use the password to bypass maintenance.', 'king-addons')); ?>');">
144 + <span class="dashicons dashicons-trash" aria-hidden="true"></span>
145 + <?php esc_html_e('Revoke password', 'king-addons'); ?>
146 + </a>
147 + </div>
148 + <?php endif; ?>
149 + </div>
150 + </div>
151 +
152 + <div class="ka-row">
153 + <div class="ka-row-label"><?php esc_html_e('Access token', 'king-addons'); ?></div>
154 + <div class="ka-row-field">
155 + <?php
156 + $kng_token_notice_allowed = isset($message_code) && in_array($message_code, ['token_generated', 'token_revoked'], true);
157 + if ($kng_token_notice_allowed && isset($messages[$message_code])) :
158 + ?>
159 + <div class="ka-alert kng-maintenance-inline-alert">
160 + <span class="dashicons dashicons-yes"></span>
161 + <?php echo esc_html($messages[$message_code]); ?>
162 + </div>
163 + <?php endif; ?>
164 +
165 + <?php if ($token_is_set) : ?>
166 + <div class="kng-maintenance-token-row">
167 + <input type="text" readonly value="<?php echo esc_attr($token_url); ?>" class="kng-maintenance-token-input" aria-label="<?php echo esc_attr__('Access token URL', 'king-addons'); ?>">
168 + <button type="button" class="ka-btn ka-btn-secondary ka-btn-sm kng-maintenance-copy-token">
169 + <span class="dashicons dashicons-clipboard" aria-hidden="true"></span>
170 + <?php esc_html_e('Copy', 'king-addons'); ?>
171 + </button>
172 + <span class="kng-maintenance-copy-status" aria-live="polite" role="status"></span>
173 + </div>
174 + <small><?php esc_html_e('Anyone with this link will bypass maintenance mode.', 'king-addons'); ?></small>
175 + <div class="kng-maintenance-token-actions">
176 + <a class="ka-btn ka-btn-secondary ka-btn-sm" href="<?php echo esc_url($token_generate_url); ?>">
177 + <span class="dashicons dashicons-update" aria-hidden="true"></span>
178 + <?php esc_html_e('Regenerate', 'king-addons'); ?>
179 + </a>
180 + <a class="ka-btn ka-btn-secondary ka-btn-sm kng-maintenance-btn-danger" href="<?php echo esc_url($token_revoke_url); ?>" onclick="return confirm('<?php echo esc_js(__('Revoke access token? Anyone with the existing link will lose access.', 'king-addons')); ?>');">
181 + <span class="dashicons dashicons-trash" aria-hidden="true"></span>
182 + <?php esc_html_e('Revoke', 'king-addons'); ?>
183 + </a>
184 + </div>
185 + <?php else : ?>
186 + <small><?php esc_html_e('No token generated.', 'king-addons'); ?></small>
187 + <div class="kng-maintenance-token-actions">
188 + <a class="ka-btn ka-btn-primary ka-btn-sm" href="<?php echo esc_url($token_generate_url); ?>">
189 + <span class="dashicons dashicons-admin-links" aria-hidden="true"></span>
190 + <?php esc_html_e('Generate token', 'king-addons'); ?>
191 + </a>
192 + </div>
193 + <?php endif; ?>
194 +
195 + <input type="hidden" name="kng_maintenance_settings[private_token]" value="<?php echo esc_attr($token); ?>">
196 + </div>
197 + </div>
198 + <?php endif; ?>
86 199 </div>
87 200 </div>
88 201
89 202 <div class="ka-card">