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
);
}
}
?>