⚡ Hooks del Back Office — referencia de los mas usados

Actualizado: 2024-12-01

El Back Office de PrestaShop expone mas de 100 hooks para que los modulos puedan modificar y extender sus paginas sin necesidad de overrides. Aqui estan los mas usados en el desarrollo profesional de modulos.

#Hooks de layout del BO

HookDescripcion
displayAdminAfterHeaderContenido justo despues de la cabecera del BO
displayAdminBeforeAntes del contenido principal de cualquier pagina del BO
displayBackOfficeHeaderEn el del BO (para añadir CSS/JS inline)
actionAdminControllerSetMediaPara registrar CSS/JS en el BO (como registerStylesheet)
displayAdminLoginEn la pagina de login del BO
displayAdminNavigationEndAl final de la barra de navegacion lateral

#Hooks de la pagina de pedido

HookDescripcionParametros
displayAdminOrderMainZona principal de la pagina de pedidoid_order
displayAdminOrderSideBarra lateral de la pagina de pedidoid_order
displayAdminOrderTopParte superior de la pagina de pedidoid_order
displayAdminOrderTabContentContenido de un tab en la pagina de pedidoid_order, id_tab
displayAdminOrderTabLinkEnlace de un tab en la pagina de pedidoid_order
actionGetAdminOrderButtonsBotones de la cabecera de la pagina de pedidoid_order, actions

#Hooks de Grid (listados)

Ejemplo de registro y uso de hooks de Grid
php
<?php

public function install(): bool
{
    return parent::install()
        && $this->registerHook('actionOrderGridDefinitionModifier')
        && $this->registerHook('actionOrderGridQueryBuilderModifier')
        && $this->registerHook('actionProductGridDefinitionModifier');
}

// Añadir columna al grid de pedidos
public function hookActionOrderGridDefinitionModifier(array $params): void
{
    $definition = $params['definition'];
    $definition->getColumns()->addAfter(
        'reference',
        (new \PrestaShop\PrestaShop\Core\Grid\Column\Type\DataColumn('mymodule_data'))
            ->setName('Dato extra')
            ->setOptions(['field' => 'mymodule_data'])
    );
}

// Modificar la query del grid de pedidos
public function hookActionOrderGridQueryBuilderModifier(array $params): void
{
    $qb = $params['search_query_builder'];
    $qb->addSelect('md.extra_value AS mymodule_data');
    $qb->leftJoin('o', _DB_PREFIX_ . 'mymodule_order_data', 'md', 'md.id_order = o.id_order');
}

#Hooks de objetos (CRUD)

HookCuando se llama
actionObjectProductAddBefore/AfterAntes/despues de crear un producto
actionObjectProductUpdateBefore/AfterAntes/despues de actualizar un producto
actionObjectProductDeleteBefore/AfterAntes/despues de borrar un producto
actionObjectOrderAddBefore/AfterAntes/despues de crear un pedido
actionObjectCustomerAddBefore/AfterAntes/despues de crear un cliente
actionObjectCategoryAddBefore/AfterAntes/despues de crear una categoria
actionObjectCarrierAddBefore/AfterAntes/despues de crear un transportista
Descargar en Markdown Pensado para pegar en ChatGPT, Claude u otra IA. Incluye solo el contenido de esta pagina.