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

Дополнительная информация в письме админу при регистрации нового пользователя


Recommended Posts

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

да тут как бы все добавляется

не как бы, а смотрим при регистрации ID нового юсера, потом идем в бд и смотрим в таблице customer_scfield в поле customer_id его идентификатор есть он там вообще

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

7 минут назад, Venter сказал:

не как бы, а смотрим при регистрации ID нового юсера, потом идем в бд и смотрим в таблице customer_scfield в поле customer_id его идентификатор есть он там вообще

image.png.9842b7eb0e150ceca501a94d103cbcc3.png

вот последний который я добавлял

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


10 минут назад, Maxik1988 сказал:

в какой таблице находятся покупатели?

Здесь как ты выше САМ написал номер карты, в таблице customer покупатели

 

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

замени вот это

$query->row['value'];

на

$m_query->row['value'];

 

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

1 час назад, Venter сказал:

$m_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_scfield WHERE customer_id = ".(int)$customer_id); $num_card = $query->row['value'];

А есть возможность проверить этот запрос если его вывести куда нибудь?

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


6 минут назад, Venter сказал:

Здесь как ты выше САМ написал номер карты, в таблице customer покупатели

 

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

замени вот это


$query->row['value'];

на


$m_query->row['value'];

 

все тоже самое

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


ОС чет понимать не хочет вот это

WHERE customer_id = ".(int)$customer_id);

нужно передать вот прям строкой и никак иначе

 

короче в итоге

 

$m_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_scfield WHERE customer_id = '" . (int)$customer_id . "'");

		$num_card = $m_query->row['value'];

 

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

15 минут назад, Venter сказал:

ОС чет понимать не хочет вот это


WHERE customer_id = ".(int)$customer_id);

нужно передать вот прям строкой и никак иначе

 

короче в итоге

 


$m_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_scfield WHERE customer_id = '" . (int)$customer_id . "'");

		$num_card = $m_query->row['value'];

 

Попробовал все тоже самое

может я что то не то и не туда вставляю. посмотрите я хоть правильно в коде вставляю?

Спойлер

<?php
class ModelAccountCustomer extends Model {
    public function addCustomer($data) {
        $this->event->trigger('pre.customer.add', $data);

        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');
        }

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

        $customer_group_info = $this->model_account_customer_group->getCustomerGroup($customer_group_id);

