Автоматична генерація паролю при реєстрації 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 максимально можливо потрібно робити через модифікатори !!! Щоб вас потім не згадував інший розробник не злим тихим словом ))