我想将表单保存到WP数据库中的自定义表中。仍应发送电子邮件。
我有read this post 并想出了下面的代码,这是目前在我的主题function.php
文件:
add_action( \'wpcf7_before_send_mail\', \'process_form\' );
function process_form( $cf7 )
{
global $wpdb;
if($cf7->posted_data[\'_wpcf7\'] == 20) {
$wpdb->insert(\'newsletter_signups\',
array(
\'name\'=>$cf7->posted_data[\'name\'],
\'email\'=>$cf7->posted_data[\'email\']
)
);
}
}
如果我接受
insert
超出
if
-语句,并给它指定固定值,它将保存到数据库中。但是,如果我像上面那样做,它不会保存到表中。现在我假设这是因为它没有收到任何数据。我不知道如何调试它接收的变量,因为这是一个ajax请求。如果我
print_r($cf7)
它在“我的元素检查器”或“网络”选项卡(在Chrome中)上不显示任何内容。因此,我有两个问题:
- 如何调试传递到此处的变量如何更改此函数以便它进行处理
最合适的回答,由SO网友:Robert hue 整理而成
联系表7更改了3.9版本中的课程。现在情况就是这样。
add_action( \'wpcf7_before_send_mail\', \'process_form\' );
function process_form( $cf7 ) {
$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
$posted_data = $submission->get_posted_data();
}
if( $cf7->id() == 20 ) {
$wpdb->insert(\'newsletter_signups\',
array(
\'name\' => $posted_data[\'name\'],
\'email\' => $posted_data[\'email\']
)
);
}
}
了解更多信息
change here.