        $this->db->query("INSERT INTO " . DB_PREFIX . "customer SET customer_group_id = '" . (int)$customer_group_id . "', store_id = '" . (int)$this->config->get('config_store_id') . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', custom_field = '" . $this->db->escape(isset($data['custom_field']['account']) ? json_encode($data['custom_field']['account']) : '') . "', salt = '" . $this->db->escape($salt = token(9)) . "', password = '" . $this->db->escape(sha1($salt . sha1($salt . sha1($data['password'])))) . "', newsletter = '" . (isset($data['newsletter']) ? (int)$data['newsletter'] : 0) . "', ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "', status = '1', approved = '" . (int)!$customer_group_info['approval'] . "', date_added = NOW()");

        $customer_id = $this->db->getLastId();

        $this->db->query("INSERT INTO " . DB_PREFIX . "address SET customer_id = '" . (int)$customer_id . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', company = '" . $this->db->escape($data['company']) . "', address_1 = '" . $this->db->escape($data['address_1']) . "', address_2 = '" . $this->db->escape($data['address_2']) . "', city = '" . $this->db->escape($data['city']) . "', postcode = '" . $this->db->escape($data['postcode']) . "', country_id = '" . (int)$data['country_id'] . "', zone_id = '" . (int)$data['zone_id'] . "', custom_field = '" . $this->db->escape(isset($data['custom_field']['address']) ? json_encode($data['custom_field']['address']) : '') . "'");

        $address_id = $this->db->getLastId();

        $this->db->query("UPDATE " . DB_PREFIX . "customer SET address_id = '" . (int)$address_id . "' WHERE customer_id = '" . (int)$customer_id . "'");

        $this->load->language('mail/customer');

        $subject = sprintf($this->language->get('text_subject'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'));

        $message = sprintf($this->language->get('text_welcome'), html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8')) . "\n\n";

        if (!$customer_group_info['approval']) {
            $message .= $this->language->get('text_login') . "\n";
        } else {
            $message .= $this->language->get('text_approval') . "\n";
        }
        
        $m_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_scfield WHERE customer_id = '" . (int)$customer_id . "'");

        $num_card = $m_query->row['value'];
        
        
        $message .= $this->url->link('account/login', '', 'SSL') . "\n\n";
        $message .= $this->language->get('text_services') . "\n\n";
        $message .= $this->language->get('text_thanks') . "\n";
        $message .= html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8');

        $mail = new Mail();
        $mail->protocol = $this->config->get('config_mail_protocol');
        $mail->parameter = $this->config->get('config_mail_parameter');
        $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
        $mail->smtp_username = $this->config->get('config_mail_smtp_username');
        $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
        $mail->smtp_port = $this->config->get('config_mail_smtp_port');
        $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

        $mail->setTo($data['email']);
        $mail->setFrom($this->config->get('config_email'));
        $mail->setSender(html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'));
        $mail->setSubject($subject);
        $mail->setText($message);
        $mail->send();

        // Send to main admin email if new account email is enabled
        if ($this->config->get('config_account_mail')) {
            $message  = $this->language->get('text_signup') . "\n\n";
            $message .= $this->language->get('text_website') . ' ' . html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8') . "\n";
            $message .= $this->language->get('text_firstname') . ' ' . $data['firstname'] . "\n";
            $message .= $this->language->get('text_lastname') . ' ' . $data['lastname'] . "\n";
            $message .= $this->language->get('text_customer_group') . ' ' . $customer_group_info['name'] . "\n";
            //$message .= $this->language->get('text_email') . ' '  .  $data['email'] . "\n";
            //$message .= $this->language->get('text_telephone') . ' ' . $data['telephone'] . "\n";
            $message .= 'Номер карты -  ' . $num_card . "\n";
            
            $mail = new Mail();
            $mail->protocol = $this->config->get('config_mail_protocol');
            $mail->parameter = $this->config->get('config_mail_parameter');
            $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
            $mail->smtp_username = $this->config->get('config_mail_smtp_username');
            $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
            $mail->smtp_port = $this->config->get('config_mail_smtp_port');
            $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

            $mail->setTo($this->config->get('config_email'));
            $mail->setFrom($this->config->get('config_email'));
            $mail->setSender(html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8'));
            $mail->setSubject(html_entity_decode($this->language->get('text_new_customer'), ENT_QUOTES, 'UTF-8'));
            $mail->setText($message);
            $mail->send();

            // Send to additional alert emails if new account email is enabled
            $emails = explode(',', $this->config->get('config_mail_alert'));

            foreach ($emails as $email) {
                if (utf8_strlen($email) > 0 && preg_match($this->config->get('config_mail_regexp'), $email)) {
                    $mail->setTo($email);
                    $mail->send();
                }
            }
        }

        $this->event->trigger('post.customer.add', $customer_id);

        return $customer_id;
    }

    public function editCustomer($data) {
        $this->event->trigger('pre.customer.edit', $data);

        $customer_id = $this->customer->getId();

        $this->db->query("UPDATE " . DB_PREFIX . "customer SET firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', email = '" . $this->db->escape($data['email']) . "', telephone = '" . $this->db->escape($data['telephone']) . "', fax = '" . $this->db->escape($data['fax']) . "', custom_field = '" . $this->db->escape(isset($data['custom_field']) ? json_encode($data['custom_field']) : '') . "' WHERE customer_id = '" . (int)$customer_id . "'");

        $this->event->trigger('post.customer.edit', $customer_id);
    }

    public function editPassword($email, $password) {
        $this->event->trigger('pre.customer.edit.password');

        $this->db->query("UPDATE " . DB_PREFIX . "customer SET salt = '" . $this->db->escape($salt = token(9)) . "', password = '" . $this->db->escape(sha1($salt . sha1($salt . sha1($password)))) . "' WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "'");

        $this->event->trigger('post.customer.edit.password');
    }

    public function editNewsletter($newsletter) {
        $this->event->trigger('pre.customer.edit.newsletter');

        $this->db->query("UPDATE " . DB_PREFIX . "customer SET newsletter = '" . (int)$newsletter . "' WHERE customer_id = '" . (int)$this->customer->getId() . "'");

        $this->event->trigger('post.customer.edit.newsletter');
    }

    public function getCustomer($customer_id) {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE customer_id = '" . (int)$customer_id . "'");

        return $query->row;
    }

    public function getCustomerByEmail($email) {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "'");

        return $query->row;
    }

    public function getCustomerByToken($token) {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer WHERE token = '" . $this->db->escape($token) . "' AND token != ''");

        $this->db->query("UPDATE " . DB_PREFIX . "customer SET token = ''");

        return $query->row;
    }

    public function getTotalCustomersByEmail($email) {
        $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "customer WHERE LOWER(email) = '" . $this->db->escape(utf8_strtolower($email)) . "'");

        return $query->row['total'];
    }

    public function getRewardTotal($customer_id) {
        $query = $this->db->query("SELECT SUM(points) AS total FROM " . DB_PREFIX . "customer_reward WHERE customer_id = '" . (int)$customer_id . "'");

        return $query->row['total'];
    }

    public function getIps($customer_id) {
        $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "customer_ip` WHERE customer_id = '" . (int)$customer_id . "'");

        return $query->rows;
    }

    public function addLoginAttempt($email) {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_login WHERE email = '" . $this->db->escape(utf8_strtolower((string)$email)) . "' AND ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "'");

        if (!$query->num_rows) {
            $this->db->query("INSERT INTO " . DB_PREFIX . "customer_login SET email = '" . $this->db->escape(utf8_strtolower((string)$email)) . "', ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "', total = 1, date_added = '" . $this->db->escape(date('Y-m-d H:i:s')) . "', date_modified = '" . $this->db->escape(date('Y-m-d H:i:s')) . "'");
        } else {
            $this->db->query("UPDATE " . DB_PREFIX . "customer_login SET total = (total + 1), date_modified = '" . $this->db->escape(date('Y-m-d H:i:s')) . "' WHERE customer_login_id = '" . (int)$query->row['customer_login_id'] . "'");
        }
    }

    public function getLoginAttempts($email) {
        $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "customer_login` WHERE email = '" . $this->db->escape(utf8_strtolower($email)) . "'");

        return $query->row;
    }

    public function deleteLoginAttempts($email) {
        $this->db->query("DELETE FROM `" . DB_PREFIX . "customer_login` WHERE email = '" . $this->db->escape(utf8_strtolower($email)) . "'");
    }
}
 

 

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


ТС вообще понимаете что ваша нео сео может получать данные ваших пользователей??? Никак в голову не приходило???

Тем боле вы с картами будете работать. То есть вы раздаете чужие данные сами того не зная. Зам вам это??? Поставьте нормальную сборку

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

10 минут назад, Maxik1988 сказал:

Попробовал все тоже самое

может я что то не то и не туда вставляю. посмотрите я хоть правильно в коде вставляю?

 

 

я уже задолбался тебе объяснять, как маленький!!!!! После регистрации смотришь В БД и смотриш ID нового юсера.

ДАЛЕЕ если данные по карте хранятся в таблице customer_scfield, как ты с самого начала сказал то смотришь в ту таблицу и смотришь есть ли там этот юсер по customer_id

 

Лично проверил на ocstore 2.3, только в другую таблицу делал запрос

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

1 час назад, Venter сказал:

Лично проверил на ocstore 2.3, только в другую таблицу делал запрос

Судя по картинке, customer_id в этой таблице ни разу не уникальное, так что просто взять и вывести  
$m_query->row['value'];
никак не получится :)
И, главное, непонятно, на что там ориентироваться, чтобы верный результат выдавать, может быть, изменить запрос на
 

$m_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_scfield WHERE customer_id = '" . (int)$customer_id . "'" . "AND name = 'custom_10'");

 

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


По факту не ясно

 

1 Действительно ли данные по карте хранятся в таблице oc_customer_scfield

2 Если в этой таблице хранятся то прилетают ли данные в эту таблицу при регистрации особенно номер карты

 

10 минут назад, Shureg сказал:

Судя по картинке, customer_id в этой таблице ни разу не уникальное, так что просто взять и вывести  
$m_query->row['value'];
никак не получится :)
И, главное, непонятно, на что там ориентироваться, чтобы верный результат выдавать, может быть, изменить запрос на

