Settings'; array_unshift($links, $settings_link); return $links; } /** * Creates settings options */ function hubspot_build_settings_page () { global $pagenow; $options = get_option('hs_settings'); register_setting( 'hubspot_settings_options', 'hs_settings', array($this, 'sanitize') ); add_settings_section( 'hubspot_settings_section', '', array($this, 'hs_settings_section_heading'), HUBSPOT_TRACKING_CODE_ADMIN_PATH ); add_settings_field( 'hs_portal', 'Hub ID', array($this, 'hs_portal_callback'), HUBSPOT_TRACKING_CODE_ADMIN_PATH, 'hubspot_settings_section' ); } function hs_settings_section_heading ( ) { $this->print_hidden_settings_fields(); } function print_hidden_settings_fields () { // Hacky solution to solve the Settings API overwriting the default values $options = get_option('hs_settings'); $hs_installed = ( isset($options['hs_installed']) ? $options['hs_installed'] : 1 ); $hs_version = ( isset($options['hs_version']) ? $options['hs_version'] : HUBSPOT_TRACKING_CODE_PLUGIN_VERSION ); printf( '', $hs_installed ); printf( '', $hs_version ); } /** * Sanitize each setting field as needed * * @param array $input Contains all settings fields as array keys */ public function sanitize ( $input ) { $new_input = array(); $options = get_option('hs_settings'); if ( isset($input['hs_portal']) ) $new_input['hs_portal'] = sanitize_text_field($input['hs_portal']); if ( isset($input['hs_installed']) ) $new_input['hs_installed'] = sanitize_text_field($input['hs_installed']); if ( isset($input['hs_version']) ) $new_input['hs_version'] = sanitize_text_field($input['hs_version']); return $new_input; } /** * Prints Hub ID input for settings page */ function hs_portal_callback () { $options = get_option('hs_settings'); $hs_portal = ( isset($options['hs_portal']) && $options['hs_portal'] ? $options['hs_portal'] : '' ); printf( '', $hs_portal ); } } ?>