我有一个插件,我写的是我想与Contact Form 7进行互动。 在我的插件中,我添加了以下操作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;
}
我提交了联系表单,但add_action我没有做任何事情。 联系表格7时,我不确定如何使我的插件拦截或做某事 做点什么。任何,如何做到这一点的帮助?
答案 0 :(得分:20)
我必须这样做以防止发送电子邮件。希望它有所帮助。
new Thread(new Runnable() {
public void run() {
ServerAccessMobile serverAccessMobile = new ServerAccessMobile();
ArrayList <String> dataFromServer = **serverAccessMobile.getDataFromServer()**;
ArrayList <String> dataToSend = .....
serverAccessMobile.setDataOServer(dataToSend);
}
}).start();
此代码假定您运行上述代码的最新版本的CF7,直到几个月前他们去做并重新编写代码。 [4月28日&#39; 15]
答案 1 :(得分:9)
我想补充一点,您可以使用<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>
<div id="results"></div>
过滤器:
wpcf7_skip_mail
答案 2 :(得分:3)
自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 );
答案 3 :(得分:1)
您可以在其他设置中启用演示模式,这样可以防止发送电子邮件。请参阅下面的CF7文档。
如果您在其他设置字段中设置
demo_mode: on
,则为该联系人 表单将处于演示模式。在此模式下,联系表格将 跳过发送邮件的过程,只显示“已完成 成功“作为回应消息。