I have customized a plugin to make some ajax calls to admin-ajax.php and it works great. I copied the code over to another site and it no longer works for users who are not logg
I know this is still a old question but you can have a look.
LETS DO THE CODE FASTER IF NOT INTERESTED ON EXPLANATION:
function redirect_non_admin_user(){
if ( !defined( 'DOING_AJAX' ) && !current_user_can('administrator') ){
wp_redirect( site_url() ); exit;
}
}
add_action( 'admin_init', 'redirect_non_admin_user' );
EXPLANATION: The reason for this problem is that either some of the installed plugins are redirecting the non admin users to homepage or any pages when they try to access wp-admin like http://localhost/project/wp-admin . So this causing the problems .
SO when you redirecting non admins from accessing admin ,you can use the following code.This will also work in admin ajax call in frontend.