Bonjour à tous,
Je me permets de créer un nouveau topic pour appeler à l'aide :
J'ai récemment mis à jour Thelia sur un site e-commerce que je gère afin de pouvoir installer un module dont j'avais besoin. La mise à jour s'est bien passé mais depuis, impossible de passer une commande. Au moment de finaliser cette dernière, j'obtiens cette erreur (en mode développement) :
LogicException in TemplateHelper.php line 43:
This class should be initialized before getInstance() call.
in TemplateHelper.php line 43
at TemplateHelper::getInstance() in OrderStatusListener.php line 177
at OrderStatusListener->checkSendOrderConfirmationMessageToCustomer(object(OrderEvent), 'action.order.sendOrderConfirmationEmail', object(ContainerAwareEventDispatcher))
at call_user_func(array(object(OrderStatusListener), 'checkSendOrderConfirmationMessageToCustomer'), object(OrderEvent), 'action.order.sendOrderConfirmationEmail', object(ContainerAwareEventDispatcher)) in EventDispatcher.php line 181
at EventDispatcher->doDispatch(array(array(object(OrderStatusListener), 'checkSendOrderConfirmationMessageToCustomer'), array(object(Order), 'sendConfirmationEmail')), 'action.order.sendOrderConfirmationEmail', object(OrderEvent)) in EventDispatcher.php line 46
at EventDispatcher->dispatch('action.order.sendOrderConfirmationEmail', object(OrderEvent)) in Order.php line 467
at Order->orderBeforePayment(object(OrderEvent), 'action.order.beforePayment', object(ContainerAwareEventDispatcher))
at call_user_func(array(object(Order), 'orderBeforePayment'), object(OrderEvent), 'action.order.beforePayment', object(ContainerAwareEventDispatcher)) in EventDispatcher.php line 181
at EventDispatcher->doDispatch(array(array(object(Order), 'orderBeforePayment'), array(object(Coupon), 'afterOrder')), 'action.order.beforePayment', object(OrderEvent)) in EventDispatcher.php line 46
at EventDispatcher->dispatch('action.order.beforePayment', object(OrderEvent)) in Order.php line 444
at Order->create(object(OrderEvent), 'action.order.pay', object(ContainerAwareEventDispatcher))
at call_user_func(array(object(Order), 'create'), object(OrderEvent), 'action.order.pay', object(ContainerAwareEventDispatcher)) in EventDispatcher.php line 181
at EventDispatcher->doDispatch(array(array(object(Order), 'create')), 'action.order.pay', object(OrderEvent)) in EventDispatcher.php line 46
at EventDispatcher->dispatch('action.order.pay', object(OrderEvent)) in OrderController.php line 334
at OrderController->pay()
at call_user_func_array(array(object(OrderController), 'pay'), array()) in HttpKernel.php line 139
at HttpKernel->handleRaw(object(Request), '1') in HttpKernel.php line 62
at HttpKernel->handle(object(Request), '1', true) in TheliaHttpKernel.php line 76
at TheliaHttpKernel->handle(object(Request), '1', true) in ParamInitMiddleware.php line 87
at ParamInitMiddleware->handle(object(Request), '1', true) in SessionMiddleware.php line 80
at SessionMiddleware->handle(object(Request), '1', true) in StackedHttpKernel.php line 23
at StackedHttpKernel->handle(object(Request), '1', true) in Kernel.php line 185
at Kernel->handle(object(Request)) in index_dev.php line 37
Après vérification, je vois que le module d'envoi de mail pour informer du changement de statut de la commande appelle des méthodes qui sont dépréciées dans Thelia 2.3. Le bloc incriminé est le suivant (avec la ligne exacte qui pose problème) :
public function checkSendOrderConfirmationMessageToCustomer(OrderEvent $event)
{
$event->stopPropagation();
(traitement...)
if ($event->getOrder()->getPaymentModuleId() === WireTransfer::getModuleId() || $event->getOrder()->getPaymentModuleId() === Cheque::getModuleId()) {
ICI >>>$this->parser->setTemplateDefinition(TemplateHelper::getInstance()->getActivePdfTemplate())
$html = $this->parser->render(ConfigQuery::read('pdf_order_file', 'order').'.html', array('order_id' => $order->getId()));
Régler ce genre de problème dépasse de loin mes compétences... Est-ce que l'un de vous saurait quoi faire ?
Merci d'avance !