Tôi đang tạo một plugin wordpress và tôi gặp sự cố khi thực hiện cuộc gọi cURL để hoạt động chính xác.Làm thế nào để bạn sử dụng curl trong các plugin wordpress?
phép nói rằng tôi có một trang www.domain.com/wp-admin/admin.php?page=orders
Trong trang đặt hàng Tôi có một chức năng trông để xem nếu một nút được nhấp vào và nếu do đó, nó cần phải thực hiện cuộc gọi cURL đến cùng một trang (www.domain.com/wp-admin/admin.php?page=orders & dosomething = true) để khởi động một chức năng khác. Lý do tôi làm theo cách này là vì vậy tôi có thể có cuộc gọi cURL này là không đồng bộ.
Tôi không nhận được bất kỳ lỗi nào, nhưng tôi cũng không nhận được bất kỳ phản hồi nào. Nếu tôi thay đổi url của mình thành google.com hoặc example.com, tôi sẽ nhận được phản hồi. Có một vấn đề xác thực hoặc một cái gì đó của bản chất đó có thể?
Mã của tôi trông giống như thế này .. Tôi đang sử dụng được, lặp lại và không thực hiện async chỉ để dễ dàng kiểm tra.
if(isset($_POST['somebutton']))
{
curlRequest("http://www.domain.com/wp-admin/admin.php?page=orders&dosomething=true");
}
if($_GET['dosomething'] == "true")
{
echo("do something");
exit;
}
function curlRequest($url) {
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
return($response);
}
Bạn sẽ cần có khả năng định tuyến tới máy chủ web của mình thông qua giao diện loopback. Có lẽ máy chủ web đã được cấu hình để chỉ lắng nghe trên một IP "công khai", và không phải trên một địa chỉ loopback như 127.0.0.1. Tôi đề nghị cố gắng một cái gì đó ngớ ngẩn như 'hệ thống (" ping www.domain.com ")' trong một kịch bản để xem nếu bạn thậm chí có thể tuyến đường đến máy chủ 'nội bộ'. – sarnold
Các curl hoạt động nếu tôi chỉ đi đến phần công cộng của wordpress .. aka www.domain.com. Nhưng nếu tôi cố gắng để có được admin (wp-admin) nó không đưa ra một phản ứng. – Jason
Nếu bạn đang tìm kiếm một quá trình không đồng bộ, tại sao không sử dụng ajax? cURL * là * đồng bộ (tức là tập lệnh php của bạn sẽ chặn cho đến khi cURL kết thúc). –