Tried to make a simple redirect for some users I don’t want to access the wp-admin/, so I did this code:
function no_admin_access() {
if ( !current_user_can( 'delete_posts' ) ) {
wp_redirect( site_url( '/' ) ); exit;
}
}
add_action('admin_init', 'no_admin_access');
But when I then try to make a ajax request with those users, the that is also redirected so I never get to admin-ajax.php
Anybody who has a good work around for this ?
Thanks.
AJAX Code
$.ajax({
type: 'POST',
url: MyAjax.ajaxurl,
data: {
action: 'mux_ajax_delete_pix',
pid: $this.attr('data-id')
},
success: function(){
$this.parent().fadeOut();
}
});
You can and a check for the
DOING_AJAX
constant which is defined on an Ajax in your conditional check:i’m using below function and it is working fine for me
function remove_admin_access_for_non_editor() {
if ( is_admin() && ! current_user_can( 'edit_posts' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
wp_redirect( home_url() );
exit;
}
}
add_action( 'init', 'remove_admin_access_for_non_editor' );