Ограничьте контактную форму 7 крючком для определенной формы [закрыто]


Я использую фильтр контактной формы 7, чтобы принять действие после отправки электронного письма. Как я могу ограничить это действие только одной формой? На разных страницах есть несколько форм, и я не хочу, чтобы это действие выполнялось после каждой формы, только для одной конкретной формы.

Я попытался ограничить действие страницей, на которой в форме используется предложение if, но затем "действие" не завершается. Как только я удалю предложение if, действие сработает.

function foo() {

   if(is_page('bar') {

     // some action
    }
}
add_action( 'wpcf7_mail_sent', 'foo', 1 );
Author: chowwy, 2013-09-19

1 answers

Вы знаете идентификатор формы из шорткода, вы можете делать что-то только для этой конкретной формы. Вот пример кода для этого, просто замените $myform_id своим идентификатором формы:

add_action( 'wpcf7_mail_sent', 'wp190913_wpcf7' );

/**
 * Do stuff for my contact form form. This function shouldn't return aything
 * 
 * @param WPCF7_ContactForm $contact_form wpcf7 object, passed by refference
 */
function wp190913_wpcf7( $contact_form ) {

    // Not my desired form? bail
    if ( $contact_form->id !== $myform_id )
        return;

    // Do stuff for my contact form
}
 4
Author: Dan Ștefancu, 2013-09-19 18:13:03