这是我的问题。我希望你能提供帮助,因为我有点卡住了(不擅长 PHP……)。
我建立了一个体育学校网站,允许客户购买会员资格。为此,我使用WooCommerce、 Memberships和Subscription。
上课的体育项目是柔道和足球,两位老师都是自己的体育课的店长。出于显而易见的原因,他们都不需要看到彼此的学生(作为客户和用户),彼此的学生的订单,甚至彼此的产品。
我已经处理过产品和订单。
每个经理都会看到他创建的产品。如果需要,管理员可以在创建产品后授予此类所有权。这是我的代码,从网上借来的。
/*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() );
}
}
至于订单,每个经理都会看到与归类为“柔道”或“足球”的产品相关联的订单。然后将这些类别中的每一个细分为子类别(与年龄相关),但这与排序问题无关。
我正在使用商店经理根据分配的分类术语答案代码过滤 WooCommerce 订单,这是我自己的设置:
/*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 和他们自己的设置对我来说很好。
任何想法?这将有很大的帮助。