Ссылка в кнопке купить OPENCART 2

Автор  Понедельник, 20 февраля 2017
Оцените материал
(0 голосов)

Чтобы в OpenCart при нажатии на кнопку "купить" товар не добавлялся в корзину, а пользователь переходил по внешней ссылке необходимо сделать всего несколько манипуляций.

  1. Заходим в phpmyadmin, в вашу БД, находим таблицу oc_product (ос - стандартный префикс, у вас может быть и другой).
  2. Выбираем структура.
  3. В структуре находим location (нам же не нужно будет это поле если у нас не реальный магазин), нажимаем изменить
  4. Увеличиваем количество символов, чтобы влезали длинные ссылки, для этого в поле "Длина/значения" указываем вместо 128, например 500 (можно и больше, если у вас ссылки длиннее)
  5. Переходим в папку /catalog/controller/product и открываем файл product.php
  6. Находим $data['points'] = $product_info['points'];
    и после добавляем $data['location'] = $product_info['location'];
  7. Находим 'name'        => $result['name'],
    и добавляем 'location'     => $result['location'], и сохраняем.
  8. Здесь же /catalog/controller/product и открываем файл category.php
  9. Находим 'name'        => $result['name'],
    и добавляем 'location'      => $result['location'], и сохраняем.
  10. Находим и открываем файл product.tpl в папке /catalog/view/theme/default/template/product (обратите внимание, что это путь для стандартного шаблона, соответственно идём в свой шаблон)
  11. Находим <button type="button" id="button-cart" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary btn-lg btn-block"><?php echo $button_cart; ?></button>
    и заменяем на <input type="button" value="<?php echo $button_cart; ?>" onclick="window.open('/<?php echo $location; ?>');" class="btn btn-primary btn-lg btn-block" />Внимание в параметре onclick="window.open "/" используется если вы хотите ссылку на свой ресурс (vadivan.ru/ссылка), если на внешний, то обязательно удалите.
  12. Находим и открываем файл category.tpl в папке /catalog/view/theme/default/template/product (обратите внимание, что это путь для стандартного шаблона, соответственно идём в свой шаблон)
  13. Находим <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>
    и заменяем на <button type="button" onclick="window.open('/<?php echo $product['location']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>
  14. Заходим в карточку товара в раздел местоположении, вводим любую ссылку и проверяем
Прочитано 8160 раз

Комментарии   

0 #19 Vadivan 25.06.2020 16:11
Цитирую Anandasat:
Огромнейшее благо дарю автору сего чуда, действительно всё работает вот только небольшая незадачка сама кнопко после внесения изменений увеличивается :sad: Как бы ей вернуть её исходный размерчик?

Я подозреваю, что у вас установлен шаблон и соответственно изменёны стили кнопок в ЦСС. И ранее была ссылка на новый стиль кнопки, а здесь в примере указан стиль обычной кнопки, из-за этого и метаморфозы. Если исходники остались сравните что было указано ранее после слов class, и что сейчас изменилось. Если нет, идти и править в CSS до необходимого вам размера.
Цитировать
0 #18 Anandasat 15.06.2020 16:21
Огромнейшее благо дарю автору сего чуда, действительно всё работает вот только небольшая незадачка сама кнопко после внесения изменений увеличивается :sad: Как бы ей вернуть её исходный размерчик?
Цитировать
0 #17 SW 27.05.2019 16:17
Вадиван, ты лучший! Огромное спасибо! Три дня с этой кнопкой возился, все форумы перечитал, ничего не работало, в итоге по твоей инструкции в ocstore 2.3.0.2.3 всё чётко получилось!
Цитировать
0 #16 Vadivan 27.05.2019 11:26
SW, способ для второй версии. Скорее всего в третьей версии изменили код и алгоритм работы. Надо разбираться или искать уже описанный кем-то способ под третью версию Opencart.
Цитировать
0 #15 SW 26.05.2019 20:33
Не работает на Opencart 3
Цитировать
0 #14 Vadivan 17.12.2018 17:44
Попробуйте по аналогии изменить файлы /catalog/controller/module/featured.php и catalog/view/theme/default/template/module/feature d.tpl
Цитировать
0 #13 дмитрий 16.12.2018 21:18
все супер работает. а как с рекомендуемых уходить по внешней ссылке.
Цитировать
0 #12 владимир 10.12.2018 18:38
сори разобрался. респект за инфу.
Цитировать
0 #11 владимир 10.12.2018 18:02
а у меня нет раздела местоположение либо не нахожу
Цитировать
0 #10 Vadivan 19.11.2018 11:46
Тимофей, в opencart версии 2 работает без проблем, если сделать всё по инструкции. Если у вас версия выше, возможно с небольшими изменениями придётся выполнить, но скорее всего так и осталось.
Цитировать
0 #9 Тимофей 18.11.2018 22:46
Сделал все как написано, не работает, информация устарела?
Цитировать
0 #8 Vadivan 25.06.2018 15:21
Да, чтобы в opencart реализовать открытие в текущей вкладке, в коде надо поменять "window.open" на "window.location.href=". Так
же можно просто исправить на "location". Т.е. так:
onclick="location=(... просто в комментарии нельзя полностью указать php запрос.
Проверил у меня работает.
Цитировать
0 #7 Александр 25.06.2018 12:24
Поменял( кнопка не работает, ошибка в консоле: Uncaught TypeError: window.location.href is not a function
Цитировать
0 #6 Vadivan 25.06.2018 10:23
Александр, замените везде "window.open" на "window.location.href".
Цитировать
0 #5 Александр 25.06.2018 09:01
А как сделать, чтобы ссылка открывалась не в новом окне? а в том же.
Цитировать

Добавить комментарий

Использовать прямые ссылки в комментариях запрещено. Если хотите поделиться полезной ссылкой, вводите адрес без http или https.

Это интересно

Последние комментарии