Intereting Posts
Как сортировать категорию по пользовательскому значению поля Как я могу группировать сообщения по дате на главной странице? Структура Permalink, не работающая с пользовательской таксономией (URL как ./taxonomy/category/postname) Отправить другу по электронной почте для каждого сообщения типа персонализированного сообщения на странице the_tags (): отображение тегов по порядку, в котором они введены в бэкэнд, а не в алфавитном порядке rewrite, чтобы указать название категории тура / категории-категории в уже переписанную родительскую категорию URL-адреса / название какой-либо категории Расписание мероприятия каждую вторую четверть месяца API-интерфейс WordPress и функция обратного вызова для шрифтов (все шрифты Google через API) Изменить боковую панель для перезаписи страницы WP User Meta в URL-адресе QR-кода the_category () не работает в цикле wp_query динамическая домашняя страница в зависимости от роли пользователя Вызов динамической боковой панели по имени не ID URL-адрес WordPress не работает? Ошибка загрузки темы

Функция обратного вызова register_settings удаляет данные

Я зарегистрировал настройку с функцией обратного вызова:

register_setting( 'my-plugin-settings-group', 'notification_email', 'email_validation' ) 

и функция обратного вызова выглядит так:

 function email_validation($data) { if (null == $data) { add_settings_error( 'requiredTextFieldEmpty', 'empty', 'Notification Email cannot be empty', 'error' ); } else { if (!is_email($data)){ add_settings_error( 'requiredTextFieldEmpty', 'empty', 'Notification Email is not valid email address', 'error' ); } else { return $data; } } } 

Проверка работает нормально, но когда она терпит неудачу (пустое поле или недействительный адрес электронной почты), он удаляет данные из этого поля.

Есть ли способ предотвратить это?

Solutions Collecting From Web of "Функция обратного вызова register_settings удаляет данные"

в случае неправильного значения функция должна вернуть исходное значение, а затем попробовать следующее:

 function email_validation($data, $option, $original_value) { if (null == $data) { add_settings_error( 'requiredTextFieldEmpty', 'empty', 'Notification Email cannot be empty', 'error' ); return $original_value; } else { if (!is_email($data)){ add_settings_error( 'requiredTextFieldEmpty', 'empty', 'Notification Email is not valid email address', 'error' ); return $original_value; } else { return $data; } } }