繁体   English   中英

wp_login 钩子不会将发布请求发送到不同的域

[英]wp_login hook does not send post request to different domain

我在我的 WordPress 站点中wp_login了 wp_login。 它包含向不同域发送 POST 请求的工作代码。 此代码已在不同的 php 服务器和 Postman 应用程序上进行了测试。

我曾尝试使用Code Snippet插件,并尝试在functions.php文件中直接使用它。 在这两种情况下都没有运气。

另外,我知道它被执行了,因为如果我在那里粘贴一些无效代码,我会得到一个异常(在函数内部)。

问题是 WordPress 中的钩子不发送 POST 请求。 所以,我想知道 WordPress 是否有一些设置不允许它向不同的域发送请求?

这是我在Code Snippetfunctions.php中尝试的代码:

if ( ! function_exists( 'notifyERP5' ) ) {
function notifyERP5($user_login, $user) {
        $Session = 'test session id';
        $url = 'https://xxx.xxx.xxx.xxx/api/users/setup';
      
        $Id = $user->ID;
    $data = array(  "session" => $Session,
            "username" => $user_login,
            "user_id" => $Id);

        $query = json_encode($data);
        $ch    = curl_init();
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
        curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
        $response = curl_exec($ch);
        curl_close($ch);
    
   }
add_action('wp_login', 'notifyERP5', 10, 2);
}

再次:此 function 在不同的 php 服务器上进行了测试,并与来自不同机器的 Postman 应用程序进行了测试,并且可以正常工作。

你能告诉我在哪里看吗? 为什么这个钩子在wp_login

使用给定的 POST 请求配置,如果目标机器没有 SSL 证书,或者有开发 SSL 证书,它将不会通过。 而且,在没有SSL的情况下测试过,还是不行。

结论:目标机器必须具有有效的 SSL 证书。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM