---
title: displayProductButtons
section: hooks
slug: displayProductButtons
hook_type: display
category: display-product
location: FO
since_version: 1.5
source_url: "https://ayudaprestashop.es/hooks/displayProductButtons"
---

# Hook `displayProductButtons`

| Propiedad | Valor |
| --- | --- |
| Tipo | Display |
| Localizacion | FO |
| Categoria | display-product |
| Desde version | 1.5 |

## Descripcion

Añade botones o contenido junto al boton de 'Añadir al carrito' en la pagina de producto. Es el hook ideal para funcionalidades como 'Añadir a la lista de deseos', 'Comparar productos', 'Compartir en redes sociales', 'Aviso de disponibilidad' o cualquier accion relacionada con el producto.

## Parametros

| Nombre | Tipo | Requerido | Descripcion |
| --- | --- | --- | --- |
| `product` | `array` | si | Array con datos del producto actual (id_product, name, price, etc.) |

## Valor de retorno

- **Tipo**: `string`
- **Descripcion**: HTML con los botones o acciones adicionales

## Disparado por

| Contexto | Clase | Metodo | Fichero |
| --- | --- | --- | --- |
| ProductController | `ProductControllerCore` | `initContent()` | `controllers/front/ProductController.php` |

**Paginas**: `product`

## Registro del hook

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

## Ejemplo de uso

```php
/**
 * Hook displayProductButtons — Boton de lista de deseos
 */
public function hookDisplayProductButtons($params)
{
    $product = $params['product'];
    $id_product = (int)($product['id_product'] ?? $product->id ?? 0);

    if (!$id_product) {
        return '';
    }

    // Verificar si el producto ya esta en la wishlist del cliente
    $inWishlist = false;
    if ($this->context->customer->isLogged()) {
        $inWishlist = Db::getInstance()->getValue(
            'SELECT COUNT(*) FROM `' . _DB_PREFIX_ . 'my_wishlist`
             WHERE id_customer = ' . (int)$this->context->customer->id . '
             AND id_product = ' . $id_product
        );
    }

    $this->context->smarty->assign([
        'id_product' => $id_product,
        'in_wishlist' => (bool)$inWishlist,
        'is_logged' => $this->context->customer->isLogged(),
        'wishlist_url' => $this->context->link->getModuleLink(
            $this->name, 'toggle', ['id_product' => $id_product]
        ),
    ]);

    return $this->display(__FILE__, 'views/templates/hook/product-button.tpl');
}
```

## Ejemplo Smarty

```smarty
{hook h='displayProductButtons' product=$product}
```

## Notas y gotchas

- El parametro product es un array en PS 1.7+, no un objeto Product. Usa $product['id_product'].
- En PS 1.6, el parametro puede ser un objeto Product. Para compatibilidad: $product['id_product'] ?? $product->id.
- El hook se ejecuta DENTRO del formulario de 'añadir al carrito', por lo que puedes añadir inputs hidden.
- Para botones con AJAX, asegurate de registrar tus JS con actionFrontControllerSetMedia.
- Tambien existe displayProductAdditionalInfo que se muestra debajo del boton de añadir al carrito.

## Hooks relacionados

- [`displayProductAdditionalInfo`](https://ayudaprestashop.es/hooks/displayProductAdditionalInfo)
- [`displayProductExtraContent`](https://ayudaprestashop.es/hooks/displayProductExtraContent)
- [`displayProductTab`](https://ayudaprestashop.es/hooks/displayProductTab)
- [`displayReassurance`](https://ayudaprestashop.es/hooks/displayReassurance)
- [`displayProductPriceBlock`](https://ayudaprestashop.es/hooks/displayProductPriceBlock)

## Guias relacionadas

- [front/frontcontroller](https://ayudaprestashop.es/front/frontcontroller)
- [front/ajax](https://ayudaprestashop.es/front/ajax)
- [modules/main-file](https://ayudaprestashop.es/modules/main-file)

## Historial de versiones

| Version | Cambio |
| --- | --- |
| 1.5 | Introducido para botones junto al carrito |
| 1.7 | El parametro product cambia de objeto a array |


---

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