---
title: displayCarrierExtraContent
section: hooks
slug: displayCarrierExtraContent
hook_type: display
category: carriers
location: FO
since_version: 1.7
source_url: "https://ayudaprestashop.es/hooks/displayCarrierExtraContent"
---

# Hook `displayCarrierExtraContent`

| Propiedad | Valor |
| --- | --- |
| Tipo | Display |
| Localizacion | FO |
| Categoria | carriers |
| Desde version | 1.7 |

## 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.

## Parametros

| Nombre | Tipo | Requerido | Descripcion |
| --- | --- | --- | --- |
| `carrier` | `Carrier` | si | Objeto Carrier del transportista actual |

## Valor de retorno

- **Tipo**: `string`
- **Descripcion**: HTML que se muestra debajo de la opcion del transportista

## Disparado por

| Contexto | Clase | Metodo | Fichero |
| --- | --- | --- | --- |
| CheckoutDeliveryStep | `CheckoutDeliveryStepCore` | `render()` | `src/Adapter/Presenter/Order/OrderPresenter.php` |

**Paginas**: `checkout`

## Registro del hook

```php
public function install()
{
    return parent::install()
        && $this->registerHook('displayCarrierExtraContent');
}
```

## Ejemplo de uso

```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');
}
```

## Ejemplo Smarty

```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.

## Hooks relacionados

- [`displayBeforeCarrier`](https://ayudaprestashop.es/hooks/displayBeforeCarrier)
- [`actionCarrierProcess`](https://ayudaprestashop.es/hooks/actionCarrierProcess)
- [`actionValidateStepComplete`](https://ayudaprestashop.es/hooks/actionValidateStepComplete)
- [`displayCheckoutSummaryTop`](https://ayudaprestashop.es/hooks/displayCheckoutSummaryTop)

## Guias relacionadas

- [carriers/pickup-points](https://ayudaprestashop.es/carriers/pickup-points)
- [carriers/overview](https://ayudaprestashop.es/carriers/overview)
- [front/ajax](https://ayudaprestashop.es/front/ajax)

## Historial de versiones

| Version | Cambio |
| --- | --- |
| 1.7 | Introducido con el nuevo checkout de 5 pasos de PS 1.7 |


---

*Fuente: [https://ayudaprestashop.es/hooks/displayCarrierExtraContent](https://ayudaprestashop.es/hooks/displayCarrierExtraContent). Version Markdown generada automaticamente para consumo por LLMs.*
