Jump to content
splka

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

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()?

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

Share this post


Link to post
Share on other sites
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');
}

 

Share this post


Link to post
Share on other sites
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.
Этот кусок кода я пытался закомментировать или же менять значения в нём - не работатет.

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

Share this post


Link to post
Share on other sites

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

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

Всё просто

Share this post


Link to post
Share on other sites
17 минут назад, LTRay сказал:

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


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

Всё просто


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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
1 минуту назад, LTRay сказал:

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

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


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

Share this post


Link to post
Share on other sites
Posted (edited)

Отписываюсь:
Для 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;}

:)

Edited by splka

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
40 минут назад, LTRay сказал:

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


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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.