98 lines
3.2 KiB
PHP
98 lines
3.2 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 () {
|
|
|
|
register_setting(config('da.settings-group'), config('da.options.jwt-secret'));
|
|
register_setting(config('da.settings-group'), config('da.options.user-identifier'));
|
|
register_setting(config('da.settings-group'), config('da.options.login-route'));
|
|
|
|
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')
|
|
);
|
|
|
|
$loginRouteOptionName = config('da.options.login-route');
|
|
add_filter("pre_update_option_{$loginRouteOptionName}", 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
|
|
}
|
|
|