TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

Как подключиться к Contact Form 7 перед отправкой формы

75

Я должен был сделать это, чтобы предотвратить отправку электронной почты. Надеюсь, поможет.

/* Prevent the email sending step for specific form */ add_action("wpcf7_before_send_mail", "wpcf7_do_something_else"); function wpcf7_do_something_else($cf7) { // get the contact form object $wpcf = WPCF7_ContactForm::get_current(); // if you wanna check the ID of the Form $wpcf->id if (/*Perform check here*/) { // If you want to skip mailing the data, you can do it... $wpcf->skip_mail = true; } return $wpcf; }

Этот код предполагает, что вы используете последнюю версию CF7. Ваш код, указанный выше, работал до тех пор, пока пару месяцев назад они не провели некоторый рефакторинг кода. [28 апреля 2015 г.]

Я хотел бы добавить, что вы можете просто использовать wpcf7_skip_mailфильтр:

add_filter( 'wpcf7_skip_mail', 'maybe_skip_mail' ); function maybe_skip_mail( $skip_mail, $contact_form) { if( /* your condition */) $skip_mail = true; return $skip_mail; }, 10, 2 );

Начиная с WPCF7 5.2 wpcf7_before_send_mailловушка сильно изменилась. Для справки, вот как работать с этим хуком в 5.2+

Пропустить почту

function my_skip_mail() { return true; // true skips sending the email } add_filter('wpcf7_skip_mail','my_skip_mail');

Или добавьте skip_mailна вкладку «Дополнительные настройки» в форме в админке.

Получение идентификатора формы или идентификатора сообщения

function wpcf7_before_send_mail_function( $contact_form, $abort, $submission) { $post_id = $submission->get_meta('container_post_id'); $form_id = $contact_form->id(); // do something return $contact_form; } add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_function', 10, 3 );

Получить данные, введенные пользователем

function wpcf7_before_send_mail_function( $contact_form, $abort, $submission) { $your_name = $submission->get_posted_data('your-field-name'); // do something return $contact_form; } add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_function', 10, 3 );

Отправить письмо динамическому получателю

function wpcf7_before_send_mail_function( $contact_form, $abort, $submission) { $dynamic_email = 'email@email.com'; // get your email address... $properties = $contact_form->get_properties(); $properties['mail']['recipient'] = $dynamic_email; $contact_form->set_properties($properties); return $contact_form; } add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_function', 10, 3 );
Источник записи: newbedev.com
Leave A Reply

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. ПринимаюПодробнее