Hola @ruben_online65,
@hugo_8933 ha dado en el clavo. Es un error bastante común en módulos que no están totalmente actualizados para las particularidades de PrestaShop 1.7.x en cuanto a cómo se gestionan los hooks y el contexto de Smarty.
El método hookDisplayShoppingCart sí recibe el array $params del sistema de hooks de PrestaShop. Este $params contiene el objeto Cart y otra información relevante. Sin embargo, al llamar a renderForHookPosition('displayShoppingCart'), esa función renderiza el template sin pasarle esos $params al contexto de Smarty, a menos que se le indique explícitamente.
Para solucionar esto y asegurar que tu template tenga acceso a los datos del carrito, debes modificar la llamada para que se pasen los parámetros recibidos por el hook. Aquí tienes la corrección en tu archivo smartfreeshippingpro/smartfreeshippingpro.php:
function hookDisplayShoppingCart($params)
{
$this->context->smarty->assign($params);
return $this->renderForHookPosition('displayShoppingCart');
}
Explicación del cambio:
function hookDisplayShoppingCart($params): Se añade $params como argumento a la función, indicando que el hook recibe parámetros.
$this->context->smarty->assign($params);: Esta línea es crucial. Asigna todo el array $params (que incluye el objeto Cart) al contexto de Smarty. De esta forma, cualquier variable dentro de $params estará disponible directamente en tu archivo .tpl asociado al hook ({$cart}, {$product}, etc.).
Con este ajuste, tu template podrá acceder a los datos actualizados del carrito y tu barra de envío gratuito debería recalcularse correctamente cada vez que se dispare el evento updatedCart.