我使用以下方法阻止订阅者(和客户)访问我网站的管理区域:
/**
* 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)。除非您拥有“编辑帖子”权限,否则通话暂停,签出无法继续,这显然违背了目的。
My question: 是否可以设置一个条件来处理早期调用,如admin_init
这将允许ajax调用通过,但不允许将管理后端加载为页面?
(如果标题不清楚,很抱歉-很难用一句话来表达!)