 $customer_id  берется отсюда $customer_id = $this->db->getLastId();

 

По ходу или таблица не та где данные по карте хранятся либо вообще в таблицу ничего не прилетает при опред условиях

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

13 минут назад, Shureg сказал:

Судя по картинке, customer_id в этой таблице ни разу не уникальное, так что просто взять и вывести  

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

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

2 минуты назад, Venter сказал:

По факту не ясно

 

1 Действительно ли данные по карте хранятся в таблице oc_customer_scfield

2 Если в этой таблице хранятся то прилетают ли данные в эту таблицу при регистрации особенно номер карты

 

 $customer_id  берется отсюда $customer_id = $this->db->getLastId();

 

По ходу или таблица не та где данные по карте хранятся либо вообще в таблицу ничего не прилетает при опред условиях

прилетает. оно в личном кабинете на фронте выводит. там скорее всего действительно не уникальный customer_id

 

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


Только что, Dimasscus сказал:

там скорее всего действительно не уникальный customer_id

по картинке сразу видно, что не уникальный
 

 

Только что, Venter сказал:

ага, вижу, но тогда получили бы первое значение из всей кучи вроде как, хоть что то но получили.

там двумерный массив получается. Чтобы что-то получить, должно быть что-то вроде [1][value]. Просто [value] ничего не выдаст.

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


2 минуты назад, Dimasscus сказал:

понять бы что это за шляпа

а это такой альтернативный стиль программирования, видимо. Не руками. Вместо поля type делать две отдельные записи с именами)

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


