# darkify/1.3.2/src/Admin/Admin.php

Darkify – Dark Mode &amp; Night Mode for Website &amp; Admin (Dark Theme Included), version 1.3.2. 256 lines.

- Page: https://pluginprobe.com/plugins/darkify/1.3.2/code/src/Admin/Admin.php
- Raw: https://pluginprobe.com/plugins/darkify/1.3.2/raw/src/Admin/Admin.php
- Modified: 2025-03-24T01:22:28+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/darkify/1.3.2/code/src/Admin/Admin.php#L10-L20`.

```php
<?php

/**
 * The admin-facing functionality of the plugin.
 *
 * @link       https://themeatelier.net
 * @since      1.0.0
 *
 * @package darkify
 * @subpackage darkify/Admin
 * @author     ThemeAtelier<themeatelierbd@gmail.com>
 */

namespace ThemeAtelier\Darkify\Admin;

use ThemeAtelier\Darkify\Admin\TADiscountPage\TADiscountPage;
use ThemeAtelier\Darkify\Admin\Views\DarkifyOptions;
use ThemeAtelier\Darkify\Helpers\DarkifyExternalSupport;
use ThemeAtelier\Darkify\Helpers\DarkifyUtils;
use ThemeAtelier\Darkify\Helpers\Helpers;

/**
 * The admin class
 */
class Admin
{

    /**
     * The slug of this plugin.
     *
     * @since    1.0.0
     * @access   private
     * @var      string    $plugin_slug   The slug of this plugin.
     */
    private $plugin_slug;

    /**
     * The min of this plugin.
     *
     * @since    1.0.0
     * @access   private
     * @var      string    $min   The slug of this plugin.
     */
    private $min;

    /**
     * The version of this plugin.
     *
     * @since    1.0.0
     * @access   private
     * @var      string    $version    The current version of this plugin.
     */
    private $version;
    public $utils;
    public $settings;
    public $external_support;

    public $unique_id;

    private $plugin_name;

    /**
     * The class constructor.
     *
     * @param string $plugin_slug The slug of the plugin.
     * @param string $version Current version of the plugin.
     */
    function __construct($plugin_slug, $version)
    {
        $this->utils = new DarkifyUtils($this);
        $this->external_support = new DarkifyExternalSupport($this);
        if (function_exists('wp_rand')) {
            $this->unique_id = wp_rand();
        }
        DarkifyOptions::options('darkify');

        $options = get_option('darkify');
        $enable_admin_panel_dark_mode = isset($options['enable_admin_panel_dark_mode']) ? $options['enable_admin_panel_dark_mode'] : false;
        $this->plugin_name = $plugin_slug;

        add_filter('plugin_action_links', array($this, 'add_plugin_action_links'), 10, 2);

        add_action('admin_enqueue_scripts', array($this, 'darkify_admin_enqueue'));

        if ($enable_admin_panel_dark_mode) {
            add_action('admin_bar_menu',  array($this, 'darkify_admin_bar_switch'), 9999);
            add_action('admin_print_scripts', array($this, 'darkify_admin_header_script'), 1);
            add_action('admin_footer', array($this, 'darkify_admin_footer_script'));
        }

        add_action('admin_menu', array($this, 'add_plugin_page'));
        new TADiscountPage();
    }

    public function enqueue_styles()
    {
        wp_enqueue_style('ico-font', DARKIFY_DIR_URL . 'src/assets/css/icofont.css', array(), DARKIFY_VERSION, 'all');
        wp_enqueue_style('darkify-admin', DARKIFY_DIR_URL . 'src/Admin/assets/css/darkify-admin.css', array(), DARKIFY_VERSION, 'all');
    }

    public function enqueue_scripts($hook)
    {
        if ($hook !== 'toplevel_page_darkify') {
            return;
        }
        wp_enqueue_script('darkify-admin', DARKIFY_DIR_URL . 'src/Admin/assets/js/darkify-admin.js', array(), DARKIFY_VERSION, 'all');
    }

    public function add_plugin_action_links($links, $file)
    {
        if (DARKIFY_BASENAME === $file) {
            $new_links       = array(
                sprintf('<a href="%s">%s</a>', admin_url('admin.php?page=darkify#tab=control'), __('Settings', 'darkify')),
            );
            return array_merge($new_links, $links);
        }
        return $links;
    }

    public function darkify_admin_enqueue($page)
    {
        $options = get_option('darkify');
        $enable_default_dark_mode = $options['enable_default_dark_mode'];
        $enable_time = $options['enable_time'];
        $enable_time_based_dark = isset($enable_time['enable_time_based_dark']) ? $enable_time['enable_time_based_dark'] : "";
        $time_based_dark_start = isset($enable_time['time_based_dark_start']['from']) ? $enable_time['time_based_dark_start']['from'] : "";
        $time_based_dark_stop =  isset($enable_time['time_based_dark_start']['to'])  ?  $enable_time['time_based_dark_start']['to'] : "";
        $grayscale =  $options['brightness'];
        $enable_low_image_brightness =  isset($grayscale['enable_low_image_brightness']) ? $grayscale['enable_low_image_brightness'] : "";
        $low_image_brightness_label =  isset($grayscale['low_image_brightness_label']) ? $grayscale['low_image_brightness_label'] : "";
        $grayscale =  isset($options['grayscale']);
        $enable_image_grayscale =  isset($grayscale['enable_image_grayscale']) ? $grayscale['enable_image_grayscale'] : "";
        $image_grayscale_label =  isset($grayscale['image_grayscale_label']) ? $grayscale['image_grayscale_label'] : "";
        $disallowed_low_grayscale_images =  isset($grayscale['disallowed_low_grayscale_images']) ? $grayscale['disallowed_low_grayscale_images'] : "";
        $darken_background =  isset($options['darken_background']);
        $enable_low_image_darken =  isset($darken_background['enable_low_image_darken']) ? $darken_background['enable_low_image_darken'] : "";
        $low_image_darken_label =  isset($darken_background['low_image_darken_label']) ? $darken_background['low_image_darken_label'] : "";
        $video_brightness =  isset($options['video_brightness']);
        $enable_low_video_brightness =  isset($video_brightness['enable_low_video_brightness']) ? $video_brightness['enable_low_video_brightness'] : "";
        $low_video_brightness_label =  isset($video_brightness['low_video_brightness_label']) ? $video_brightness['low_video_brightness_label'] : "";
        $video_grayscale =  isset($options['video_grayscale']);
        $enable_video_grayscale =  isset($video_grayscale['enable_video_grayscale']) ? $video_grayscale['enable_video_grayscale'] : "";

        if ($options["enable_admin_panel_dark_mode"]) {
            if ($this->darkify_is_dark_mode_allowed()) {
                if (!wp_style_is('darkify-admin-switch', 'enqueued')) {
                    wp_enqueue_style('darkify-admin-switch', DARKIFY_DIR_URL . 'src/assets/css/client_main.css', array(), DARKIFY_VERSION, 'all');
                }
                wp_enqueue_script('darkify-admin-client-main', DARKIFY_DIR_URL . 'src/assets/js/client_main.js', array(), DARKIFY_VERSION);

                $darkify_data = array(
                    'darkify_switch_unique_id' => $this->unique_id,
                    'darkify_is_this_admin_panel' => is_admin() ? "1" : "0",
                    'darkify_enable_default_dark_mode' => $enable_default_dark_mode,
                    'darkify_enable_os_aware' => $options["enable_os_aware"],
                    'darkify_enable_keyboard_shortcut' => $options["enable_keyboard_shortcut"],
                    'darkify_enable_time_based_dark' => $enable_time_based_dark,
                    'darkify_time_based_dark_start' => $time_based_dark_start ? $time_based_dark_start : "19:00",
                    'darkify_time_based_dark_stop' => $time_based_dark_stop ? $time_based_dark_stop : "07:00",
                    'darkify_alternative_dark_mode_switch' => $options["alternative_dark_mode_switcher"],
                    'darkify_enable_low_image_brightness' => $enable_low_image_brightness,
                    'darkify_image_brightness_to' => $low_image_brightness_label,
                    'darkify_enable_image_grayscale' => $enable_image_grayscale,
                    'darkify_image_grayscale_to' => $image_grayscale_label,
                    'darkify_disallowed_grayscale_images' => $disallowed_low_grayscale_images,
                    'darkify_enable_bg_image_darken' => $enable_low_image_darken,
                    'darkify_bg_image_darken_to' => $low_image_darken_label,
                    'darkify_enable_invert_inline_svg' => $options["enable_invert_inline_svg"],
                    'darkify_enable_low_video_brightness' => $enable_low_video_brightness,
                    'darkify_video_brightness_to' => $low_video_brightness_label,
                    'darkify_enable_video_grayscale' => $enable_video_grayscale,
                    // Add more variables as needed...
                );
                wp_localize_script('darkify-admin-client-main', 'darkify_data', $darkify_data);
            }
        }
    }

    public function darkify_admin_bar_switch($wp_admin_bar)
    {
        if ($this->darkify_is_dark_mode_allowed()) {
            $args = array(
                'parent' => 'top-secondary',
                'id' => 'darkify_admin_bar_switch_container',
                'meta' => array(
                    'class' => 'darkify_admin_bar_switch_container',
                    'onclick' => 'darkify_switch_trigger()',
                )
            );
            $wp_admin_bar->add_node($args);
        }
    }

    public function darkify_is_dark_mode_allowed()
    {

        $options = get_option('darkify');
        $disallowed_admin_pages = isset($options["disallowed_admin_pages"]) ? $options["disallowed_admin_pages"] : "";
        /* Disable on Disallowed Admin Plugins */
        if ($this->utils->isRestrictedByDisallowedAdminPages($disallowed_admin_pages)) {
            return False;
        }
        return True;
    }

    public function darkify_admin_header_script()
    {
        if ($this->darkify_is_dark_mode_allowed()) {
            include_once Helpers::darkify_locate_template('header_script.php');
        }
    }

    public function darkify_admin_footer_script()
    {
        if ($this->darkify_is_dark_mode_allowed()) {
            include_once Helpers::darkify_locate_template('footer_script.php');
        }
    }

    public function add_plugin_page()
    {
        // This page will be under "Settings"
        add_menu_page(
            esc_html__('Darkify', 'darkify'),
            esc_html__('Darkify', 'darkify'),
            'manage_options',
            'darkify',
            'darkify_settings',
            'data:image/svg+xml;base64,' . base64_encode('<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
    <path d="M23.5 1.5C23.5 0.671573 22.8284 0 22 0C21.1716 0 20.5 0.671573 20.5 1.5V4.5C20.5 5.32843 21.1716 6 22 6C22.8284 6 23.5 5.32843 23.5 4.5V1.5Z" fill="white" />
    <path d="M34 22C34 28.6274 28.6274 34 22 34C15.3726 34 10 28.6274 10 22C10 15.3726 15.3726 10 22 10C28.6274 10 34 15.3726 34 22Z" fill="white" />
    <path d="M22 38C22.8284 38 23.5 38.6716 23.5 39.5V42.5C23.5 43.3284 22.8284 44 22 44C21.1716 44 20.5 43.3284 20.5 42.5V39.5C20.5 38.6716 21.1716 38 22 38Z" fill="white" />
    <path d="M10.6863 10.6863C10.1005 11.2721 9.15074 11.2721 8.56495 10.6863L6.44363 8.56498C5.85784 7.97919 5.85784 7.02945 6.44363 6.44366C7.02942 5.85787 7.97916 5.85787 8.56495 6.44366L10.6863 8.56498C11.2721 9.15077 11.2721 10.1005 10.6863 10.6863Z" fill="white" />
    <path d="M35.435 37.5564C36.0208 38.1421 36.9705 38.1421 37.5563 37.5564C38.1421 36.9706 38.1421 36.0208 37.5563 35.435L35.435 33.3137C34.8492 32.7279 33.8995 32.7279 33.3137 33.3137C32.7279 33.8995 32.7279 34.8493 33.3137 35.435L35.435 37.5564Z" fill="white" />
    <path d="M10.6863 33.3137C11.2721 33.8995 11.2721 34.8492 10.6863 35.435L8.56495 37.5563C7.97916 38.1421 7.02942 38.1421 6.44363 37.5563C5.85784 36.9706 5.85784 36.0208 6.44363 35.435L8.56495 33.3137C9.15074 32.7279 10.1005 32.7279 10.6863 33.3137Z" fill="white" />
    <path d="M37.5563 8.56496C38.1421 7.97918 38.1421 7.02943 37.5563 6.44364C36.9705 5.85786 36.0208 5.85786 35.435 6.44364L33.3137 8.56496C32.7279 9.15075 32.7279 10.1005 33.3137 10.6863C33.8995 11.2721 34.8492 11.2721 35.435 10.6863L37.5563 8.56496Z" fill="white" />
    <path d="M6 22C6 22.8284 5.32843 23.5 4.5 23.5H1.5C0.671573 23.5 0 22.8284 0 22C0 21.1716 0.671573 20.5 1.5 20.5H4.5C5.32843 20.5 6 21.1716 6 22Z" fill="white" />
    <path d="M42.5 23.5C43.3284 23.5 44 22.8284 44 22C44 21.1716 43.3284 20.5 42.5 20.5H39.5C38.6716 20.5 38 21.1716 38 22C38 22.8284 38.6716 23.5 39.5 23.5H42.5Z" fill="white" />
</svg>'),
            9
        );
        do_action('darkify_before_upgrade_pro_menu');
        add_submenu_page(
            'darkify',
            __(
                '👑 Upgrade to Pro!',
                'darkify'
            ),
            sprintf('<span style="color: #35b747;font-weight: bold;" class="darkify-get-pro-text">%s</span>', __('👑 Upgrade to Pro!', 'darkify')),
            'manage_options',
            'https://themeatelier.net/downloads/darkify/'
        );
        do_action('darkify_after_upgrade_pro_menu');
    }
}

```
