ACTION
FO
Desde 1.5
actionCustomerAccountAdd
~3 min de lectura
#Descripcion
Se ejecuta cuando un nuevo cliente crea su cuenta en la tienda. Se dispara despues de que el cliente es guardado en la base de datos, permitiendo ejecutar acciones post-registro como suscripcion a newsletters, envio de datos a CRMs, creacion de registros asociados o asignacion de cupones de bienvenida.
Disparado por
-
AuthController::processSubmitAccount()— controllers/front/AuthController.php
#Parametros
| Nombre | Tipo | Requerido | Descripcion |
|---|---|---|---|
| $newCustomer | Customer | Si | Objeto Customer del nuevo cliente registrado |
Retorno
void
Este hook no espera valor de retorno
#Ejemplo de codigo
mymodule.php
php
<?php
public function install()
{
return parent::install()
&& $this->registerHook('actionCustomerAccountAdd');
}
mymodule.php
php
<?php
/**
* Hook actionCustomerAccountAdd — nuevo cliente registrado
*/
public function hookActionCustomerAccountAdd(array $params)
{
/** @var Customer $customer */
$customer = $params['newCustomer'];
// Ejemplo: Crear cupon de bienvenida del 10%
$voucher = new CartRule();
$voucher->name = array_fill_keys(
Language::getIDs(),
'Bienvenido ' . $customer->firstname . ' - 10% descuento'
);
$voucher->code = 'WELCOME' . strtoupper(Tools::passwdGen(6));
$voucher->reduction_percent = 10.0;
$voucher->quantity = 1;
$voucher->quantity_per_user = 1;
$voucher->date_from = date('Y-m-d H:i:s');
$voucher->date_to = date('Y-m-d H:i:s', strtotime('+30 days'));
$voucher->minimum_amount = 20.0;
$voucher->active = 1;
$voucher->id_customer = (int) $customer->id;
if ($voucher->add()) {
// Registrar el cupon asignado
Db::getInstance()->insert('mymodule_welcome_vouchers', [
'id_customer' => (int) $customer->id,
'id_cart_rule' => (int) $voucher->id,
'code' => pSQL($voucher->code),
'date_add' => date('Y-m-d H:i:s'),
]);
}
// Ejemplo: Sincronizar con CRM externo
// $this->syncToCRM($customer);
}
#Notas y gotchas
- ⚠️ El cliente ya esta guardado en BD cuando se ejecuta este hook — `$customer->id` es valido.
- ⚠️ Este hook NO se dispara cuando un cliente se crea desde el Back Office — solo desde el front.
- ⚠️ Para capturar clientes creados desde BO, usa `actionObjectCustomerAddAfter`.
- ⚠️ Si necesitas actuar cuando el cliente hace login (no solo registro), usa `actionAuthentication`.
- ⚠️ El email del cliente ya esta validado como unico en este punto.
#Relacionados
#Historial de versiones
| Version PS | Cambio |
|---|---|
| 1.5 | Introducido con el parametro newCustomer |
| 1.7 | Sin cambios. Compatible con PS 1.7, 8.x y 9.x |
Descargar en Markdown
Pensado para pegar en ChatGPT, Claude u otra IA. Incluye solo el contenido de esta pagina.