Intereting Posts
Получите верхние идентификаторы страниц из меню и пройдите через их дочерние страницы на скроллере API настроек в Multisite – Отсутствует сообщение об обновлении Нужно ли мне поле nonce для каждого мета-поля, которое я добавляю к своему настраиваемому администратору типа сообщения? Последовательное создание более 1000 сообщений вызывает 404? Изменение порядка пользовательской таксономии Пользовательский отбор для изменения типа сообщения больше и длина выдержки Как отфильтровать поиск в WordPress, за исключением сообщений в некоторых пользовательских таксономии? Почему минимальная защита защищена? Ребенок и редактор Jetpack Как я могу присвоить стиль только тогда, когда конкретный виджет активен? WordPress: как получить текущий зарегистрированный URL-адрес страницы автора? Как сохранить изменения PHP при обновлении WordPress? Пользовательский тип сообщения, не отображающий все записи Как сделать поиск в WordPress приоритетным для названий страниц? Файлы SVG не загружаются с момента последнего обновления WP

Ошибки проверки обновления блока

Я пытаюсь проверить, как пользователи формы при обновлении данных профиля. Я подключился к user_profile_update_errors. Он правильно печатает ошибки пользователю, однако он по-прежнему позволяет использовать ошибки в профиле пользователя. Отображаемые ошибки фактически не применяются.

Как я могу препятствовать сохранению записей из заданного профиля и блокировать их?

благодаря

function tml_profile_errors( $errors ) { if ( empty( $_POST['state'] ) ) $errors->add( 'empty_missing_', '<strong>ERROR</strong>: Please enter your state.' ); return $errors; } add_filter( 'user_profile_update_errors', 'tml_profile_errors' ); 

Solutions Collecting From Web of "Ошибки проверки обновления блока"

Решение:

Во-первых, Jeff Farthing из темы-my-login указал, что я использовал add_filter вместо add_action и помог создать первый код ниже, однако он все еще имеет ту же проблему, поэтому это шаг в правильном направлении, но не мое решение:

 function tml_profile_errors( &$errors ) { if ( empty( $_POST['state'] ) ) $errors->add( 'empty_missing_', '<strong>ERROR</strong>: Please enter your state.' ); } add_action( 'user_profile_update_errors', 'tml_profile_errors' ); 

Во-вторых, я добавил тот же шаг проверки внутри моих действий «personal_options_update» и «edit_user_profile_update», используя приведенный ниже код. Поскольку это выполняется во время шага сохранения, это предотвратит сохранение пользователем и недопустимое значение. Есть гораздо больше полей, чем просто «состояние» для формы, поэтому в приведенном ниже примере используется вложенный, а не оператор &&:

 function tml_edit_user_profile_update( $user_id ) { if ( current_user_can('edit_user',$user_id) ) { if ( !empty( $_POST['state'] ) ) update_user_meta( $user_id, 'state', $_POST['state'] ); } } add_action('personal_options_update', 'tml_edit_user_profile_update'); add_action('edit_user_profile_update', 'tml_edit_user_profile_update');