Невозможно выполнить скрипт после отправки контактной формы 7 - PullRequest
3 голосов
/ 08 февраля 2020

Когда я выполняю этот код, он ничего не делает, за исключением того, что под контактной формой появляется вращающаяся иконка, которая вращается вечно.

add_action( 'wpcf7_before_send_mail', 'process_contact_form_data' );

function process_contact_form_data( $contact_data ){

var_dump($contact_data->posted_data);
        $name = $contact_data->posted_data["your-name"];
        $email = $contact_data->posted_data["your-email"];

echo $name ;
echo $email;                

}

1 Ответ

1 голос
/ 09 февраля 2020

Вы не можете повторить вывод wpcf7_before_send_mail, потому что нет места, чтобы повторить его. Все процессы формы ajax.

Однако вы можете вывести его в error_log или в файл. Это пример вывода данных формы в журнал error_log.

add_action('wpcf7_before_send_mail', 'output_cf7_form_data');
function output_cf7_form_data(){
    // Call the form data from the static instance of the class
    $submission = WPCF7_Submission::get_instance();

    if ( $submission ) {
        // assign the posted data to an array
        $posted_data = $submission->get_posted_data();
        $name = $posted_data["your-name"];
    }
    // Use Output Buffering to print_r form data to the error log
    ob_start();
    print_r($posted_data);
    echo 'Posted Name is ' . $name;
    $body = ob_get_clean();
    error_log($body);
}

Если вы так склонны, вы можете изменить часть о внесении их в журнал ошибок и использовать fwrite для публикации информации в файл.

Если вы хотите посмотреть на этот Контактный формуляр 7 для API-интерфейса постоянного контакта , который я использовал для работы с API-интерфейсом постоянного контакта, вы можете увидеть, как я использую его перед отправкой почты. для захвата данных формы, но pu sh в API после завершения wpcf7_mail_sent, так что отправка формы не ожидает вызова API для fini sh, а пользователь не видит маленького ajax спиннер во время вызова API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...