WP Ajax devuelve 0

wpajaxEn algunas ocasiones, es posible que WordPress nos devuelva 0 en una respuesta Ajax. ¿Por qué ocurre esto?

Si seguimos el tutorial que hice en su día para usar Ajax con WordPress, veremos que nos falta un detalle. Algo que fácilmente pasaremos por alto si estamos haciendo pruebas y logueados correctamente en la web.

Siguiendo con el ejemplo, esta línea esta mal. Bueno, no está mal, está incompleta:

add_action('wp_ajax_guardar_persona','guardar_persona_callback');

Esta línea añadirá la función Ajax correctamente al sistema… sólo para usuarios logueados. Pero tened en cuenta que el 99,9% de nuestras visitas están destinadas a ser de usuarios externos, que no tienen por qué loguearse en la web. Ellos recibirán un simple “0” como resultado.

¿Cuál es la solución? Añadir esta otra acción además de la que ya tenemos:

add_action('wp_ajax_nopriv_guardar_persona','guardar_persona_callback');

Añadiendo “nopriv” hacemos que la función Ajax pueda ser ejecutada por cualquiera, sin necesidad de estar logueado en el sistema. Esto debemos hacerlo para todos los “add_actions” referentes a wp_ajax. Siguiendo con el ejemplo del tutorial, nos quedaría:

add_action('wp_ajax_guardar_persona','guardar_persona_callback');
add_action('wp_ajax_nopriv_guardar_persona','guardar_persona_callback');

// Más adelante nos encontramos otra

add_action('wp_ajax_recargar_lista','recargar_lista_callback');
add_action('wp_ajax_nopriv_recargar_lista','recargar_lista_callback');

Con esto se soluciona el problema.

“Cuanto más sabes, más te das cuenta de que no sabes nada”
     .- Sócrates

¿Te ha gustado el artículo?
Sé el primero en calificar esta publicación.
1 Star2 Stars3 Stars4 Stars5 Stars
Loading...
Artículo escrito por

¡Exprésate! Dejanos tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *



Aún no hay comentarios en esta entrada. ¿Te animas?