首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将函数调用限制为页面加载,但不限制ajax调用

将函数调用限制为页面加载,但不限制ajax调用
EN

WordPress Development用户
提问于 2014-08-20 21:31:40
回答 1查看 605关注 0票数 1

我使用以下方法阻止订阅者(和客户)访问我的站点的管理区域:

代码语言:javascript
运行
复制
/**
 * 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)。显然,除非您拥有“编辑-posts”特权,否则呼叫暂停和结帐不能继续进行,这显然有悖于目的。

我的问题是:是否可以设置一个条件来处理像admin_init这样的早期调用,该调用允许ajax调用通过,但不允许将管理后端作为页面加载?

(如果标题不清楚,很抱歉--很难融入一个句子!)

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2014-08-20 23:42:33

检查常量DOING_AJAX。当有人使用WordPress AJAX时,总是定义它。

代码语言:javascript
运行
复制
if ( defined( 'DOING_AJAX' ) && DOING_AJAX )
    return;

if ( is_admin() )
    add_action( 'admin_init', 'xcsn_redirect_from_admin' );
票数 2
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/158576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档