3 минуты назад, Shureg сказал:

а это такой альтернативный стиль программирования, видимо. Не руками. Вместо поля type делать две отдельные записи с именами)

мляяя. при этом тайп-это группа покупателя. а вот что такое кастом 10- я вообще боюсь узнать. это ж вот почему недосео берет столько бабла за правки. целый выходной день три сторонних человека и владелец сайта не могут вывести переменную в письмо:))) это даже не смешно ни разу

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


3 часа назад, Dimasscus сказал:

мляяя. при этом тайп-это группа покупателя. а вот что такое кастом 10- я вообще боюсь узнать. это ж вот почему недосео берет столько бабла за правки. целый выходной день три сторонних человека и владелец сайта не могут вывести переменную в письмо:))) это даже не смешно ни разу

custom_10 - это название поля куда вписывается номер карты name="custom_10"

Вот так сделано там:

при добавлении юсера используют метод $this->model_account_neoseo_customer->registerCustomer($this->request->post). Этот метод закоден

Далее, как я думаю, в этом методе сначало используют родной метод addCustomer и потом только делают то что надо дополнительно, поэтому в addCustomer не выходит получить данные поскольку они еще не существуют, причем обрезается еще и пост запрос для addCustomer и отдаются в него только те данные которые он принимает и не больше.

 

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

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

custom_10 - это название поля куда вписывается номер карты name="custom_10"

Вот так сделано там:

при добавлении юсера используют метод $this->model_account_neoseo_customer->registerCustomer($this->request->post). Этот метод закоден

Далее, как я думаю, в этом методе сначало используют родной метод addCustomer и потом только делают то надо дополнительно, поэтому в addCustomer не выходит получить данные поскольку они еще не существуют, причем обрезается еще и пост запрос для addCustomer и отдаются в него только те данные которые он принимает и не больше.

 

то есть тупик?

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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