#php #wordpress
#php #wordpress
Вопрос:
Я разрабатываю плагин WordPress и довольно новичок в WordPress. Я ищу способ показывать пользовательские сообщения об ошибках на основе некоторой логики на странице настроек плагина в wp-admin
У меня эта форма отображается в wp-admin
<form method="post" action="options.php" autocomplete="off">
<?php
// This prints out all hidden setting fields
settings_fields('iskills_pros_and_cons');
// output setting sections based on tab selections
if ($active_tab == 'global') {
do_settings_sections('iskills_pros_and_cons_default');
} else if ($active_tab == 'heading') {
do_settings_sections('iskills_pros_and_cons_heading');
} else if ($active_tab == 'section') {
do_settings_sections('iskills_pros_and_cons_body');
} else if ($active_tab == 'button') {
do_settings_sections('iskills_pros_and_cons_button');
} else {
do_settings_sections('iskills_pros_and_cons_icons');
}
submit_button();
?>
</form>
Я хочу, чтобы при отправке формы я мог проверить активную вкладку, и если активная вкладка является глобальной, то выполните некоторые проверки, если эти проверки не прошли, тогда я хочу отправить ошибки обратно на ту же страницу настроек. Может кто-нибудь подсказать мне, как лучше достичь этого в WordPress? любая помощь в этом отношении будет высоко оценена.
Ответ №1:
Я использовал метод очистки для выполнения пользовательской проверки, в случае сбоя возвращал ошибку
public function sanitize($input) {
if(true) {
// There is an error
add_settings_error( 'general', 'settings_updated', __( "Message" ), 'error' );
set_transient( 'settings_errors', get_settings_errors(), 30 );
// Redirect back to the settings page that was submitted.
$goback = add_query_arg( 'settings-updated', 'true', wp_get_referer() );
wp_redirect( $goback );
exit;
}
}