Ограничение вызова функции на загрузку страницы, но не вызов ajax

Я использую следующее, чтобы остановить подписчиков (и клиентов) от доступа к области администрирования моего сайта:

/** * Redirect back to homepage and not allow access to WP admin for Subscribers. */ function xcsn_redirect_from_admin(){ if ( ( ! current_user_can( 'edit_posts' ) ) && ( ! is_checkout() ) ){ wp_redirect( site_url() ); exit; } } add_action( 'admin_init', 'xcsn_redirect_from_admin' ); 

Он отлично работает, за исключением того, что он вмешивается в вызов ajax, который делает моя страница оформления (WooCommerce). Зал вызовов и проверка не могут быть выполнены, если у вас нет привилегий «edit-posts», которые, очевидно, побеждают цель.

Мой вопрос: можно ли установить условие, которое будет работать с ранним вызовом, например admin_init , который позволит вызовам ajax пройти, но не позволит admin_init администратора как страницу?

(Извините, если заголовок неясен – трудно вписаться в одно предложение!)

Solutions Collecting From Web of "Ограничение вызова функции на загрузку страницы, но не вызов ajax"