#php #wordpress #rest
Вопрос:
Я отключил rest API в WordPress для пользователей, не вошедших в систему, с помощью этих кодов. Как я могу исправить контактную форму 7, не отправляющую сообщения сейчас, изменив код?
//Disable rest api for non-logged in users
add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $resu<
}
if ( ! is_user_logged_in() ) {
return new WP_Error( 'rest_not_logged_in', 'Not logged in.', array( 'status' => 401 ) );
}
return $resu<
});
Ответ №1:
Вы можете изменить свое второе заявление if, чтобы разрешить прохождение контактной формы 7, проверив, прошел ли глобальный $_POST _wpcf7
.
//Disable rest api for non-logged in users
add_filter( 'rest_authentication_errors', function( $result ) {
if ( ! empty( $result ) ) {
return $resu<
}
if ( ! is_user_logged_in() amp;amp; empty($_POST['_wpcf7']) ) {
return new WP_Error( 'rest_not_logged_in', 'Not logged in.', array( 'status' => 401 ) );
}
return $resu<
});
Комментарии:
1. Это работает, но после использования этого подтверждения «сообщение успешно отправлено» больше не появляется.
2. Ваш вопрос состоял в том, как исправить отправку электронного письма. Ваш дополнительный вопрос именно в этом. Другой вопрос.
3. Форма работает, и только я знаю это. Человек, отправляющий сообщение, не знает об этом, так как нет всплывающего окна подтверждения.
4. Я с вами не спорю. Но это был не твой вопрос.