Изменить регистрационный бэкэнд Prestashop - PullRequest
0 голосов
/ 29 октября 2018

У меня есть сайт Prestashop 1.7.

Я хочу добавить в свою базу данных столбец id_public для моих клиентов со случайным идентификатором из 16 символов. Это должно быть создано, когда клиент регистрируется на сайте.

Как мне это сделать?

/**
 * Creates a default 16 char long hexdec string
 * @param number $length
 * @return string
 */
function RandomString( $length = 16 )
{
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++)
    {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}

1 Ответ

0 голосов
/ 30 октября 2018

1 / Я рекомендую не изменять собственные таблицы Prestashop, а создать новую.

2 / С помощью actionCustomerAccountAdd Hook вы сможете добавить свой ключ для пользователя

    public function hookActionSubmitAccountBefore($params) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++)
    {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    Db::getInstance()->execute('INSERT INTO '._DB_PREFIX_.'tablecustom (id_customer, key_random) VALUES ('.(int)$params['id_customer'].',"'.pSQL($randomString).'")');
}
...