'string',
'show_in_rest' => false,
));
add_settings_field(
'okta-issuer-url',
'Okta Issuer URI',
function() { $this->optionsPageTextInputAction('okta-issuer-url', 'text', 'e.g. https://youroktadomain.okta.com/oauth2/default', 'Find your Issuer URI in the Admin console under Security -> API, or in the Developer console under API -> Authorization Servers'); },
'okta-sign-in-widget',
'okta-sign-in-widget-options-section'
);
register_setting('okta-sign-in-widget', 'okta-widget-client-id', array(
'type' => 'string',
'show_in_rest' => false,
));
add_settings_field(
'okta-widget-client-id',
'Sign-In Widget Client ID',
function() { $this->optionsPageTextInputAction('okta-widget-client-id', 'text', null, 'Register a "SPA" app in Okta and provide its Client ID here. Set the Login redirect URI in Okta to '.wp_login_url().', and set the Logout redirect URI to '.home_url().''); },
'okta-sign-in-widget',
'okta-sign-in-widget-options-section'
);
register_setting('okta-sign-in-widget', 'okta-allow-wordpress-login', array(
'type' => 'boolean',
'show_in_rest' => false,
));
add_settings_field(
'okta-allow-wordpress-login',
'Allow Native WordPress Login',
function() { $this->optionsPageCheckboxInputAction('okta-allow-wordpress-login', 'checkbox', 'Check this to allow local WordPress users to log in with a password. When unchecked, Okta will be the only way users can log in. Make sure you have a WordPress admin user with an email address matching an Okta user already.'); },
'okta-sign-in-widget',
'okta-sign-in-widget-options-section'
);
}
public function optionsMenuAction() {
add_options_page(
'Okta Sign-In Widget Options',
'Okta Sign-In Widget',
'manage_options',
'okta-sign-in-widget',
array($this, 'optionsPageAction')
);
}
public function optionsPageAction() {
if (current_user_can('manage_options')) {
include(plugin_dir_path(__FILE__)."../templates/options-form.php");
} else {
wp_die( 'You do not have sufficient permissions to access this page.' );
}
}
public function optionsPageTextInputAction($option_name, $type, $placeholder=false, $description=false) {
$option_value = get_option($option_name, '');
printf(
'',
esc_attr($type),
esc_attr($option_name),
esc_attr($option_name),
esc_attr($option_value),
esc_attr($placeholder)
);
if($description)
echo '
'.$description.'
'; } public function optionsPageCheckboxInputAction($option_name, $type, $description=false) { $option_value = get_option($option_name, false); printf( '', esc_attr($type), esc_attr($option_name), esc_attr($option_name), $option_value ? 'checked="checked"' : '' ); if($description) echo ''.$description.'
'; } }