Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


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 } ?>

 

 

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

Link to post
Share on other sites

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

Edited by thentru
Link to post
Share on other sites

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

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

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

 

 

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

 

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

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

Link to post
Share on other sites

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

 

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

 

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

или 

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

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

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

  • 11 months later...
В 18.03.2020 в 02:39, genkabukin сказал:

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

Да, сделал

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.