Server IP : 104.21.14.48 / Your IP : 3.145.70.102 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/plugins/ultimate-dashboard/modules/feature/ |
Upload File : |
<?php /** * Feature module. * * @package Ultimate_Dashboard */ namespace Udb\Feature; defined( 'ABSPATH' ) || die( "Can't access directly" ); use Udb\Setup; use Udb\Base\Base_Module; /** * Class to setup dashboard module. */ class Feature_Module extends Base_Module { /** * The class instance. * * @var object */ public static $instance; /** * The current module url. * * @var string */ public $url; /** * Module constructor. */ public function __construct() { $this->url = ULTIMATE_DASHBOARD_PLUGIN_URL . '/modules/feature'; } /** * Get instance of the class. */ public static function get_instance() { if ( null === self::$instance ) { self::$instance = new self(); } return self::$instance; } /** * Setup dashboard module. */ public function setup() { /** * These 4 actions will be removed on multisite if current site is not a blueprint. */ add_action( 'admin_menu', array( self::get_instance(), 'submenu_page' ) ); add_action( 'admin_enqueue_scripts', array( self::get_instance(), 'admin_styles' ) ); add_action( 'admin_enqueue_scripts', array( self::get_instance(), 'admin_scripts' ) ); add_action( 'wp_ajax_udb_handle_module_actions', array( self::get_instance(), 'handle_module_actions' ) ); // The module output. require_once __DIR__ . '/class-feature-output.php'; $output = new Feature_Output(); $output->setup(); } /** * Add submenu page. */ public function submenu_page() { add_submenu_page( 'edit.php?post_type=udb_widgets', __( 'Modules', 'ultimate-dashboard' ), __( 'Modules', 'ultimate-dashboard' ), apply_filters( 'udb_modules_capability', 'manage_options' ), 'udb_features', array( $this, 'submenu_page_content' ) ); } /** * Submenu page content. */ public function submenu_page_content() { $template = require __DIR__ . '/templates/feature-template.php'; $template(); } /** * Enqueue admin styles. */ public function admin_styles() { $enqueue = require __DIR__ . '/inc/css-enqueue.php'; $enqueue( $this ); } /** * Enqueue admin scripts. */ public function admin_scripts() { $enqueue = require __DIR__ . '/inc/js-enqueue.php'; $enqueue( $this ); } /** * Activation/deactivation action. */ public function handle_module_actions() { if ( empty( $_POST ) || ! wp_verify_nonce( $_POST['nonce'], 'udb_module_nonce_action' ) ) { wp_send_json_error( __( 'Invalid nonce', 'ultimate-dashboard' ) ); } $module = new Setup(); $saved_modules = $module->saved_modules(); $name = sanitize_key( $_POST['name'] ); $status = sanitize_key( $_POST['status'] ); $saved_modules[ $name ] = $status; update_option( 'udb_modules', $saved_modules ); wp_send_json_success( array( 'message' => __( 'Saved', 'ultimate-dashboard' ) ) ); } }