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

[Решено] Как получить ID группы


Recommended Posts

Доброго дня! Подскажите. Есть две группы. Группа Private имеет ID=1, группа Company имеет ID2. Надо в счете для одной группы выводить "Private" для другой группы выводить "Company". Никак не получается корректно получить ID группы в сгенерированном счете.

    $customer_group_id = $this->data['customer_group_id'];



    if ($customer_group_id == 2)

    {

        $html .='Company<br />';

    }

    else

    {

        $html .='Private<br />';

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


Пробую так получить нужную группу, но всеравно при разных группах выводит Company. По моему я не от туда пытаюсь получить ID групп.

 

    $customer_group_id = $this->data['customer_group_id'] = $this->customer->getGroupId();

    if ($customer_group_id == 2)
    {
        $html .='Company<br />';
    }
    else
    {
        $html .='Private<br />';
    }
Надіслати
Поділитися на інших сайтах


OpenCart 2.3.0.2 файл сотороннего модуля вывода счета. Я так понимаю что то где то  внем не задекларировано.

 

Попробуйте повыводить другие параметры покупателя через $this->customer->... (system/library/customer.php) Возможно, вы просто одного и того же покупателя запрашиваете. Или кеш срабатывает.

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

Да вроде кеш тут не причем. Есть два счета созданные двумя пользователями из разных групп.С ними вот и пробую.

 

system/library/customer.php - нету такого файла.

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


На фронте есть стандартный способ получить id группы

Это

$customer_group_id = $this->customer->getGroupId();

Но чтобы его получить вызов метода должен быть от залогиненного пользователя, например, из личного кабинета

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


На фронте есть стандартный способ получить id группы

Это

$customer_group_id = $this->customer->getGroupId();

Но чтобы его получить вызов метода должен быть от залогиненного пользователя, например, из личного кабинета

Прошу прощения, я в панели управления пытаюсь получить это. До фронтенда еще не дошло дело.

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


Прошу прощения, я в панели управления пытаюсь получить это. До фронтенда еще не дошло дело.

Тогда вам надо дописать метод в модели модуля или получить инфо о клиенте по заказу через метод getCustomer подключив в контроллере модель

model/customer/customer

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


в модели модуля указывал методы из model/customer/customer_group.php

    public function getCustomerGroup($customer_group_id) {
        $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "customer_group cg LEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON (cg.customer_group_id = cgd.customer_group_id) WHERE cg.customer_group_id = '" . (int)$customer_group_id . "' AND cgd.language_id = '" . (int)$this->config->get('config_language_id') . "'");

        return $query->row;
    }

    public function getCustomerGroups($data = array()) {
        $sql = "SELECT * FROM " . DB_PREFIX . "customer_group cg LEFT JOIN " . DB_PREFIX . "customer_group_description cgd ON (cg.customer_group_id = cgd.customer_group_id) WHERE cgd.language_id = '" . (int)$this->config->get('config_language_id') . "'";

        $sort_data = array(
            'cgd.name',
            'cg.sort_order'
        );

        if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
            $sql .= " ORDER BY " . $data['sort'];
        } else {
            $sql .= " ORDER BY cgd.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;
    }

 

Далее в файле модуля указываю:

 

    $customer_group_id = $this->customer_group->getCustomerGroup();
    if ($customer_group_id == 2)

    {
        $html .='Company<br />';
    }

    else

    {
        $html .='Private<br />';
    }

 

В результате получаю:

 

Fatal error: Call to a member function getCustomerGroup() on null in

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


Не верный вызов метода

Для метода нужно передать customer_group_id

В ответ вы получите массив, а не число

Этот метод для получения имени группы

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


$this->load->model('customer/customer_group');

$this->module_customer_customer_group->getCustomerGroup();

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

Прошу прощения, я в панели управления пытаюсь получить это. До фронтенда еще не дошло дело.

 

Так и пишите, что в админке делаете.

 

Как я понимаю, речь идет о admin/controller/sale/order.php , методе invoice

Тогда в массиве $order_info у вас должен быть customer_id, а дальше делаете

$this->load->model('sale/customer');
$customer_info = $this->model_sale_customer->getCustomer($order_info['customer_id']);
Надіслати
Поділитися на інших сайтах

Никак не получается корректно получить ID группы в сгенерированном счете.

где?

в invoice?

открой родное

admin/controller/sale/order.php :: public function invoice() {
...
		foreach ($orders as $order_id) {
			$order_info = $this->model_sale_order->getOrder($order_id);
...
					'email'              => $order_info['email'],
...
посмотри базу

...
$order_info['customer_group_id']
...
сделай, как тебе надо (с учетом своего кода, имен переменных)

if ($order_info['customer_group_id'] == 2) { $html .='Company<br />'; } else { $html .='Private<br />'; }
  • +1 1
Надіслати
Поділитися на інших сайтах

Как я понимаю, речь идет о admin/controller/sale/order.php , методе invoice

Не совсем, сторонний модуль инвойсов используется.

 

 

$this->load->model('sale/customer');

 

тут нет ошибки?

 

if ($order_info['customer_group_id'] == 2) { $html .='Company<br />'; } else { $html .='Private<br />'; }

Как же все таки элементарно все было. :D Спасибо!

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


Гість
Ця тема закрита для публікації повідомлень.
  • Зараз на сторінці   0 користувачів

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

×
×
  • Створити...

Important Information

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