¿Cómo se usa el rizo dentro de los plugins de wordpress?

Estoy creando un plugin de wordpress y tengo problemas para que una llamada CURL funcione correctamente.

Digamos que tengo una página www.domain.com/wp-admin/admin.php?page=orders

Dentro de la página de pedidos, tengo una función que busca ver si se hizo clic en un botón y, de ser así, tiene que hacer una llamada a la misma página (www.dominio.com/wp-admin/admin.php?page=orders&dosomething= verdadero) para iniciar una función diferente. La razón por la que lo hago de esta manera es para que pueda hacer que esta llamada cURL sea asíncrona.

No estoy recibiendo ningún error, pero tampoco estoy recibiendo respuesta alguna. Si cambio mi url a google.com o example.com obtendré una respuesta. ¿Existe un problema de autenticación o algo de esa naturaleza posiblemente?

Mi código tiene un aspecto similar al siguiente. Estoy utilizando Get Eps, y no haciendo async solo por la facilidad de las pruebas.

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); } 

Se supone que no debes usar CURL en los complementos de WordPress.

En su lugar, use la función wp_ para emitir solicitudes HTTP, por ejemplo,

 function wp_plugin_event_handler () { $url = 'http://your-end-point'; $foo = 'bar'; $post_data = array( 'email' => urlencode($foo)); $result = wp_remote_post( $url, array( 'body' => $post_data ) ); } add_action("wp_plugin_event", "wp_plugin_event_handler"); 

En el pasado me he encontrado con problemas en los que los controladores de eventos de los complementos de WordPress se colgaban con CURL. El uso de las funciones WP_ en su lugar funcionó como se esperaba.

La sección de administración del blog está protegida por contraseña, por supuesto. Tendrá que pasar datos de autenticación. Busque la autenticación http para más detalles. Mira específicamente aquí:

http://www.php.net/manual/en/function.curl-setopt.php

Querrá configurar la opción CURLOPT_USERPWD y posiblemente CURLOPT_HTTPAUTH.