为了账号安全,请及时绑定邮箱和手机立即绑定

明智地显示或隐藏内容用户角色

明智地显示或隐藏内容用户角色

PHP
慕标5832272 2021-11-26 15:49:32
我正在使用 Woocommerce 和 WC Vendor Marketplace 插件在 wordpress 中开发一个网站。我想在 wordpress 网站中显示特定页面用户角色的内容。例如。如果我以供应商身份登录,则它会显示内容“A”;如果我以客户身份登录,则它会隐藏内容“A”。在这里,我为此自定义了自己的代码,但不起作用。    <?php     $userss =get_user_meta( $vendor_id, 'wp_capabilities', true );    if ($userss='vendor') {        echo'<li id="menuuu"><a href="https://stackoverflow.com" class="button7" style="background- color:#CCCCCC; color:#000000">Back To Dashboard</a>';        echo'</li>';    }                     ?>               <?php endif; ?>在上面的代码中,'wp_capabilities' 用于 wordpress 中的用户角色。在我的代码中,用户角色是“供应商”和“客户”。我在 php 方面真的很弱。所以请帮助我。
查看完整描述

2 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

在 wp_capabilities 数据存储中作为用户角色的序列化数组而不是这个,您可以使用 current_user_can 获取更多信息,您可以参考这个。您可以更改您的代码如下:


if (current_user_can('vendor')) {

    echo'<li id="menuuu"><a href="https://stackoverflow.com" class="button7" style="background- color:#CCCCCC; color:#000000">Back To Dashboard</a>';

    echo'</li>';

}

?>               

<?php endif; ?>


查看完整回答
反对 回复 2021-11-26
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

我知道这已被标记为已回答,但是将 current_user_can() 与角色一起使用是不可靠的,甚至在法典中也说了那么多。


虽然部分支持检查特定角色代替能力,但不鼓励这种做法,因为它可能会产生不可靠的结果。


最好使用我们的内置方法来确定当前用户是否是供应商。


<?php if ( WCV_Vendors::is_vendor( $vendor_id ) ) : ?>

<li id="menuuu"><a href="https://stackoverflow.com" class="button7" style="background- color:#CCCCCC; color:#000000">Back To Dashboard</a></li>

<?php endif; ?>


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信