Автоматична генерація паролю при реєстрації Opencart

Opencart 48 секунд 14 трав. 2022
 Автоматична генерація паролю при реєстрації Opencart

Погодьтесь не завжди є час придумати надійний пароль для аккаунту при реєстрації в різних системах,  в тому числі Opencart. Приступимо до розв'язання цього питання. 
Спочатку поправимо контролер

catalog/controller/account/register.php

Додаємо функцію яка буде генерувати випадковий пароль вказаної довжини

/**
     * @param $chars
     * @return false|string
     */
    private function randomPasswordGenerate($chars)
    {
        $data = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcefghijklmnopqrstuvwxyz';
        return substr(str_shuffle($data), 0, $chars);
    }

Далі тут же знаходимо метод валідації  validate()  та відразу на початку вставимо 

  $this->request->post['password'] = $this->request->post['confirm'] = $this->randomPasswordGenerate(8);

Далі потрібно з шаблону видалити/закоментувати поля які потрібні для введення паролю та його підтвердження.
catalog/view/theme/*/template/account/register.twig

Це все. Тепер пароль буде автоматично згенерований та надіслали клієнту на email, що був указаний при реєстрації.

Проста реєстрація та замовлення Simple

Тут простіше це зробити. Ідемо в налаштування > Замовлення > Налаштування блоків Покупець 
Та відключаємо поля пароль та підтвердження паролю

У Simple уже є механізм генерування паролю.
Якщо цікаво ось приклад 

 $this->load->model('tool/simpleapimain');
$this->model_tool_simpleapimain->getRandomPassword()

Важливо

Всі зміни в коді Opencart максимально можливо потрібно робити через модифікатори !!! Щоб вас потім не згадував інший розробник не злим тихим словом ))