• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

[Нужен совет] Добавить страницы бренда с определенной структурой

kchabanov

Новичок
Всем добрый день.

Есть довольно нетривиальная задача. Попробую объяснить чтобы всем было понятно.

Есть магазин по продаже одежды. В каталоге представлена одежда различных брендов. Например:

adidas
reebok
fila
nike

На каждой странице магазина необходимо отображать кликабельный логотип бренда-производителя.
При клике по логотипу - должен осуществляться переход на страницу бренда, которая всегда содержит три блока. Например, пусть будет:

1) История возникновения бренда
2) Типы производимых товаров и их описание
3) Карта магазинов бренда в Европе.

Эту же информацию (вышеперечисленные три блока) необходимо отображать и на странице товара, в зависимости от бренда. Т.е. если это кроссовки адидас - то история, типы товаров и карта магазинов бренда адидас прямо на странице кросовок. Если это спортивная куртка адидас - та же самая информация на странице. Если это куртка найк - то те же блоки, но с информацией о Nike.

Вопрос в том, как это максимально правильно реализовать. Будучи знакомым с довольно простой структурой БД Wordpress'а, пока не вижу прозрачно как сделать отдельный тип страниц для магазинов с тремя блоками, которые можно вытащить по отдельности (чтобы например засунуть их на табки или в аккордион).

Я вижу это как-то так:

1) создаю страницу (post) для каждого магазина бренда (эти страницы должны иметь свой определенный тип или категорию, чтобы не быть "воспринятыми" как товары или страницы блога).
2) каждому товару добавляю новый атрибут brand и храню в нем наименование (а лучше даже сразу id) бренда производителя.
3) по известному id достаю логотип бренда (для него тоже нужно какое-то кастомное поле на странице бренда получается?) и отображаю на странице + сразу даю ссылку на него (get_url post'а по известному id'шнику).
4) по известному id бренда достаю по отдельности поля "история","описание товаров", "карта" и отображаю их на странице.

Правилен ли изначально мой ход мыслей? И как создать отдельный тип страниц и разбить его на три стандартных поля (история, описание, карта) чтобы потом их вытащить? И что с логотипом?

В общем вопросов много. Извините за простыню. Костылять не хочу. А задачу надо выполнить. Спасибо
 

Anthos

Новичок
Какую тему магазина используете?
Для каждой страницы товара можно использовать "табы" - вкладки. По умолчанию идет "описание товара", а дополнительные вкладки делаете какие Вам нужно. Чтобы делать табы нужен плагин "WooCommerce Tab Manager" например.
Можно добавить свойства товара - производитель. По этому фильтру можно будет сортировать товары.
Есть также плагины sapahli на эту тему, но функционал весь который Вам нужен не реализуют.
В зависимости от дизайна Вашего магазина, можно например сделать виджет в котором будет показываться производитель с логотипом кликабельным при переходе на страницу товара.
 

Anthos

Новичок
Сам решаю сейчас похожую проблему. Пока остановился на плагине BRANDS от WOOTHEMES.
Отпишусь позже по функционалу.
 

kchabanov

Новичок
Какую тему магазина используете?
Для каждой страницы товара можно использовать "табы" - вкладки. По умолчанию идет "описание товара", а дополнительные вкладки делаете какие Вам нужно. Чтобы делать табы нужен плагин "WooCommerce Tab Manager" например.
Можно добавить свойства товара - производитель. По этому фильтру можно будет сортировать товары.
Есть также плагины sapahli на эту тему, но функционал весь который Вам нужен не реализуют.
В зависимости от дизайна Вашего магазина, можно например сделать виджет в котором будет показываться производитель с логотипом кликабельным при переходе на страницу товара.

Тему использую кастомную, т.е. нестандартную/нешаблонную.

По поводу табов - они у меня и так есть. Вопрос только в том, что в эти табки я хочу впихнуть информацию о бренде.
Чтобы на каждой странице было, например, стабильно 5 табок:

1) Атрибуты
2) Отзывы
3) О бренде - история
4) О бренде - ассортимент
5) О бренде - карта магазинов

Вот чтобы вытащить последние табки из сущности "бренд" (а не создавать один и тот же контент для каждого продукта каждый раз), мне и нужно каким-то образом эту сущность правильно создать, хранить и при необходимости "вытаскивать".

Первый вариант - я создаю для каждого бренда пост (запись типа post) отдельного типа в базе, в нем добавляю кастомные мета-поля "history","assortiment","shopsmap".
Мои атрибуты для товаров (Brand) надо как-то связать с этими страницами в базе (или хранить у каждого товара и имя бренда, и его id (он же id поста в базе), или как-то еще). И потом по этим полям вытаскивать информацию нужного бренда.

Есть второй вариант - до которого я додумался сегодня ночью. У каждого атрибута тоже есть описание. И у каждого варианта для атрибута - тоже.
http://awesomescreenshot.com/0e12uny282.
Можно попробовать добавить туда 4 поля:
- логотип (ссылка на изображение)
- история
- ассортимент
- карта магазинов
Тогда я смогу тут же хранить всю необходимую мне информацию. И вытаскивать ее как на страницу товара, так и на отдельной странице потом вывалить все категории (просто пройтись loop'ом по вариантам атрибута brand и отобразить их) и т.д.

Пока второй вариант кажется более правильным.
 

kchabanov

Новичок
В общем, я пошел по первому пути. Создал отдельные типы страниц для бренда, добавил им мета-поля необходимые.
А в описании атрибута "Brand" храню только айдишник этой страницы.

Пришлось немного поковырять стандартный wc класс abstract-product чтобы при инициализации сразу вытаскивало для продукта айдишник его бренда. И тут же два метода "получить историю" и "получить ассортимент". Логотип бренда можно достать напрямую через get_the_post_thumbnail, зная айди поста.

Может решение не самое просто, но оно идеально мне подходит. Изначально не хотел покупать никакие доп.плагины платные, т.к. уже не раз столкнулся с изюмительным описанием плагина и миллионом ревью, а на деле - три кнопки, из которых две не работают и саппорт 2 недели молчит.

ИТОГ: Моя задача решена. Может кому-то поможет
 
Сверху Снизу