*/
class Essential_Widgets_Admin {
/**
* The ID of this plugin.
*
* @since 1.0.0
* @access private
* @var string $plugin_name The ID of this plugin.
*/
private $plugin_name;
/**
* The version of this plugin.
*
* @since 1.0.0
* @access private
* @var string $version The current version of this plugin.
*/
private $version;
/**
* Initialize the class and set its properties.
*
* @since 1.0.0
* @param string $plugin_name The name of this plugin.
* @param string $version The version of this plugin.
*/
public function __construct( $plugin_name, $version ) {
$this->plugin_name = $plugin_name;
$this->version = $version;
}
/**
* Register the stylesheets for the admin area.
*
* @since 1.0.0
*/
public function enqueue_styles() {
/**
* This function is provided for demonstration purposes only.
*
* An instance of this class should be passed to the run() function
* defined in Essential_Widgets_Loader as all of the hooks are defined
* in that particular class.
*
* The Essential_Widgets_Loader will then create the relationship
* between the defined hooks and the functions defined in this
* class.
*/
if ( isset( $_GET['page'] ) && 'essential-widgets' == $_GET['page'] ) {
wp_enqueue_style( $this->plugin_name . '-display-dashboard-admin', plugin_dir_url( __FILE__ ) . 'css/essential-widgets-dasbhoard-admin.css', array(), $this->version, 'all' );
wp_enqueue_style( $this->plugin_name . '-display-dashboard', plugin_dir_url( __FILE__ ) . 'css/admin-dashboard.css', array(), $this->version, 'all' );
}
global $pagenow;
if ( 'widgets.php' === $pagenow || 'customize.php' === $pagenow ) {
wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'css/essential-widgets-admin.css', array(), $this->version, 'all' );
}
}
/**
* Register the JavaScript for the admin area.
*
* @since 1.0.0
*/
public function enqueue_scripts() {
/**
* This function is provided for demonstration purposes only.
*
* An instance of this class should be passed to the run() function
* defined in Essential_Widgets_Loader as all of the hooks are defined
* in that particular class.
*
* The Essential_Widgets_Loader will then create the relationship
* between the defined hooks and the functions defined in this
* class.
*/
if ( isset( $_GET['page'] ) && 'essential-widgets' == $_GET['page'] ) {
wp_enqueue_script( 'minHeight', plugin_dir_url( __FILE__ ) . 'js/jquery.matchHeight.min.js', array( 'jquery' ), $this->version, false );
wp_enqueue_script( $this->plugin_name . '-admin-script', plugin_dir_url( __FILE__ ) . 'js/admin-scripts.js', array( 'minHeight', 'jquery' ), $this->version, false );
}
global $pagenow;
if ( 'widgets.php' === $pagenow || 'customize.php' === $pagenow ) {
wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/essential-widgets-admin.js', array( 'jquery' ), $this->version, false );
}
}
/**
* Essential Widgets: action_links
* Essential Widgets Settings Link function callback
*
* @param arrray $links Link url.
*
* @param arrray $file File name.
*/
public function action_links( $links, $file ) {
if ( $file === $this->plugin_name . '/' . $this->plugin_name . '.php' ) {
$settings_link = '' . esc_html__( 'Settings', 'essential-widgets' ) . '';
array_unshift( $links, $settings_link );
}
return $links;
}
/**
* Essential Widgets: add_plugin_settings_menu
* add Essential Widgets to menu
*/
public function add_plugin_settings_menu() {
add_menu_page(
esc_html__( 'Essential Widgets', 'essential-widgets' ),
esc_html__( 'Essential Widgets', 'essential-widgets' ),
'manage_options',
'essential-widgets',
array( $this, 'settings_page' ),
'',
'99.01564'
);
}
/**
* Essential Widgets: catch_web_tools_settings_page
* Essential Widgets Setting function
*/
public function settings_page() {
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( esc_html__( 'You do not have sufficient permissions to access this page.' ) );
}
require plugin_dir_path( __FILE__ ) . 'partials/essential-widgets-admin-display.php';
}
/**
* Essential Widgets: register_settings
* Essential Widgets Register Settings
*/
public function register_settings() {
register_setting(
'essential-widgets-group',
'essential_widgets_options',
array( $this, 'sanitize_callback' )
);
}
public function ew_switch() {
if ( ! wp_verify_nonce( $_POST['security'], 'ew_nonce' ) ) {
wp_die( esc_html__( 'Unauthorized access!', 'essential-widgets' ) );
} else {
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( esc_html__( 'Permission denied!', 'essential-widgets' ) );
}
$value = ( 'true' == $_POST['value'] ) ? 1 : 0;
$option_name = $_POST['option_name'];
$option_value = essential_widgets_get_options();
$option_value[ $option_name ] = $value;
if ( update_option( 'essential_widgets_options', $option_value ) ) {
echo $value;
} else {
esc_html_e( 'Connection Error. Please try again.', 'essential-widgets' );
}
}
wp_die(); // this is required to terminate immediately and return a proper response
}
function add_plugin_meta_links( $meta_fields, $file ) {
if ( ESSENTIAL_WIDGETS_BASENAME == $file ) {
$meta_fields[] = "Support Forum";
$meta_fields[] = ""
. ""
. ""
. ""
. ""
. ""
. '';
$stars_color = '#ffb900';
echo '';
}
return $meta_fields;
}
}