子比主题普通用户仅能给管理员私信,给非管理员需开通VIP后才可以使用私信功能

最近应一个子比用户的要求,写了一个关于:普通用户仅可以给管理员发送私信,如果普通用户给非管理员发送私信则提示:您需要开通VIP后才可以使用私信功能。

本代码依旧使用:子比主题的zib_get_user_vip_level($user_id);函数来获取当前会员等级,根据返回的值来判断:普通用户、VIP会员1级、VIP会员2级。

定位子比主题的文件名为:private-class.php,这个是子比主题的私信功能,文件里最下面有个控制输出私信按钮的函数。

/**
* @description: 获取私信按钮
* @param {*}
* @return {*}
*/
public static function get_but($receive_user = '', $text = '私信', $class = '')
{
    $receive_user    = (int) $receive_user;
    $current_user_id = get_current_user_id();
    $my_vip = zib_get_user_vip_level($current_user_id);
  
    if (!$receive_user || $current_user_id == $receive_user || !_pz('private_s', true) || !_pz('message_s', true) || zib_is_close_sign()) {
        return false;
    }
    if ($current_user_id) {
        //小黑屋禁封判断
        if (_pz('user_ban_s', true) && zib_user_is_ban($current_user_id)) {
            return;
        }
        if ($my_vip > 0 || user_can( $current_user_id, 'manage_options' ) || ( $my_vip == 0 && user_can( $receive_user, 'manage_options' ) ) ) { // VIP用户或管理员可以给任何人发送私信,非VIP用户给管理员发送私信不受限制
            $args = array(
                'tag'           => 'a',
                'class'         => $class,
                'data_class'    => 'full-sm',
                'text'          => $text,
                'mobile_bottom' => true,
                'query_arg'     => array('action' => 'private_window_modal', 'receive_user' => $receive_user),
                'height'        => 550,
            );
            $but = zib_get_refresh_modal_link($args);
        } else { // 非VIP用户给非管理员用户发送私信受限制
            $but = '<a class="' . $class . '" href="javascript:;" onclick="alert(\'您需要开通会员后使用私信功能\');">' . $text . '</a>';
        }
    } else {
        $but = '<a class="signin-loader ' . $class . '" href="javascript:;">' . $text . '</a>';
    }
    return $but;
}
}

代码解释:

  • 这段代码是一个静态方法,用于获取私信按钮。它接受三个参数:$receive_user表示接收私信的用户ID,$text表示按钮上的文本,$class表示按钮的CSS类。
  • 首先,将$receive_user转换为整数类型,并获取当前用户的ID和当前用户的VIP等级。
  • 接下来,如果$receive_user为空、当前用户和接收用户相同、私信功能或消息功能被关闭、或者网站被关闭,则返回false。
  • 如果当前用户已登录,则进行小黑屋禁封判断,如果当前用户被禁封,则返回。
  • 然后,根据当前用户的VIP等级和权限,判断是否可以给任何人发送私信。如果可以,生成一个包含私信窗口的链接,并返回该链接。
  • 如果当前用户不是VIP用户,且接收用户也不是管理员,则限制发送私信。生成一个提示信息,告诉用户需要开通会员后才能使用私信功能。
  • 如果当前用户未登录,则生成一个登录链接。
  • 最后,返回生成的按钮。
  • 来源:详情
温馨提示:本文最后更新于2023/09/05 01:50:54若文章内容或图片失效,请留言联系站长反馈!
!
也想出现在这里? 联系我们
创意广告
© 版权声明
THE END
喜欢本文内容,请点击【点赞】【分享】【收藏】
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容