Files
bio-concept-pharma/web/classes/checkout/CheckoutPaymentStep.php
2019-11-17 19:14:07 +01:00

108 lines
3.8 KiB
PHP

<?php
/**
* 2007-2018 PrestaShop.
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* https://opensource.org/licenses/OSL-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.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author PrestaShop SA <contact@prestashop.com>
* @copyright 2007-2018 PrestaShop SA
* @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*/
use Symfony\Component\Translation\TranslatorInterface;
class CheckoutPaymentStepCore extends AbstractCheckoutStep
{
protected $template = 'checkout/_partials/steps/payment.tpl';
private $selected_payment_option;
public function __construct(
Context $context,
TranslatorInterface $translator,
PaymentOptionsFinder $paymentOptionsFinder,
ConditionsToApproveFinder $conditionsToApproveFinder
) {
parent::__construct($context, $translator);
$this->paymentOptionsFinder = $paymentOptionsFinder;
$this->conditionsToApproveFinder = $conditionsToApproveFinder;
}
public function handleRequest(array $requestParams = array())
{
$allProductsInStock = $this->getCheckoutSession()->getCart()->isAllProductsInStock();
if ($allProductsInStock !== true) {
$cartShowUrl = $this->context->link->getPageLink(
'cart',
null,
$this->context->language->id,
array(
'action' => 'show',
),
false,
null,
false
);
Tools::redirect($cartShowUrl);
}
if (isset($requestParams['select_payment_option'])) {
$this->selected_payment_option = $requestParams['select_payment_option'];
}
$this->setTitle(
$this->getTranslator()->trans(
'Payment',
array(),
'Shop.Theme.Checkout'
)
);
}
/**
* @param array $extraParams
*
* @return string
*/
public function render(array $extraParams = array())
{
$isFree = 0 == (float) $this->getCheckoutSession()->getCart()->getOrderTotal(true, Cart::BOTH);
$paymentOptions = $this->paymentOptionsFinder->present($isFree);
$conditionsToApprove = $this->conditionsToApproveFinder->getConditionsToApproveForTemplate();
$deliveryOptions = $this->getCheckoutSession()->getDeliveryOptions();
$deliveryOptionKey = $this->getCheckoutSession()->getSelectedDeliveryOption();
if (isset($deliveryOptions[$deliveryOptionKey])) {
$selectedDeliveryOption = $deliveryOptions[$deliveryOptionKey];
} else {
$selectedDeliveryOption = 0;
}
unset($selectedDeliveryOption['product_list']);
$assignedVars = array(
'is_free' => $isFree,
'payment_options' => $paymentOptions,
'conditions_to_approve' => $conditionsToApprove,
'selected_payment_option' => $this->selected_payment_option,
'selected_delivery_option' => $selectedDeliveryOption,
'show_final_summary' => Configuration::get('PS_FINAL_SUMMARY_ENABLED'),
);
return $this->renderTemplate($this->getTemplate(), $extraParams, $assignedVars);
}
}