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

sor*_*tas 2 php wordpress contact-form-7

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

\n\n

尽管如此,即使'blocking' => false它确实 \xe2\x80\x94 如果我在外部 API 上激活确认电子邮件,Wordpress 用户也需要等待几秒钟才能处理表单。

\n\n

我究竟做错了什么?:) 代码:

\n\n
// POST-request to API\nwp_remote_post('http://crm.site.com/get_record', array(\n    'timeout' => 5,\n    'redirection' => 5,\n    'httpversion' => '1.0',\n    'blocking' => false,\n    'headers' => array() ,\n    'body' => $send_data,\n    'cookies' => array()\n));\n
Run Code Online (Sandbox Code Playgroud)\n

Bij*_*Oli 5

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

   $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()
   ));
Run Code Online (Sandbox Code Playgroud)

并检查响应:

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>';
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么方法本身发出post请求时还需要指定方法,我的意思是默认已经是POST了,这不是多余的吗? (2认同)