Как я могу исправить контактную форму 7, не отправляющую сообщение после отключения Rest Api?

#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. Я с вами не спорю. Но это был не твой вопрос.