plugin_slug = $plugin->get_plugin_slug(); // Setup default options add_action('admin_init', array($this, 'setup_default_options')); // Add the options page and menu item. add_action('admin_menu', array($this, 'add_plugin_admin_menu')); // Register settings fields add_action('admin_init', array($this, 'settings')); // Add an action link pointing to the settings page. $this->plugin_basename = plugin_basename(plugin_dir_path(__DIR__) . $this->plugin_slug . '.php'); add_filter('plugin_action_links_' . $this->plugin_basename, array($this, 'add_action_links')); add_filter('plugin_row_meta', array($this, 'plugin_row_meta'), 10, 4); } /** * Setup default options. * * @since 1.0 */ public function setup_default_options() { add_option('admin_personalize_override_default', 1); add_option('admin_personalize_override_admin', 1); } /** * Return an instance of this class. * * @since 1.0 * * @return object A single instance of this class. */ public static function get_instance() { // If the single instance hasn't been set, set it now. if (null == self::$instance) { self::$instance = new self; } return self::$instance; } /** * Register administration menus. * * @since 1.0 */ public function add_plugin_admin_menu() { // Add a settings page to the Settings menu $this->plugin_screen_hook_suffix = add_options_page( __('Admin Personalize', 'admin-personalize'), __('Admin Personalize', 'admin-personalize'), 'manage_options', $this->plugin_slug, array($this, 'display_plugin_admin_page') ); } /** * Render the settings page. * * @since 1.0 */ public function display_plugin_admin_page() { include_once( 'views/admin.php' ); } /** * Settings API. * * @since 1.0 * * updated on version 1.1 */ public function settings() { add_settings_section( 'admin_personalize', '', array($this, 'settings_section'), 'admin_personalize' ); add_settings_field( 'admin_personalize_name', __('From Name', 'admin_personalize'), array($this, 'admin_personalize_name_field'), 'admin_personalize', 'admin_personalize' ); add_settings_field( 'admin_personalize_email', __('From Email Address', 'admin_personalize'), array($this, 'admin_personalize_email_field'), 'admin_personalize', 'admin_personalize' ); add_settings_field( 'admin_personalize_override', __('Override Emails From', 'admin_personalize'), array($this, 'admin_personalize_override_fields'), 'admin_personalize', 'admin_personalize' ); add_settings_field( 'admin_personalize_remove_wp_version', __('Remove WordPress Version', 'admin_personalize'), array($this, 'admin_personalize_remove_wp_version_field'), 'admin_personalize', 'admin_personalize' ); add_settings_field( 'admin_personalize_hide_admin_bar', __('Hide WordPress Admin Bar', 'admin_personalize'), array($this, 'admin_personalize_hide_admin_bar_field'), 'admin_personalize', 'admin_personalize' ); add_settings_field( 'admin_personalize_configure_wp_logo', __('Configure WordPress Logo', 'admin_personalize'), array($this, 'admin_personalize_configure_wp_logo_field'), 'admin_personalize', 'admin_personalize' ); add_settings_field( 'admin_personalize_custom_css_for_wp_logo', __('WordPress Logo\'s Width', 'admin_personalize'), array($this, 'admin_personalize_custom_css_for_wp_logo_field'), 'admin_personalize', 'admin_personalize' ); add_settings_field( 'admin_personalize_configure_wp_icon', __('Configure WordPress Icon', 'admin_personalize'), array($this, 'admin_personalize_configure_wp_icon_field'), 'admin_personalize', 'admin_personalize' ); register_setting('admin_personalize', 'admin_personalize_name', array($this, 'sanitize_admin_personalize_name')); register_setting('admin_personalize', 'admin_personalize_email', 'is_email'); register_setting('admin_personalize', 'admin_personalize_override_default', 'absint'); register_setting('admin_personalize', 'admin_personalize_override_admin', 'absint'); register_setting('admin_personalize', 'admin_personalize_remove_wp_version', 'absint'); register_setting('admin_personalize', 'admin_personalize_hide_admin_bar', 'absint'); register_setting('admin_personalize', 'admin_personalize_configure_wp_logo', 'image'); register_setting('admin_personalize', 'admin_personalize_custom_css_for_wp_logo', 'text'); register_setting('admin_personalize', 'admin_personalize_configure_wp_icon', 'image'); } /** * Sanitize Mail From Name. * * Strips out all HTML, scripts, etc... * * @since 1.0 * * @param string $val Name. * @return string Sanitized name. */ public function sanitize_admin_personalize_name($val) { return wp_kses($val, array()); } /** * Admin Personalize Settings Section. * * @since 1.0 */ public function settings_section() { echo '

