gpt4 book ai didi

php - add_action( 'wpcf7_before_send_mail')不调用/ Hook 我的函数

转载 作者:行者123 更新时间:2023-11-29 18:19:14 29 4
gpt4 key购买 nike

我正在尝试从我们的 Contact7 表单之一发布数据,然后将该数据保存在 mysql 表中。我对 WordPress 很陌生。我遵循了其他人的代码。但我没有运气收到表中的数据。我觉得 add_action-wpcf7_before_send_mail 无法 Hook 我的函数,因为我在函数内部编写了拼写错误或遗漏的代码来测试它是否有效。但是当我从 WordPress 表单提交数据时没有显示错误。以下是我的代码,请评论任何可能有帮助的内容。谢谢!

add_action('wpcf7_before_send_mail','contactform7_before_send_mail',1);

function contactform7_before_send_mail( $contact_form ) {
$wpcf7_data->skip_mail = true;
global $wpdb;
$title = $contact_form->title();

$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
$formData = $submission->get_posted_data();
}

if ( 'Membership-2' == $title ) {
$name = $formData['your-name'];
$email = $formData['your-email'];
$company = $formData['your-company'];
$title = $formData['your-title'];
$location = $formData['your-location'];
}

$wpdb->insert('aoe84i5nxf_member_info', array('id' => null,'name' => $name,'email' => $email,'company' => $company,'title' => $title, 'location' => $location), array(null,'%s','%s','%s','%s','%d') );
}
remove_all_filters ('wpcf7_before_send_mail');

最佳答案

试试这个:

add_action('wpcf7_before_send_mail','contactform7_before_send_mail',1);

function contactform7_before_send_mail( $contact_form ) {

if ( !isset($contact_form->posted_data) && class_exists('WPCF7_Submission') ) {
$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
$formData = $submission->get_posted_data();
}
} else {
// We can't retrieve the form data
return $contact_form;
}

if ( 'Membership-2' == $contact_form->title() ) {
$contact_form->skip_mail = true;

$name = $formData['your-name'];
$email = $formData['your-email'];
$company = $formData['your-company'];
$title = $formData['your-title'];
$location = $formData['your-location'];

global $wpdb;
$wpdb->insert('aoe84i5nxf_member_info', array('id' => null,'name' => $name,'email' => $email,'company' => $company,'title' => $title, 'location' => $location), array(null,'%s','%s','%s','%s','%d') );
}

return $contact_form;

}

这对您的代码进行了一些更改:

  1. 检查我们是否可以检索表单提交数据。
  2. 更正了一些表单数据对象变量名称 ($wpcf7_data)。
  3. 确保仅在 Membership-2 表单提交时进行skip_mail 和数据库插入。
  4. 删除remove_all_filters行 - 这只会取消您的自定义函数,因此它永远不会运行。

关于php - add_action( 'wpcf7_before_send_mail')不调用/ Hook 我的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46733508/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com