簡體   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