DISPLAY
FO
Desde 1.7
displayCarrierExtraContent
~3 min de lectura
#Descripcion
Muestra contenido extra debajo de cada opcion de transportista en el paso de envio del checkout. Permite añadir funcionalidades como seleccion de puntos de recogida (pickup points), calendarios de entrega, instrucciones especiales, mapas interactivos o formularios adicionales especificos para cada transportista.
Disparado por
-
CheckoutDeliveryStepCore::render()— src/Adapter/Presenter/Order/OrderPresenter.php
#Parametros
| Nombre | Tipo | Requerido | Descripcion |
|---|---|---|---|
| $carrier | Carrier | Si | Objeto Carrier del transportista actual |
Retorno
string
HTML que se muestra debajo de la opcion del transportista
#Ejemplo de codigo
mymodule.php
php
public function install()
{
return parent::install()
&& $this->registerHook('displayCarrierExtraContent');
}
mymodule.php
php
/**
* Hook displayCarrierExtraContent — Selector de puntos de recogida
*/
public function hookDisplayCarrierExtraContent($params)
{
$carrier = $params['carrier'];
// Solo mostrar para nuestro transportista
if ((int)$carrier->id !== (int)Configuration::get('MYMODULE_CARRIER_ID')) {
return '';
}
// Obtener direccion del cliente para buscar puntos cercanos
$address = new Address($this->context->cart->id_address_delivery);
$pickupPoints = $this->getPickupPoints(
$address->postcode,
$address->city,
$address->id_country
);
$this->context->smarty->assign([
'pickup_points' => $pickupPoints,
'id_carrier' => (int)$carrier->id,
'ajax_url' => $this->context->link->getModuleLink(
$this->name, 'pickupPoints', ['ajax' => 1]
),
'selected_point' => $this->context->cookie->__get('mymod_pickup_point'),
]);
return $this->display(__FILE__, 'views/templates/hook/carrier-extra.tpl');
}
template.tpl
smarty
{hook h='displayCarrierExtraContent' carrier=$carrier}
#Notas y gotchas
- ⚠️ El hook se ejecuta para CADA transportista. Filtra siempre con `$carrier->id` para mostrar solo tu contenido.
- ⚠️ Si necesitas AJAX (ej: mapa de puntos de recogida), registra tu JS con `actionFrontControllerSetMedia`.
- ⚠️ El contenido se muestra colapsado — aparece solo cuando el cliente selecciona ese transportista.
- ⚠️ Para guardar la seleccion del punto de recogida, usa cookies o sessions y procesalo en `actionValidateOrder`.
- ⚠️ Solo disponible desde PS 1.7 — en PS 1.6, usa hooks genericos del checkout.
#Relacionados
#Historial de versiones
| Version PS | Cambio |
|---|---|
| 1.7 | Introducido con el nuevo checkout de 5 pasos de PS 1.7 |
Descargar en Markdown
Pensado para pegar en ChatGPT, Claude u otra IA. Incluye solo el contenido de esta pagina.