Как вывести текст на сайте для определенной категории пользователей? Есть решение

Здравствуйте. Подскажите, как вывести на сайте слово "Привет" определенной категории пользователей?  Перерыл форум, но рабочего варианта не встретил. Что нашел, пробовал - не работает. Может быть кто-то сталкивался с этим, подскажите пожалуйста.

Создал класс shopCustom.class.php

В нем код:

<?php
class shopCustom
{
    public static function getContactCategories($contact_id)
    {
        $ccm = new waContactCategoriesModel();
        return $ccm->getContactCategories($contact_id);
    }

    public static function getContactCategoryIds($contact_id)
    {
        return array_keys(self::getContactCategories($contact_id));
    }
}

А вот этот код разместил в шаблоне product.html


{if in_array(1, shopCustom::getContactCategoryIds($wa->user('id')))}
<p>ура!</p>
{/if}

И все вот это не работает. Если кто-то знает как это можно сделать - подскажите пожалуйста.

18 ответов

  • 1

    Надеюсь, категории вы не в магазине, а в приложении "контакты" создаёте?

    • +1
      Роман Мосин Роман Мосин 18 января 2022 22:09 #

      Ну да, все так. Приложение "Контакты" Добавил категорию пользователя, увидел id.

  • 2

    Проверка на наличие пользователя в категории пользователей с ID = 4 (если категория настроена через приложение "Магазин", а не через приложение "Контакты").

    {$contact_categories = $wa->shop->customer->getCategories()}
    {$is_opt_user = isset($contact_categories[4])}
    {if $is_opt_user}
      <p>Привет, оптовик!</p>
    {/if}

    Работает без кастомных классов, достаточно просто разместить код в теме дизайна или на инфостраницах.

    • +1
      Роман Мосин Роман Мосин 19 января 2022 10:37 #

      Ааааа. Большое спасибо! Этот код работает. Очень помогли!

      • +1
        Dmitriy55 Dmitriy55 18 февраля 2022 14:21 #

        Идея интересная, если, например, ещё добавить "Ваша текущая скидка ХХ%". Можете наглядно показать, где покупатель у вас на сайте видит "Привет, оптовик!"? Разово при входе или на всех страницах?

        • +1

          Категория id=4 - "Оптовик 5%"

          Категория id=5 - "Оптовик 10%"

          Категория id=6 - "Оптовик 15%"

          {$contact_categories = $wa->shop->customer->getCategories()}
          {$is_opt_user_5 = isset($contact_categories[4])}
          {$is_opt_user_10 = isset($contact_categories[5])}
          {$is_opt_user_15 = isset($contact_categories[6])}
          {if $is_opt_user_15}
            <p>Привет, оптовик! Ваша текущая скидка 15%!</p>
          {elseif $is_opt_user_10}
            <p>Привет, оптовик! Ваша текущая скидка 10%!</p>
          {elseif $is_opt_user_5}
            <p>Привет, оптовик! Ваша текущая скидка 5%!</p>
          {/if}

          Думаю, суть вы уловили. Наглядно показывать не буду. Разместить можно где угодно и как угодно - зависит от вашей фантазии.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите