Sto creando un plugin per wordpress e sto riscontrando problemi nel far funzionare correttamente una chiamata cURL.Come si usa il ricciolo nei plugin di wordpress?
Diciamo che ho una pagina www.domain.com/wp-admin/admin.php?page=orders
All'interno della pagina degli ordini Ho una funzione che sembra per vedere se un pulsante è stato cliccato e se quindi ha bisogno di fare una chiamata cURL alla stessa pagina (www.domain.com/wp-admin/admin.php?page=orders & dosomething = true) per dare il via a una funzione diversa. Il motivo per cui lo sto facendo in questo modo è che posso avere questa chiamata cURL come asincrona.
Non ricevo errori, ma non ricevo risposta. Se cambio il mio URL su google.com o example.com, riceverò una risposta. C'è forse un problema di autenticazione o qualcosa del genere?
Il mio codice è simile a questo .. Sto usando gets, echos e non facendo async solo per la facilità del test.
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);
}
Avrete bisogno di essere in grado di instradare al vostro webserver tramite un'interfaccia di loopback. Forse il server web è stato configurato per l'ascolto solo su un IP "pubblico" e non su un indirizzo di loopback come 127.0.0.1. Suggerisco di provare qualcosa di stupido come 'system (" ping www.domain.com ")' in uno script per vedere se è possibile persino indirizzare l'host 'internamente'. – sarnold
Il ricciolo funziona se vado semplicemente nella parte pubblica del wordpress .. alias www.domain.com. Ma se provo ad arrivare all'amministratore (wp-admin) non dà una risposta. – Jason
Se stai cercando un processo asincrono, perché non usare ajax? cURL * è * sincrono (cioè il tuo script php bloccherà fino al termine di cURL). –