Así que estoy usando esta configuración para una llamada AJAX en el área administrativa ( como esta ):
add_action( 'admin_head', 'ajaxPerNgg' );
function ajaxPerNgg(){ ?>
<script type="text/javascript" >
jQuery(document).ready(function() {
jQuery("#message").remove();
jQuery("#errore a#attivo").click(
function(){
var data = {
action: 'my_action'
};
jQuery.post(ajaxurl, data, function(response) {
if(response == "attivato")
jQuery("#errore a#inattivo").attr("id","completato").html("Attivato");
else
jQuery("#errore a#inattivo").attr("id","attivo").html("Attivalo ora");
});
}
);
});
</script>
<?php }
add_action('wp_ajax_my_action', 'my_action_callback');
function my_action_callback() {
echo 'attivato';
die();
}
Es solo un código de prueba, pero siempre devuelve 0 en lugar de la cadena "attivato". También encuentra la url ajax correctamente, sin un error 404.
¿Cuál es el problema?
wp_ajax_my_action
Resolví mi problema, el sufijo de la parte "my_action" debe coincidir con la acción utilizada en la publicación jQuery. Veo que el tuyo coincide, así que ese no es el problema en tu caso. También lo tengo funcionando desde la página de administración, que es lo que estás tratando de hacer. ¿Estás conectado cuando intentas hacer esta llamada ajax? ¿O estás desconectado?