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

Поле промо-кода при регистрации и группы пользователей


Recommended Posts

Приветствую.
Появилась необходимость, чтобы при регистрации пользователь ввёл промо-код и если промо-код валидный ему назначалась группа отличная от дефолтной.
В public function addCustomer($data) я объявил что:
$customer_group_id = 1;

В контроллере я написал вот такое вот:
 

		$promo = isset($this->request->post['promo']) ? htmlspecialchars(strip_tags($this->request->post['promo'])) : '';
		if (!empty($promo)){
		if (isset($promo)) {
		if ((strtolower($promo) != 'promo') && (strtolower($promo) != 'промо') && (strtolower($promo) != 'ghjvj')) {
		$json['error']['promo'] = $this->language->get('error_promo');
			}
		else	
			{
		if ($customer_group_id = 1){
		unset($customer_group_id);
		$customer_group_id = 2;
		}}}}


Но, в процессе регистрации группа всё равно та, которая захардкожена в addCustomer()?

Как оно работает или где почитать о том, как оно работает?

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

5 minutes ago, splka said:

которая захардкожена в addCustomer()?

Ниразу не так

if (isset($data['customer_group_id']) && is_array($this->config->get('config_customer_group_display')) && in_array($data['customer_group_id'], $this->config->get('config_customer_group_display'))) {
	$customer_group_id = $data['customer_group_id'];
} else {
	$customer_group_id = $this->config->get('config_customer_group_id');
}

 

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


1 минуту назад, LTRay сказал:

Ниразу не так


if (isset($data['customer_group_id']) && is_array($this->config->get('config_customer_group_display')) && in_array($data['customer_group_id'], $this->config->get('config_customer_group_display'))) {
	$customer_group_id = $data['customer_group_id'];
} else {
	$customer_group_id = $this->config->get('config_customer_group_id');
}

 


I don't think so.
Этот кусок кода я пытался закомментировать или же менять значения в нём - не работатет.

Всё равно отдаёт значение группы по умолчанию.

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

17 минут назад, LTRay сказал:

Проверьте что у вас в


$data['customer_group_id']
$this->config->get('config_customer_group_display')

Всё просто


Я ща задам глупый вопрос - а как правильно?
Через echo, exit?
У меня там json форма регистрации та, что в шаблоне unishop.
или через fopen, fwrite, fclose?
 

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

1 минуту назад, LTRay сказал:

Все по разному делают, кому что нравится

Я лично через var_dump и консоль


О! забыл про var_dump.
Буду пробовать и отпишусь, спасибо.

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

Отписываюсь:
Для unishop quick register работает следующим образом:
controller/unishop/login_register.php

		$promo = isset($this->request->post['promo']) ? htmlspecialchars(strip_tags($this->request->post['promo'])) : '';
		if (!empty($promo)){
		if (isset($promo)) {
		if ((strtolower($promo) != 'promo') && (strtolower($promo) != 'промо') && (strtolower($promo) != 'ghjvj')) {
		$json['error']['promo'] = $this->language->get('error_promo');
			}

Там где
 

		if (!$json) {

добавить
 

			$data['promo'] = isset($this->request->post['promo']) ? $this->request->post['promo'] : '';

для того чтобы данные передать в модель.

 

Затем в model/account/customer.php


      

//Этот if относится к группам покупателей магазина. 
if (isset($data['customer_group_id']) && is_array($this->config->get('config_customer_group_display')) && in_array($data['customer_group_id'], $this->config->get('config_customer_group_display'))) {
            $customer_group_id = $data['customer_group_id'];
        }
        else {
        if (isset($data['promo']) && strtolower($data['promo']) == 'promo') {
        $customer_group_id = 2;
        }
        //Повторить нужное количество раз для разных вариантов написания промо-кода.
		// Или для разных промо-кодов.
		//Затем фигачим группу по умолчанию.
        else{$customer_group_id = 1;}

:)

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

40 минут назад, LTRay сказал:

Как жаль что за такой код не стреляют сразу с танкового пулемёта


У меня времени оптимизировать не было.
Мне надо было понять как работают группы.
Для написаного на коленке сойдёт.
А вот для допиливания руками - каждый сам себе

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

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

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

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

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

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

Вхід

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

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

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

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

Important Information

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