检查用户是否在多站点网络内的另一个站点的组中

时间:2013-12-27 作者:tctc91

我在主网站上使用Woocommerce+groups插件,在购买物品时将用户提升到“高级”群,效果非常好。

如果主站点上的用户浏览到我网络中的第二个站点,我将无法再检查他们是否属于“Premium”组。

在我的主站点上,我可以使用以下代码:

<?php 
    $user_id = get_current_user_id();
    $group = Groups_Group::read_by_name( \'Premium\' );
    if ( Groups_User_Group::read( $user_id, $group->group_id ) ) { 
?>

    Premium content here!

<?php } ?>
但这在子网站上不起作用。我是否可以通过子网站检查用户是否在我的主站点上的组中?

1 个回复
最合适的回答,由SO网友:tctc91 整理而成

使用以下代码解决了此问题:

<?php

    $blog_id = 1; //set the blog id to the main site id 

    switch_to_blog( $blog_id );

    $user_id = get_current_user_id();
    $group = Groups_Group::read_by_name( \'Premium\' );
    if ( Groups_User_Group::read( $user_id, $group->group_id ) ) { 
        echo \'PREMIUM!!\';
    } else {
        echo \'Not premium\';
    }

    restore_current_blog();

?>

结束

相关推荐

MultiSite Get_Home_url();-获取当前站点的URL

使用多站点时,get\\u home\\u url()的替代品是什么?例如,如果我在多个站点上安装了一个主题,并且在该主题中有需要特定于当前站点的链接。在我的单次安装中,使用get\\u home\\u url();会给我http://domain.com/, 这很好,如果我把主题移到另一个领域,什么都不会受到影响。但是,当我在多站点上使用相同的主题时,get\\u home\\u url();给了我http://domain.com/ 无论我目前在哪个网站上。我需要的是每个域。com/sitename/