[英]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 Snippet和functions.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.