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 '
' . __('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 '' . __('If set, this option will remove WordPress version.', 'admin-personalize') . '
'; echo '' . __('If set, this option will hide WordPress "Admin Bar" from frontend.', 'admin-personalize') . '
'; echo '