【问题标题】:Unable to execute script after contact form 7 submit联系表格 7 提交后无法执行脚本
【发布时间】:2020-07-30 13:32:29
【问题描述】:

当我执行此代码时,它什么也不做,只是在联系表单下方出现一个旋转图标,该图标永远旋转。

add_action( 'wpcf7_before_send_mail', 'process_contact_form_data' );

function process_contact_form_data( $contact_data ){
    var_dump($contact_data->posted_data);
    $name = $contact_data->posted_data["your-name"];
    $email = $contact_data->posted_data["your-email"];

    echo $name ;
    echo $email;                
}

【问题讨论】:

  • 你想做什么?您无法回显输出,这不是获取表单数据的方式。
  • 最终目标实际上是在表单提交后将表单数据发送到我的 CRM 的 API 端点。此代码仅用于测试目的,看看我是否可以捕获数据。我很确定我从这里得到了这个代码,但是我不小心关闭了标签,我再也找不到它了。为什么我不能回显输出?至少如果错误不应该抛出错误?

标签: php wordpress contact-form-7


【解决方案1】:

您无法回显wpcf7_before_send_mail 的输出,因为没有地方可以回显它。表单过程都是ajax。

但是,您可以将其输出到 error_log 或文件中。这是将表单数据输出到error_log的示例。

add_action('wpcf7_before_send_mail', 'output_cf7_form_data');
function output_cf7_form_data(){
    // Call the form data from the static instance of the class
    $submission = WPCF7_Submission::get_instance();

    if ( $submission ) {
        // assign the posted data to an array
        $posted_data = $submission->get_posted_data();
        $name = $posted_data["your-name"];
    }
    // Use Output Buffering to print_r form data to the error log
    ob_start();
    print_r($posted_data);
    echo 'Posted Name is ' . $name;
    $body = ob_get_clean();
    error_log($body);
}

如果您愿意,可以更改将其放入错误日志的部分,并使用fwrite 将信息发布到文件中。

如果你想看看这个Contact Form 7 to Constant Contact API方法我曾经使用常量联系API,你可以看到我在发送邮件之前如何使用捕获表单数据,但在wpcf7_mail_sent完成后推送到API这样表单提交就不会等待 API 调用完成,并且在 API 调用发生时用户不会看到小 ajax 微调器。

【讨论】:

  • 链接已损坏。请重新发布正确的。
  • 该链接现在应该可以工作了...但是上面应该回答您的问题...是吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-07
  • 1970-01-01
相关资源
最近更新 更多