* @copyright 2007-2016 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ /** * @since 1.5.0 */ class CashondeliveryValidationModuleFrontController extends ModuleFrontController { public $ssl = true; public $display_column_left = false; public function postProcess() { if ($this->context->cart->id_customer == 0 || $this->context->cart->id_address_delivery == 0 || $this->context->cart->id_address_invoice == 0 || !$this->module->active) Tools::redirectLink(__PS_BASE_URI__.'order.php?step=1'); // Check that this payment option is still available in case the customer changed his address just before the end of the checkout process $authorized = false; foreach (Module::getPaymentModules() as $module) if ($module['name'] == 'cashondelivery') { $authorized = true; break; } if (!$authorized) die(Tools::displayError('This payment method is not available.')); $customer = new Customer($this->context->cart->id_customer); if (!Validate::isLoadedObject($customer)) Tools::redirectLink(__PS_BASE_URI__.'order.php?step=1'); if (Tools::getValue('confirm')) { $customer = new Customer((int)$this->context->cart->id_customer); $total = $this->context->cart->getOrderTotal(true, Cart::BOTH); $this->module->validateOrder((int)$this->context->cart->id, Configuration::get('PS_OS_PREPARATION'), $total, $this->module->displayName, null, array(), null, false, $customer->secure_key); Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?key='.$customer->secure_key.'&id_cart='.(int)$this->context->cart->id.'&id_module='.(int)$this->module->id.'&id_order='.(int)$this->module->currentOrder); } } /** * @see FrontController::initContent() */ public function initContent() { parent::initContent(); $this->context->smarty->assign(array( 'total' => $this->context->cart->getOrderTotal(true, Cart::BOTH), 'this_path' => $this->module->getPathUri(),//keep for retro compat 'this_path_cod' => $this->module->getPathUri(), 'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->module->name.'/' )); $this->setTemplate('validation.tpl'); } }