POST /wp-admin/admin-ajax.php error 400

Esta semana he tenido un error que me parecía un poco extraño, algunos usuarios me reportaban que no funcionaba correctamente un plugin de una de las webs que administro, pero otros me decían que si, y a mí me funcionaba correctamente, hasta que descubrí un patrón.

A los usuarios que les daba error no estaban logados, por lo que obviamente era problema de permisos.

La funcionalidad en concreto era una llamada Ajax a una función de un custom plugin desarrollado en WP, y en consola podíamos encontrar el siguiente error:

POST /wp-admin/admin-ajax.php error 400

Solucionarlo es realmente sencillo, deberemos cambiar:

add_action('wp_ajax_my_action', 'my_action');



Por

add_action('wp_ajax_nopriv_my_action', 'my_action');


Espero os resulte de ayuda!