Got this working the other day in a single-file php plugin which only consisted of functions. Now I am trying it out with the [WordPress Plugin Boilerplate][1] which is an OOP approach with a lot of different classes. In short, I am looking at two different classes/files `includes/class-ebay-keyword-suggest.php` and `admin/class-ebay-keyword-suggest-admin.php` The first being the core plugin class, and the latter being the admin-specific functionality. First, `class-ebay-keyword-suggest.php` `__construct()`'s public function __construct() { if ( defined( 'EBAY_KEYWORD_SUGGEST_VERSION' ) ) { $this->version = EBAY_KEYWORD_SUGGEST_VERSION; } else { $this->version = '1.0.0'; } $this->plugin_name = 'ebay-keyword-suggest'; $this->load_dependencies(); $this->set_locale(); $this->define_admin_hooks(); $this->define_public_hooks(); $this->register_admin_menu(); } `load_dependencies` loads the `class-ebay-keyword-suggest-admin.php` file, among others. ends with defining `$this->loader` as such: `$this->loader = new Ebay_Keyword_Suggest_Loader();` `define_admin_hooks` loads up my scripts and stylesheets private function define_admin_hooks() { $plugin_admin = new Ebay_Keyword_Suggest_Admin( $this->get_plugin_name(), $this->get_version() ); $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' ); $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' ); } Proceeded by `register_admin_menu`: private function register_admin_menu() { $plugin_admin = new Ebay_Keyword_Suggest_Admin( $this->get_plugin_name(), $this->get_version() ); add_action( 'admin_init', array( $plugin_admin, 'ebay_keyword_suggest_settings_init' ) ); add_action( 'admin_menu', array( $plugin_admin, 'ebay_keyword_suggest_add_admin_menu' ) ); add_action( 'admin_enqueue_scripts', array( $plugin_admin, 'enqueue_localize' ) ); } `ebay_keyword_suggest_settings_init` is where I am registering the option/setting `ebay_keyword_suggest_settings` with callbacks public function ebay_keyword_suggest_settings_init() { register_setting( 'pluginPage', 'pluginPage', array($this, 'ebay_keyword_suggest_settings')); add_settings_section( 'ebay_keyword_suggest_pluginPage_section', __( 'Your section description', '' ), array($this, 'ebay_keyword_suggest_settings_section_callback'), 'pluginPage' ); add_settings_field( 'ebay_keyword_suggest_checkbox_field_0', __( 'Settings field description', '' ), array($this, 'ebay_keyword_suggest_checkbox_field_0_render'), 'pluginPage', 'ebay_keyword_suggest_pluginPage_section' ); } Next in line in the `add_action` functions of `register_admin_menu` via `ebay_keyword_suggest_add_admin_menu` public function ebay_keyword_suggest_add_admin_menu() { add_options_page( 'eBay Keyword Suggest', 'eBay Keyword Suggest', 'manage_options', 'ebay_keyword_suggest', array($this, 'ebay_keyword_suggest_options_page') ); } Then we get to this line: `add_action( 'admin_enqueue_scripts', array( $plugin_admin, 'enqueue_localize' ) );` public function enqueue_localize( $hook ) { $getoption = get_option( 'ebay_keyword_suggest_settings' ); $enabled = $getoption['ebay_keyword_suggest_checkbox_field_0']; wp_localize_script( $this->plugin_name, 'ekw_script_vars', array( 'enabled' => __($enabled) ) ); } As you can see the first instance of `get_option` is initiated here under the variable `$getoption`... doing a `var_dump` always returns `false` (and of course `wp_localize_script` does not work properly as it is not getting the proper option variable. Getting this working in a single php file was very easy with a combination of `add_action`'s above the functions and a simple initiation of `register_setting( 'pluginPage', 'title_char_count_settings' );` followed by retrieving the setting with just simple `get_option( 'title_char_count_settings' );` This OOP approach is a lot more tricky... I have to be *close* I'm thinking.. where is the hiccup in this? [1]: https://github.com/DevinVinson/WordPress-Plugin-Boilerplate/tree/master/plugin-name