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