first commit
This commit is contained in:
28
modules/ps_cashondelivery/controllers/front/index.php
Normal file
28
modules/ps_cashondelivery/controllers/front/index.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
131
modules/ps_cashondelivery/controllers/front/validation.php
Normal file
131
modules/ps_cashondelivery/controllers/front/validation.php
Normal file
@@ -0,0 +1,131 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* This Controller receives customer after approval on checkout page
|
||||
*/
|
||||
class Ps_CashondeliveryValidationModuleFrontController extends ModuleFrontController
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public $ssl = true;
|
||||
|
||||
/**
|
||||
* @var PaymentModule
|
||||
*/
|
||||
public $module;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function postProcess()
|
||||
{
|
||||
if (false === $this->checkIfContextIsValid() || false === $this->checkIfPaymentOptionIsAvailable()) {
|
||||
Tools::redirect($this->context->link->getPageLink(
|
||||
'order',
|
||||
true,
|
||||
(int) $this->context->language->id,
|
||||
[
|
||||
'step' => 1,
|
||||
]
|
||||
));
|
||||
}
|
||||
|
||||
$customer = new Customer($this->context->cart->id_customer);
|
||||
|
||||
if (false === Validate::isLoadedObject($customer)) {
|
||||
Tools::redirect($this->context->link->getPageLink(
|
||||
'order',
|
||||
true,
|
||||
(int) $this->context->language->id,
|
||||
[
|
||||
'step' => 1,
|
||||
]
|
||||
));
|
||||
}
|
||||
|
||||
$this->module->validateOrder(
|
||||
(int) $this->context->cart->id,
|
||||
(int) Configuration::getGlobalValue(Ps_Cashondelivery::CONFIG_OS_CASH_ON_DELIVERY),
|
||||
(float) $this->context->cart->getOrderTotal(true, Cart::BOTH),
|
||||
$this->module->displayName,
|
||||
null,
|
||||
[],
|
||||
(int) $this->context->currency->id,
|
||||
false,
|
||||
$customer->secure_key
|
||||
);
|
||||
|
||||
Tools::redirect($this->context->link->getPageLink(
|
||||
'order-confirmation',
|
||||
true,
|
||||
(int) $this->context->language->id,
|
||||
[
|
||||
'id_cart' => (int) $this->context->cart->id,
|
||||
'id_module' => (int) $this->module->id,
|
||||
'id_order' => (int) $this->module->currentOrder,
|
||||
'key' => $customer->secure_key,
|
||||
]
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the context is valid
|
||||
* - Cart is loaded
|
||||
* - Cart has a Customer
|
||||
* - Cart has a delivery address
|
||||
* - Cart has an invoice address
|
||||
* - Cart doesn't contains virtual product
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function checkIfContextIsValid()
|
||||
{
|
||||
return true === Validate::isLoadedObject($this->context->cart)
|
||||
&& true === Validate::isUnsignedInt($this->context->cart->id_customer)
|
||||
&& true === Validate::isUnsignedInt($this->context->cart->id_address_delivery)
|
||||
&& true === Validate::isUnsignedInt($this->context->cart->id_address_invoice)
|
||||
&& false === $this->context->cart->isVirtualCart();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check that this payment option is still available in case the customer changed
|
||||
* his address just before the end of the checkout process
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function checkIfPaymentOptionIsAvailable()
|
||||
{
|
||||
$modules = Module::getPaymentModules();
|
||||
|
||||
if (empty($modules)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ($modules as $module) {
|
||||
if (isset($module['name']) && $this->module->name === $module['name']) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
28
modules/ps_cashondelivery/controllers/index.php
Normal file
28
modules/ps_cashondelivery/controllers/index.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
/**
|
||||
* Copyright since 2007 PrestaShop SA and Contributors
|
||||
* PrestaShop is an International Registered Trademark & Property of PrestaShop SA
|
||||
*
|
||||
* NOTICE OF LICENSE
|
||||
*
|
||||
* This source file is subject to the Academic Free License version 3.0
|
||||
* that is bundled with this package in the file LICENSE.md.
|
||||
* It is also available through the world-wide-web at this URL:
|
||||
* https://opensource.org/licenses/AFL-3.0
|
||||
* If you did not receive a copy of the license and are unable to
|
||||
* obtain it through the world-wide-web, please send an email
|
||||
* to license@prestashop.com so we can send you a copy immediately.
|
||||
*
|
||||
* @author PrestaShop SA and Contributors <contact@prestashop.com>
|
||||
* @copyright Since 2007 PrestaShop SA and Contributors
|
||||
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0
|
||||
*/
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
||||
|
||||
header('Cache-Control: no-store, no-cache, must-revalidate');
|
||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||
header('Pragma: no-cache');
|
||||
|
||||
header('Location: ../');
|
||||
exit;
|
||||
Reference in New Issue
Block a user