Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Нужна помощь с выводом купона на страницу товара


Recommended Posts

Прошу помочь с выводом скидочных купонов на странцу товара. Нужно вывести сам код купона.

 

Что делал: добавил в модель model/product.php код получения купона из базы:

 

    public function getCoupon($coupon_id) {
        $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "coupon WHERE coupon_id = '" . (int)$coupon_id . "'");

        return $query->row;
    }

    public function getCouponByCode($code) {
        $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "coupon WHERE code = '" . $this->db->escape($code) . "'");

        return $query->row;
    }

    public function getCoupons($data = array()) {
        $sql = "SELECT coupon_id, name, code, discount, date_start, date_end, status FROM " . DB_PREFIX . "coupon";

        $sort_data = array(
            'name',
            'code',
            'discount',
            'date_start',
            'date_end',
            'status'
        );

        if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
            $sql .= " ORDER BY " . $data['sort'];
        } else {
            $sql .= " ORDER BY name";
        }

        if (isset($data['order']) && ($data['order'] == 'DESC')) {
            $sql .= " DESC";
        } else {
            $sql .= " ASC";
        }

        if (isset($data['start']) || isset($data['limit'])) {
            if ($data['start'] < 0) {
                $data['start'] = 0;
            }

            if ($data['limit'] < 1) {
                $data['limit'] = 20;
            }

            $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
        }

        $query = $this->db->query($sql);

        return $query->rows;
    }

 

Дальше в контроллер продукта добавил:

     $data['coupon_product'] = array();
        
      $coupons = $this->model_checkout_coupon->getCoupons();

         foreach($coupons as $coupon) {
             $data['coupon_product'][] = array(
                 'coupon' => $coupon['code']
             );
         }

 

 

Вывод в шаблон -

    <?php if ($coupon_product) { ?>
        <?php echo $coupon; ?>
    <?php } ?>

 

 

Не работает. Прошу подсказать, что сделал не так.

Надіслати
Поділитися на інших сайтах


У купонов есть много условий.
За основу возьмите метод getCoupon, который находится здесь
catalog\model\total\coupon.php

Змінено користувачем thentru
Надіслати
Поділитися на інших сайтах


32 минуты назад, Padlik сказал:

Вывод в шаблон -

    <?php if ($coupon_product) { ?>
        <?php echo $coupon; ?>
    <?php } ?>

 

 

Не работает. Прошу подсказать, что сделал не так.

 

сделайте вместо     <?php echo $coupon; ?>     <?php var_dump($coupon_product); ?>

и многое прояснится

Надіслати
Поділитися на інших сайтах

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

 

product.tpl

<?php foreach ($coupons as $coupon)  { ?>
            <?php if ($coupon['status']) { ?>
       <?php echo $coupon['code']?>
        <?php } ?>
     

контроллер

$this->load->model('extension/total/coupon');
$data['coupons'] = $this->model_extension_total_coupon->getCoupons();

 

 

Пытаюсь сделать так:

 

$this->load->model('extension/total/coupon');
        
      $data['coupon_product'] = array();
        
$data['coupons'] = $this->model_extension_total_coupon->getCoupons();

         foreach($coupons as $coupon) {
             $data['coupon_product'][] = array(
                 'coupon' => $coupon['code']
             );
         }

 

Получаю ошибку Undefined variable: coupons

 

Надіслати
Поділитися на інших сайтах


ну так и воспользуйся тем что добавил
"Что делал: добавил в модель model/product.php код получения купона из базы:"
 

$data['coupons'] = $this->model_extension_total_coupon->getCoupon($coupon);

или 

$data['coupons'] = $this->model_extension_total_coupon->getCouponByCode($coupon);

где $coupon  = $product_info['ид или код купона'], смотря что у тебя сохраняет в  "учете именно выбранных в админке"

если я правильно понял условие

Надіслати
Поділитися на інших сайтах


  • 2 years later...
В 18.01.2018 в 09:47, Padlik сказал:

Друзья, прошу помочь! Голову уже сломал, никак не могу допилить. Готов оплатить.

Получилось реализовать вывод купона и проверку выбранных в админке?

Надіслати
Поділитися на інших сайтах


  • 11 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.