如果不需要回复,如何使用Wordpress wp_remote_post?

时间:2018-08-27 14:38:41

标签: php wordpress contact-form-7

使用wp_remote_post将表单数据(Contact Form 7)发送到外部API(CRM)。 API很繁重(检查电子邮件,确认信等),所以我不希望PHP在等待响应时阻止任何进程(我根本不需要响应,只需发送即可)。

即使使用'blocking' => false,它仍然可以实现-如果我在外部API上激活确认电子邮件,则Wordpress用户需要等待几秒钟才能处理表单。

我在做什么错? :)代码:

// POST-request to API
wp_remote_post('http://crm.site.com/get_record', array(
    'timeout' => 5,
    'redirection' => 5,
    'httpversion' => '1.0',
    'blocking' => false,
    'headers' => array() ,
    'body' => $send_data,
    'cookies' => array()
));

1 个答案:

答案 0 :(得分:3)

我认为这里缺少方法,请添加方法并尝试

   $response = wp_remote_post('http://crm.site.com/get_record', array(
    'method' => 'POST',
    'timeout' => 5,
    'redirection' => 5,
    'httpversion' => '1.0',
    'blocking' => false,
    'headers' => array() ,
    'body' => $send_data,
    'cookies' => array()
   ));

并检查响应:

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>';
}