我有一个Prestashop 1.7网站。
我想在我的数据库中为我的客户添加id_public列,其ID为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;
}
答案 0 :(得分:0)
1 /我建议您不要修改Prestashop的本机表,而是创建一个新表。
2 /使用actionCustomerAccountAdd挂钩,您将能够为用户添加密钥
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).'")');
}