联系表格 7 数据发送到 API

Posted

技术标签:

【中文标题】联系表格 7 数据发送到 API【英文标题】:Contact form 7 data sending to API 【发布时间】:2021-08-19 07:40:45 【问题描述】:

我想在提交时将我的 7 数据联系人发送到 API。为此,我使用了以下代码。

add_action('wpcf7_mail_sent','crazy_cf7_api_sender');

function crazy_cf7_api_sender( $contact_form )
    $title = $contact_form -> title;

    echo "Test";
    if( $title == 'Committee Club')
    
        $submission = WPCF7_Submission::get_instance();

        
        if( $submission )
            $posted_data = $submission->get_posted_data();
                $committee_club = $posted_data['committee-club'];
                $language = $posted_data['language'];
                $Intrest = $posted_data['Intrest'];

         
                $url = 'https://staging.walee.pk/api/tracking/newWordPressHook';

        $args = array(
'method' => 'POST',
'orderId' => 220,
);

$response = wp_remote_post( $url, $args );

// error check
if ( is_wp_error( $response ) ) 
   $error_message = $response->get_error_message();
   echo "Something went wrong: $error_message";

else 
   echo 'Response: <pre>';
   print_r( $response );
   echo '</pre>';

        
    

我得到了参考

https://www.youtube.com/watch?v=QOjpqHFM9v8

https://wp-kama.com/function/wp_remote_post

但是当我提交表单时,我收到以下错误消息:

code: "invalid_json", message: "响应不是有效的 json 响应。"

有人可以帮帮我吗?

谢谢

【问题讨论】:

以下是调试联系表单输出的方法 - ***.com/questions/60361457/… - 在我看来,您的问题似乎是您的 API 调用缺少正确的结构。 【参考方案1】:

您不应该在代码中使用echo 任何内容,因为钩子 wpcf7_mail_sent 在 Ajax 中被调用并且它需要 JSON 输出。

请删除任何echovar_dumpprint_r 或任何其他从您的代码中打印任何内容的内容

 echo 'Response: <pre>';
   print_r( $response );
   echo '</pre>';

【讨论】:

感谢@Andrea 重播。我删除了 echo 但我仍然收到同样的错误。 顶部还有echo "Test";。您需要删除所有 echo/var_dump/print_r 您还可以使用 Chrome 控制台或 Firefox 控制台检查对 ajax 的网络调用,以准确了解您正在打印的内容 我已经从文件中删除了所有的 echo 和 var 转储。现在错误已删除。请告诉我如何检查数据是否在 api 中发布?

以上是关于联系表格 7 数据发送到 API的主要内容,如果未能解决你的问题,请参考以下文章

将 JSON 发布请求发送到联系表 7

联系表格 7 WP 主题在提交时未发送输入的信息

发送电子邮件前打印一些数据(联系表格7)

付款后发送邮件 paypal 联系表 7

有没有办法查看联系表格将其内容发送到哪个电子邮件地址

联系表格提交到 Podio [关闭]