I have a plugin I am writing that I want to interact with Contact Form 7.
In my plugin I added the following action add_action
add_action("wpcf7_before_send_mail", "wpcf7_do_something_else");
function wpcf7_do_something_else(&$wpcf7_data) {
// Here is the variable where the data are stored!
var_dump($wpcf7_data);
// If you want to skip mailing the data, you can do it...
$wpcf7_data->skip_mail = true;
}
I submitted the contact form but the add_action I had did nothing.
I’m unsure how to make my plugin intercept or do something when Contact Form 7
does something. Any, help on how to do this?
I had to do this to prevent Email from being sent. Hope it helps.
This code assumes that you are running the latest version of CF7 your code above used to work until a couple months ago when they went and did some refactoring of the code. [Apr 28 ’15]
Since WPCF7 5.2 the
wpcf7_before_send_mail
hook has changed quite a lot. For reference, here is how to work with this hook in 5.2+Skip mail
Or add
skip_mail
to the Additional Settings tab on your form in the admin area.Getting the Form ID or Post ID
Get user inputted data
Send the email to a dynamic recipient
I’d like to add that you could just use the
wpcf7_skip_mail
filter:You can turn Demo Mode on in additional settings and this will prevent emails from being sent. See below from the CF7 Docs.
If you want to prevent email from being sent, use this code. This code will work if you are using latest version of WPCF7