' . __('By using following settings you can configure WordPress\'s default Form Name, Form Email, WP logo, Wp Icon, Remove WP Version, Hide Admin Bar etc.', 'admin-personalize') . '

'; } /** * Mail From Name Field. * * @since 1.0 */ public function admin_personalize_name_field() { echo ''; } /** * Mail From Email Field. * * @since 1.0 */ public function admin_personalize_email_field() { echo ''; } /** * Mail From Override Fields. * * @since 1.0 */ public function admin_personalize_override_fields() { $wp_mailfrom = Admin_Personalize::get_instance(); $email = $wp_mailfrom->get_default_from(); echo '
'; echo '

'; echo '

' . __('If set, these two options will override the default name and email address in the "From" header on emails sent by WordPress.', 'admin-personalize') . '

'; echo '
'; } /** * Remove WP Version Field. * * @since 1.0 */ public function admin_personalize_remove_wp_version_field() { echo '

'; echo '

' . __('If set, this option will remove WordPress version.', 'admin-personalize') . '

'; echo '
'; } /** * Hide WP Admin Bar Field. * * @since 1.0 */ public function admin_personalize_hide_admin_bar_field() { echo '

'; echo '

' . __('If set, this option will hide WordPress "Admin Bar" from frontend.', 'admin-personalize') . '

'; echo '
'; } /** * Configure WP logo Field. * * @since 1.0 */ public function admin_personalize_configure_wp_logo_field() { ?>

' . __('If set, this option will override the default WordPress logo on "Login Panel".', 'admin-personalize') . '

'; } /** * Configure WP logo's width Field. * * @since 1.1 */ public function admin_personalize_custom_css_for_wp_logo_field() { ?> px ' . __('If set, this option will override the default WordPress logo\'s width on "Login Panel".
If you remain empty, then it will take 84px width, same as WordPress Logo.', 'admin-personalize') . '

'; echo '
'; } /** * Configure WP icon Field. * * @since 1.0 */ public function admin_personalize_configure_wp_icon_field() { ?>

' . __('If set, this option will override the default WordPress icon on "Dashboard".', 'admin-personalize') . '

'; echo '
'; } /** * Add settings action link to the plugins page. * * @since 1.0 */ public function add_action_links($links) { return array_merge( array( 'settings' => '' . esc_html__('Settings', 'admin-personalize') . '' ), $links ); } /** * Plugin Row Meta * * Adds documentation, support and issue links below the plugin description on the plugins page. * * @since 1.0 * * @param array $plugin_meta Plugin meta display array. * @param string $plugin_file Plugin reference. * @param array $plugin_data Plugin data. * @param string $status Plugin status. * @return array Plugin meta array. */ public function plugin_row_meta($plugin_meta, $plugin_file, $plugin_data, $status) { if ($this->plugin_basename == $plugin_file) { $plugin_meta[] = sprintf('%s', 'https://github.com/Deepak40/Admin-Personalize', esc_html__('GitHub', 'admin-personalize')); $plugin_meta[] = sprintf('%s', esc_url(__('http://wordpress.org/support/plugin/admin-personalize', 'admin-personalize')), esc_html__('Support', 'admin-personalize')); } return $plugin_meta; } }