Files
mahak-authenticate-bridge/settings-page.php
T

118 lines
3.9 KiB
PHP

<?php
add_action('admin_menu', function () {
add_options_page(
config('da.translations.settings-page-title'),
config('da.translations.settings-page-menu'),
'manage_options',
config('da.settings-page'),
'dabestaniha_authenticate_settings_page'
);
});
add_action('admin_init', function () {
foreach (config('da.options') as $configured => $options_key) {
register_setting(config('da.settings-group'), $options_key);
}
add_settings_section(
config('da.section-id'),
config('da.translations.section-id'),
null,
config('da.settings-page')
);
add_settings_field(
config('da.options.user-identifier'),
config('da.translations.user-identifier'),
function () {
$name = config('da.options.user-identifier');
$value = get_option($name, 'mobile');
$html = "<select name='$name'>";
foreach (config('da.user-identifiers') as $identifier) {
$selected = $value === $identifier ? "selected='selected'" : null;
$translate = config("da.translations.$identifier");
$html .= "<option value='$identifier' $selected>$translate</option>";
}
$html .= "</select>";
echo $html;
},
config('da.settings-page'),
config('da.section-id')
);
add_settings_field(
config('da.options.jwt-secret'),
config('da.translations.jwt-secret'),
function () {
$name = config('da.options.jwt-secret');
$value = esc_attr(get_option($name, ''));
echo "<input type='text' name='$name' value='$value' class='regular-text ltr' />";
},
config('da.settings-page'),
config('da.section-id')
);
add_settings_field(
config('da.options.login-route'),
config('da.translations.login-route'),
function () {
$name = config('da.options.login-route');
$value = esc_attr(get_option($name, config('da.login_route_default')));
echo '<div class="ltr" style="float: right; display: flex; align-items: center; gap: 5px;">';
echo '<span style="color: #666;">'.home_url('/').'</span>';
echo "<input type='text' name='$name' value='$value' class='regular-text' />";
echo '</div>';
},
config('da.settings-page'),
config('da.section-id')
);
add_settings_field(
config('da.options.after-login-route'),
config('da.translations.after-login-route'),
function () {
$name = config('da.options.after-login-route');
$value = esc_attr(get_option($name, config('da.after_login_route_default')));
echo '<div class="ltr" style="float: right; display: flex; align-items: center; gap: 5px;">';
echo '<span style="color: #666;">'.home_url('/').'</span>';
echo "<input type='text' name='$name' value='$value' class='regular-text' />";
echo '</div>';
},
config('da.settings-page'),
config('da.section-id')
);
$loginRouteOptionName = config('da.options.login-route');
add_filter("pre_update_option_{$loginRouteOptionName}", function ($value) {
return trim($value, '/');
});
$afterLoginRouteOptionName = config('da.options.after-login-route');
add_filter("pre_update_option_{$afterLoginRouteOptionName}", function ($value) {
return trim($value, '/');
});
});
function dabestaniha_authenticate_settings_page(): void
{
?>
<div class="wrap">
<h1><?= config('da.translations.settings-page-title') ?></h1>
<form method="post" action="options.php">
<?php
settings_fields(config('da.settings-group'));
do_settings_sections(config('da.settings-page'));
submit_button();
?>
</form>
</div>
<?php
}