He personalizado un complemento para hacer algunas llamadas ajax a admin-ajax.php y funciona muy bien. He copiado el código a otro sitio y ya no funciona para los usuarios que no estén conectados enWordpress admin-ajax resultados en el error 302 redirigir
De Firebug:.
POST http://<subdomain>.<server>/wp-admin/admin-ajax.php 302 Moved Temporarily 1.08s
GET http://<subdomain>.<server>/ 200 OK
edición: La pregunta es ¿qué podría un tema posiblemente hacer para redirigir solicitudes de ajax El plugin tiene dos ganchos:
add_action('wp_ajax_em_ajax_getEvents', 'em_ajax_getEvents'); // ajax for logged in users
add_action('wp_ajax_nopriv_em_ajax_getEvents', 'em_ajax_getEvents'); // ajax for not logged in users
Ambos funcionan bien en la mayoría de los sitios, pero un tema redirige las peticiones de los usuarios no se haya identificado de alguna manera. Como estas acciones son específicas del complemento, no sé dónde comenzar a buscar.
SOLUCIÓN: Muchas gracias a Ronald Huereca para la solución add_action('init'
, eso es exactamente donde la redirección infractor fue enganchando, en un intento de proteger el área de administración. Ahora solo necesito encontrar una solución segura aquí que no comprometa el área de administración del tema, pero que no obstaculice que otros complementos permitan que los usuarios realicen solicitudes ajax anónimas.
// stop users accessing the admin
add_action('init', array($this, 'prevent_admin_access'), 0);
function prevent_admin_access() {
if (strpos(strtolower($_SERVER['REQUEST_URI']), '/wp-admin') !== false) {
$current_user = wp_get_current_user();
if(!user_can($current_user->ID, 'administrator') && (!user_can($current_user->ID, 'contributor'))){
wp_redirect(get_option('siteurl'));
}
}
}
La pregunta no dice nada sobre el problema. Elaborar. – ThinkingMonkey
Disculpe, el problema es que no tengo idea de qué podría redirigir las solicitudes de AJAX a admin-ajax.php Las acciones son mías, funcionan bien, entonces ¿dónde podría uno "ponerse en el camino" para causar esa redirección? – Sinetheta
Por favor, ignore (eliminar comentario no funciona; ( –