| 1 |
<?php |
| 2 |
/** |
| 3 |
* Maintenance Mode rules view. |
| 4 |
* |
| 5 |
* @package King_Addons |
| 6 |
*/ |
| 7 |
|
| 8 |
if (!defined('ABSPATH')) { |
| 9 |
exit; |
| 10 |
} |
| 11 |
|
| 12 |
$whitelist_ips = !empty($settings['whitelist_ips']) ? implode("\n", $settings['whitelist_ips']) : ''; |
| 13 |
$whitelist_paths = !empty($settings['whitelist_paths']) ? implode("\n", $settings['whitelist_paths']) : ''; |
| 14 |
?> |
| 15 |
|
| 16 |
<form method="post" action="options.php"> |
| 17 |
<?php settings_fields('kng_maintenance_settings_group'); ?> |
| 18 |
|
| 19 |
<div class="ka-card"> |
| 20 |
<div class="ka-card-header"> |
| 21 |
<span class="dashicons dashicons-filter purple"></span> |
| 22 |
<h2><?php esc_html_e('Basic Rules', 'king-addons'); ?></h2> |
| 23 |
</div> |
| 24 |
<div class="ka-card-body"> |
| 25 |
<input type="hidden" name="kng_maintenance_settings[exclude_admin]" value="0"> |
| 26 |
<label class="ka-toggle"> |
| 27 |
<input type="checkbox" name="kng_maintenance_settings[exclude_admin]" value="1" <?php checked(!empty($settings['exclude_admin'])); ?> /> |
| 28 |
<span class="ka-toggle-slider"></span> |
| 29 |
<span class="ka-toggle-label"><?php esc_html_e('Always allow administrators', 'king-addons'); ?></span> |
| 30 |
</label> |
| 31 |
|
| 32 |
<div class="kng-maintenance-rule-grid"> |
| 33 |
<div class="kng-field"> |
| 34 |
<label><?php esc_html_e('Whitelist IPs', 'king-addons'); ?></label> |
| 35 |
<textarea name="kng_maintenance_settings[whitelist_ips]" rows="4" placeholder="203.0.113.10 198.51.100.22"><?php echo esc_textarea($whitelist_ips); ?></textarea> |
| 36 |
<small><?php esc_html_e('One IP per line. Free plan supports up to 10.', 'king-addons'); ?></small> |
| 37 |
</div> |
| 38 |
<div class="kng-field"> |
| 39 |
<label><?php esc_html_e('Whitelist Paths', 'king-addons'); ?></label> |
| 40 |
<textarea name="kng_maintenance_settings[whitelist_paths]" rows="4" placeholder="/pricing /about"><?php echo esc_textarea($whitelist_paths); ?></textarea> |
| 41 |
<small><?php esc_html_e('One path per line. Prefix matches are allowed.', 'king-addons'); ?></small> |
| 42 |
</div> |
| 43 |
</div> |
| 44 |
</div> |
| 45 |
</div> |
| 46 |
|
| 47 |
<div class="ka-card"> |
| 48 |
<div class="ka-card-header"> |
| 49 |
<span class="dashicons dashicons-lock pink"></span> |
| 50 |
<h2><?php esc_html_e('Pro Rules Engine', 'king-addons'); ?></h2> |
| 51 |
<?php if (!$is_pro) : ?><span class="ka-pro-badge">PRO</span><?php endif; ?> |
| 52 |
</div> |
| 53 |
<div class="ka-card-body"> |
| 54 |
<div class="kng-maintenance-pro-grid"> |
| 55 |
<div> |
| 56 |
<strong><?php esc_html_e('Role, device, and country rules', 'king-addons'); ?></strong> |
| 57 |
<p><?php esc_html_e('Create advanced allow/block rules with priority ordering.', 'king-addons'); ?></p> |
| 58 |
</div> |
| 59 |
<div> |
| 60 |
<strong><?php esc_html_e('Per-rule templates', 'king-addons'); ?></strong> |
| 61 |
<p><?php esc_html_e('Serve different maintenance pages by segment.', 'king-addons'); ?></p> |
| 62 |
</div> |
| 63 |
<div> |
| 64 |
<strong><?php esc_html_e('Query and referrer conditions', 'king-addons'); ?></strong> |
| 65 |
<p><?php esc_html_e('Fine-tune access using URL parameters and referrers.', 'king-addons'); ?></p> |
| 66 |
</div> |
| 67 |
</div> |
| 68 |
|
| 69 |
<?php if (!$is_pro) : ?> |
| 70 |
<a href="https://kingaddons.com/pricing/" target="_blank" class="ka-btn ka-btn-pink"> |
| 71 |
<?php esc_html_e('Upgrade to Pro', 'king-addons'); ?> |
| 72 |
</a> |
| 73 |
<?php endif; ?> |
| 74 |
</div> |
| 75 |
</div> |
| 76 |
|
| 77 |
<div class="ka-card"> |
| 78 |
<div class="ka-submit"> |
| 79 |
<button type="submit" class="ka-btn ka-btn-primary"> |
| 80 |
<?php esc_html_e('Save Rules', 'king-addons'); ?> |
| 81 |
</button> |
| 82 |
</div> |
| 83 |
</div> |
| 84 |
</form> |
| 85 |
|