Intereting Posts
Как создать универсальную галерею и улучшить административную сторону управляющих галерей? Запретный вкладчик просматривает черновики Захваты для запуска после обновления ядра? Измените значения галереи numberposts Поддомен WordPress wp-admin перенаправляется в основной домен Как реализовать систему друзей для WordPress? отображать подкатегории, связанные с каждым сообщением на странице архива категорий Добавить пользовательскую HTML-страницу в сообщениях query_posts и разбиение на страницы, все еще застрявшие после много исследований Условный Javascript на основе версии WP wp_nav_menu: проверьте, имеет ли элемент списка дочерние элементы и добавляет ссылку на привязку класса Плагин 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; } } }