Замена кнопки купить на кнопку связаться для покупки у определенных товаров

Башмаков Макс
20 июня 2017
1

Добрый день, Мне нужно у определенных товаров заменить кнопку купить на кнопку связаться для покупки. К которой мне требуется привязать форму обратной связи. Можно ли это как то реализовать?

8 ответов
  • Владимир Сергеев
    Разработчик
    Решение
    21 июня 2017 12:22

    Максим, это достаточно проблематично.
    Я могу вам лишь сказать как это примерно можно реализовать.
    А дальше либо сами, либо с помощью эксперта из каталога.

    На страницах категорий (это файлы на скриншоте).

    Если в слайдере, то файл home.top-slider.html и home.list-slider.html
    На странице товара файл product.cart.html

    В этих файлах нужно найти кнопки покупки, и поставить проверку на доп.параметр.
    Если доп.параметр указан, то ставить ссылку на страницу обратной связи, если нет – то просто выводить кнопку.

  • Башмаков Макс
    21 июня 2017 17:02

    Спасибо. Добавил продукту доп параметр "demonstracia=true"

    Вставил в product.cart.html:

    {if $product.params.demonstracia}

    <button type="submit title="Связаться для покупки" class="res_header_phonenum" <!--это выводит форму обратной связи--> > {$add2cart_label="Связаться для покупки"} {else}

    <button type="submit" title="{$add2cart_label}" class="btn btn-accent btn-sm">

    {/if}

    Осталось только сделать,что бы товар не падал в корзину при выводе формы обратной связи. Буду думать.


    • Владимир Сергеев
      Разработчик
      Решение
      21 июня 2017 17:08
      {if $product.params.demonstracia}
        <a href="#" class="res_header_phonenum btn btn-accent btn-sm" title="Связаться для покупки">Связаться для покупки</a>
      {else}
        <button type="submit" title="{$add2cart_label}" class="btn btn-accent btn-sm">
      {/if}
  • Башмаков Макс
    21 июня 2017 17:16

    Спасибо большое, сейчас еще нарисую картинку кнопку и будет круто)

  • Башмаков Макс
    21 июня 2017 17:41

    Вот так идеально стало)

    {if $product.params.demonstracia}

    <a href="javascript:void(0)" class="res_header_phonenum btn btn-accent btn-sm"> {$add2cart_label="Связаться для покупки"} {else}

    <button type="submit" title="{$add2cart_label}" class="btn btn-accent btn-sm">

    {/if}

  • Башмаков Макс
    21 июня 2017 18:58


    Почему то не работает условие {if $product.params.demonstracia} на этих страницах. Не могут видимо увидеть дополнительный параметр.(

    • Владимир Сергеев
      Разработчик
      Решение
      21 июня 2017 19:07

      Там надо хак применить =)
      Перед проверкой поставьте эту строку:

      {$param_item = $wa->shop->product($p.id)}

      А сама проверка уже должна выглядеть так:

      {if !empty($param_item.params.demonstracia)}
  • Башмаков Макс
    22 июня 2017 11:48

    Спасибо, так получилось. Остался только один недочет. Если нажать быстрый просмотр у данных товаров, то открывается страница товара в сплывающем окне, и при нажатие кнопки не может открыться еще одно всплывающее окно обратной связи. Может как то можно убрать быстрый просмотр у товаров с этим доп параметром? Буду очень благодарен за помощь.

  • Владимир Сергеев
    Разработчик
    Решение
    22 июня 2017 12:31

    Найдите в файлах две одинаковых строки:

    {if !empty($theme_settings.fastPrev)}

    И замените их на эти:

    {if !empty($theme_settings.fastPrev) && empty($param_item.params.demonstracia)}

    Но тогда вам нужно хак, о ктором я писал вчера перенести сразу под строчку начала цикла: {foreach $products as $p}
    Чтобы получилось так:

    {foreach $products as $p}
    {$param_item = $wa->shop->product($p.id)}
  • Башмаков Макс
    22 июня 2017 13:30

    Огромное спасибо!)

Добавить ответ
Чтобы добавить комментарий, зарегистрируйтесь или войдите
Мы получаем и обрабатываем персональные данные посетителей нашего сайта в соответствии с официальной политикой.
Если Вы продолжите использовать сайт, мы будем считать, что Вас это устраивает.
Подписывайтесь и получайте скидки!

Узнавайте первым о скидках и специальных предложениях!