根据他们购买的产品向商店经理隐藏一些用户和客户

问题描述

这是我的问题。我希望你能帮忙,因为我有点卡(不擅长 PHP ......)。

我建立了一个体育学校网站,允许客户购买会员资格。为此,我使用了WooCommerce会员订阅

开设课程的体育项目是柔道和足球,两位老师只是他们自己体育课程的店长。出于显而易见的原因,他们都不需要看到彼此的学生(作为客户和用户)、彼此学生的订单,甚至彼此的产品。

我已经处理过产品和订单。

每位经理都会看到他创建的产品。如果需要,管理员可以在创建产品后授予这种所有权。这是我从网上借来的代码

/*Add authorship to products*/

add_action('init','function_to_add_author_woocommerce',999 );
function function_to_add_author_woocommerce() {
    add_post_type_support( 'product','author' );
}

/*Keep only the current logged in user products,except for admins*/

add_action( 'pre_get_posts','admin_pre_get_posts_product_query' );
function admin_pre_get_posts_product_query( $query ) {
    global $pageNow;

    if( current_user_can( 'administrator' ) ) {
        return;
    } else if ( is_admin() && 'edit.PHP' == $pageNow && isset($_GET['post_type']) && 'product' === $_GET['post_type'] ) {
        $query->set( 'author',get_current_user_id() );
    }
}

至于订单,每位经理都会看到与归类为“柔道”或“足球”的产品相关联的订单。然后将这些类别中的每一个细分为子类别(与年龄相关),但这与排序问题无关。

我正在使用 Filter WooCommerce orders by shop manager based on assigned taxonomy terms 答案代码,这里是我自己的设置:

/*Set the parameters*/

function orders_by_shop_manager_settings(){
    return array(
        // Can be 'name','slug' or 'term_id'
        'field'     => 'slug',// Taxonomy we want to focus on
        'taxonomy'  => 'product_cat',// ID of the shop manager / category we want to show
        'assignments' => array(
            '2'     => array('judo'),'3'    => array('football'),)
    );
}

那么剩下的就是处理用户客户分类——我真的很迷茫。

以下是我的基本设置:每个用户/客户只能购买一种产品并且可以访问一个会员计划(每个产品/计划一个帐户)。因此,我不需要构建复杂的“每个客户的多个产品”或“每个客户的多个成员资格”规则。 我想要的是柔道店经理只看到拥有会员资格的客户和用户,他们通过柔道相关产品获得了访问权限,而足球店经理只看到拥有会员资格的客户和用户他们通过与足球相关的产品获得了访问权限。

我还希望每位经理不要列出其他经理(避免在某个经理帐户在某个时候遭到入侵时出现任何顶级安全问题)。

店长名单很短,应该不会有太大变化,所以我对上面的排序订单等解决方案感到满意。手动添加每个经理的 ID 和他们自己的设置对我来说很好。

有什么想法吗?会有很大的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)