Pascha Опубликовано 6 ноября, 2022 Поделиться Опубликовано 6 ноября, 2022 Криптовалюты все больше и больше входят в нашу жизнь. И если еще пару лет назад многие воспринимали их как «пустышку», то сегодня уже начинают понимать перспективу. Многие магазины начинают принимать в качестве оплаты за свои услуги криптовалюту, в частности bitcoin. Я сегодня не буду рассматривать как добавить BTC в качестве валюты и как получать их курсы в автоматическом режиме. Сегодня речь пойдет как вывести рядом с основной ценой в категориях и в карточке товара цену в биткоинах. Доработки будем делать в контроллерах, добавив новую переменную. Для получения курса будем использовать сервис bitpay.com, в частности его API. Я не буду детально разбирать сам скрипт. Он ниже $url = "https://bitpay.com/api/rates"; $json = json_decode(file_get_contents($url)); $dollar = $btc = 0; foreach($json as $obj){ if ($obj->code=='USD') { $kursbtc = (1/$obj->rate)*$result['price']; $kursbtc = number_format($kursbtc, 8, ".", ""); } } Идем в /catalog/product/category.php и после строки $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); вставляем код, который я дал выше. Для цены со скидкой код будет чуть другим $url = "https://bitpay.com/api/rates"; $json = json_decode(file_get_contents($url)); $dollar = $btc = 0; foreach($json as $obj){ if ($obj->code=='USD') { $kursbtc_spec = (1/$obj->rate)*$result['special']; $kursbtc_spec = number_format($kursbtc_spec, 8, ".", ""); } } Далее после 'price' => $price, 'special' => $special, Добавляем 'kursbtc' => $kursbtc, 'kursbtc_spec' => $kursbtc_spec, По аналогии доработки делаются и для модулей Последние, Новинки, Рекомендуемые, Акционные В темплейте этих модулей в необходимом месте добавляем код вывода цены в bitcoin <?php echo $product['kursbtc']; ?> <?php echo $product['kursbtc_spec']; ?> Как вывести цену товара в BTC в карточке товара Теперь переходим к варточке товара. Опять идем в контроллер по адресу /catalog/product/product.php и после $data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); добавляем код $url = "https://bitpay.com/api/rates"; $json = json_decode(file_get_contents($url)); $dollar = $btc = 0; foreach($json as $obj){ if ($obj->code=='USD') { $data['kursbtc'] = (1/$obj->rate)*$result['special']; $data['kursbtc'] = number_format($data['kursbtc'], 8, ".", ""); } } И так же по аналогии делаем доработку для товаров со скидкой $url = "https://bitpay.com/api/rates"; $json = json_decode(file_get_contents($url)); $dollar = $btc = 0; foreach($json as $obj){ if ($obj->code=='USD') { $data['kursbtc_spec'] = (1/$obj->rate)*$result['special']; $data['kursbtc_spec'] = number_format($data['kursbtc_spec'], 8, ".", ""); } } Теперь идем в темплейт карточки товара и в нужном месте выводим стоимость в биткоинах <?php echo $kursbtc; ?> <?php echo $kursbtc_spec; ?> Не забываем после всех этих изменений обновить или почистить кеш модификаторов. Если Все было сделано верно, то результат должен быть примерно такой: 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.