我们有一个Wordpress mutlisite。我们拥有已被批准为Wordpress用户的增值经销商,并被指定为特定网站,作为订阅者,他们可以访问其他人无法访问的营销材料。我已在Wordpress网络管理员(选项卡) - >用户(选项卡)中确认了这一点。我们有两个具有单独营销材料的站点,每个用户仅分配到一个站点。
要访问营销材料,用户会转到合作伙伴页面,并且有一个按钮,其中包含指向营销页面的链接。按钮中的链接是基于该用户是否是登录用户而动态生成的。如果他们是登录用户,则链接将转到营销页面,否则链接将转到注册/登录页面。
我们最近发现,登录用户可以访问BOTH站点上的营销材料,无论他们分配到哪个站点。目前,唯一无法访问营销材料页面的人是未登录的人。
如果我理解代码,它所做的只是检查页面上是否有登录用户 - 然后在按钮中为他们提供营销页面的链接。
我们使用高级自定义字段从页面上的不同字段中获取信息,以帮助创建我们需要在按钮之间选择的两个链接。这是设置插入链接的php:
$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
并将代码拉入的按钮:
<a href="<?php echo esc_url( $left_link ); ?>" class="btn">Login</a>
我需要的是检查的代码:
您可以使用以下方法检查用户是否是站点的成员:
https://codex.wordpress.org/Function_Reference/is_user_member_of_blog
所以你的代码看起来像这样:
$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>