Back to PhocacartAccessRights class

Method canDisplayAttributes

public
canDisplayAttributes
()

Method canDisplayAttributes - Source code

public function canDisplayAttributes()
{
    $display_attributes = $this->params->get('display_attributes', 1);
    $display_attributes_access_levels = $this->params->get('display_attributes_access_levels', '');
    // 0) Display price for no one
    if ($display_attributes == 0) {
        return false;
    }
    // 1) Display price for all
    if ($display_attributes == 1) {
        return true;
    }
    // 2) Based on access levels
    if ($display_attributes == 2) {
        $levels = $this->user->getAuthorisedViewLevels();
        if (!is_array($display_attributes_access_levels)) {
            if (in_array((int) $display_attributes_access_levels, $levels)) {
                return true;
            }
        } else {
            if (count(array_intersect($display_attributes_access_levels, $levels))) {
                return true;
            }
        }
        return false;
    }
    // 3) Based on customer group
    // If user is inside at least on customer group which allows displaying the attributes, the attributes can be displayed for him
    if ($display_attributes == 3) {
        $userGroups = PhocacartGroup::getGroupsById($this->user->id, 1, 2);
        if (!empty($userGroups)) {
            foreach ($userGroups as $k => $v) {
                if ($v['display_attributes'] == 1 && $v['published'] == 1) {
                    return true;
                }
            }
        }
        return false;
    }
    return true;
    // As default, display attributes
}