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

我正在使用 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 方面真的很弱。所以请帮助我。


慕标5832272
浏览 179回答 2
2回答

慕田峪4524236

在 wp_capabilities 数据存储中作为用户角色的序列化数组而不是这个,您可以使用 current_user_can 获取更多信息,您可以参考这个。您可以更改您的代码如下:if (current_user_can('vendor')) {&nbsp; &nbsp; echo'<li id="menuuu"><a href="https://stackoverflow.com" class="button7" style="background- color:#CCCCCC; color:#000000">Back To Dashboard</a>';&nbsp; &nbsp; echo'</li>';}?>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<?php endif; ?>

人到中年有点甜

我知道这已被标记为已回答,但是将 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; ?>
打开App,查看更多内容
随时随地看视频慕课网APP