首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >限制wordpress多站点订阅者访问未分配到的站点上的内容

限制wordpress多站点订阅者访问未分配到的站点上的内容
EN

Stack Overflow用户
提问于 2017-12-21 16:56:02
回答 1查看 281关注 0票数 0

我们有一台Wordpress变异体。我们有增值转售商,已被批准为Wordpress用户,并被指派-作为订户-在特定的网站,他们可以访问营销材料,没有其他人可以访问。我已经在Wordpress网络管理(选项卡) ->用户(选项卡)中确认了这一点。我们有两个网站与不同的营销材料,每个用户只分配到一个网站。

要访问营销材料,用户可以转到合作伙伴页面,并有一个按钮,其中有一个链接可以将他们带到营销页面。按钮中的链接是根据人员是否已登录用户动态生成的。如果他们是登录用户,那么链接会转到营销页面,如果不是,则链接到注册/登录页面。

我们最近发现,登录用户可以访问两个网站上的营销材料,而不管他们被分配到哪个网站。目前,唯一无法进入营销资料页面的人是那些没有登录的人。

如果我理解了代码,它所做的就是检查页面上是否有登录用户,然后在按钮中为营销页面提供一个链接。

我们使用高级自定义字段从页面上的不同字段获取信息,以帮助创建我们需要为按钮选择的两个链接。下面是用来设置插入链接的php:

代码语言:javascript
运行
复制
$portal_left_link  = get_field( 'portal_left_link' ); // the link for the marketing page

$register_global = get_field( 'register_login_link', 'option' ); // trying to find this value
$register_override = get_field( 'register_url_override' ); // trying to find this value

$register_login_link = ( ! empty( $register_override ) ) ? $register_override : $register_global; // not sure yet what this does
$register_login_link .= '?redirect_to=' . $portal_left_link; // concatenates a redirect for the (button) link to the portal page to be carried over to the register/sign-in page for when the user needs signs-in

$left_link = is_user_logged_in() ? $portal_left_link : $register_login_link; // i think this says if the user is logged in then give them the portal link, otherwise give them the register/sign-in link

并将代码拉入的按钮:

代码语言:javascript
运行
复制
<a href="<?php echo esc_url( $left_link ); ?>" class="btn">Login</a>

我需要的是检查的代码:

  • 如果有登录用户;
  • 用户被分配到哪个站点;
  • 用户所在的站点是否与用户被分配到的站点匹配;
  • 如果所有这些语句都是匹配的,那么插入到营销页面的链接。
  • 否则,插入到注册表/登录页的链接。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-21 17:21:18

您可以使用以下方法检查用户是否是站点的成员:

blog

因此,您的代码可以如下所示:

代码语言:javascript
运行
复制
$portal_left_link = get_field( 'portal_left_link' ); // the link for the marketing page
if (is_user_logged_in() && is_user_member_of_blog()) // check if the user is logged in and a member of the blog
{
    $left_link = $portal_left_link;
    $left_link_text = "Go To Marketing Page";
}
else
{
    $register_global = get_field( 'register_login_link', 'option' ); // trying to find this value
    $register_override = get_field( 'register_url_override' ); // trying to find this value
    $register_login_link = ( ! empty( $register_override ) ) ? $register_override : $register_global; // not sure yet what this does
    $register_login_link .= '?redirect_to=' . $portal_left_link; // concatenates a redirect for the (button) link to the portal page to be carried over to the register/sign-in page for when the user needs signs-in
    $left_link = $register_login_link;
    $left_link_text = "Login";
}
// code for button
<a href="<?php echo esc_url( $left_link ); ?>" class="btn"><?php echo $left_link_text; ?></a>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47929486

复制
相关文章

相似问题

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