arousseau Posted April 26, 2016 Share Posted April 26, 2016 Bonjour à tous Je me tourne vers vous pour un soucis que je n'arrive pas à m'expliquer. J'ai créé un override du controller OrderController pour réécrire la fonction init() de cette manière : class OrderController extends OrderControllerCore { public function init() { global $orderTotal; parent::init(); $this->step = (int)Tools::getValue('step'); if (!$this->nbProducts) { $this->step = -1; } $product = $this->context->cart->checkQuantities(true); if ((int)$id_product = $this->context->cart->checkProductsAccess()) { $this->step = 0; $this->errors[] = sprintf(Tools::displayError('An item in your cart is no longer available (%1s). You cannot proceed with your order.'), Product::getProductName((int)$id_product)); } // If some products have disappear if (is_array($product)) { $this->step = 0; $this->errors[] = sprintf(Tools::displayError('An item (%1s) in your cart is no longer available in this quantity. You cannot proceed with your order until the quantity is adjusted.'), $product['name']); } // Check minimal amount $currency = Currency::getCurrency((int)$this->context->cart->id_currency); $orderTotal = $this->context->cart->getOrderTotal(); $minimal_purchase = Tools::convertPrice((float)Configuration::get('PS_PURCHASE_MINIMUM'), $currency); var_dump($minimal_purchase); if ($this->context->cart->getOrderTotal(false, Cart::ONLY_PRODUCTS) < $minimal_purchase && $this->step > 0) { $_GET['step'] = $this->step = 0; $this->errors[] = sprintf( Tools::displayError('A minimum purchase total of %1s TTC is required to validate your order, current purchase total is %2s TTC.'), Tools::displayPrice($minimal_purchase, $currency), Tools::displayPrice($this->context->cart->getOrderTotal(false, Cart::ONLY_PRODUCTS), $currency) ); } if (!$this->context->customer->isLogged(true) && in_array($this->step, array(1, 2, 3))) { $params = array(); if ($this->step) { $params['step'] = (int)$this->step; } if ($multi = (int)Tools::getValue('multi-shipping')) { $params['multi-shipping'] = $multi; } $back_url = $this->context->link->getPageLink('order', true, (int)$this->context->language->id, $params); $params = array('back' => $back_url); if ($multi) { $params['multi-shipping'] = $multi; } if ($guest = (int)Configuration::get('PS_GUEST_CHECKOUT_ENABLED')) { $params['display_guest_checkout'] = $guest; } Tools::redirect($this->context->link->getPageLink('authentication', true, (int)$this->context->language->id, $params)); } if (Tools::getValue('multi-shipping') == 1) { $this->context->smarty->assign('multi_shipping', true); } else { $this->context->smarty->assign('multi_shipping', false); } if ($this->context->customer->id) { $this->context->smarty->assign('address_list', $this->context->customer->getAddresses($this->context->language->id)); } else { $this->context->smarty->assign('address_list', array()); } } Je souhaite pouvoir modifier le texte en gras ainsi que $minimal_purchase pour afficher le tout en TTC. Le problème c'est que lorsque je modifie le texte rien ne se passe. J'ai pensé que cela venait de mon override qui n'était pas pris en compte, j'ai donc ajouté le var_dump un peu plus haut pour m'en assurer et là il s'affiche correctement. J'ai donc l'impression qu'il exécute bien mon override mais que derrière il exécute tout de même la fonction init d'origine de OrderController et du coup écrase le texte que j'ai modifié. Est ce que ce que quelqu'un aurait une idée car je sèche complètement sur ce problème ? Merci d'avance Link to comment Share on other sites More sharing options...
Eolia Posted April 26, 2016 Share Posted April 26, 2016 pas besoin de tout ça... modifiez juste le 1er paramètre de if ($this->context->cart->getOrderTotal(false, Cart::ONLY_PRODUCTS) en remplaçant false par true Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now