Issues (464)

src/Checkout/Step/PaymentMethod.php (1 issue)

1
<?php
2
3
namespace SilverShop\Checkout\Step;
4
5
use SilverShop\Cart\ShoppingCart;
6
use SilverShop\Checkout\Checkout;
7
use SilverShop\Checkout\CheckoutComponentConfig;
8
use SilverShop\Checkout\Component\Payment;
9
use SilverShop\Forms\CheckoutForm;
10
use SilverStripe\Forms\FieldList;
11
use SilverStripe\Forms\FormAction;
12
use SilverStripe\Omnipay\GatewayInfo;
13
14
class PaymentMethod extends CheckoutStep
15
{
16
    private static $allowed_actions = [
0 ignored issues
show
The private property $allowed_actions is not used, and could be removed.
Loading history...
17
        'paymentmethod',
18
        'PaymentMethodForm',
19
    ];
20
21
    protected function checkoutconfig()
22
    {
23
        $config = CheckoutComponentConfig::create(ShoppingCart::curr(), false);
24
        $config->addComponent(Payment::create());
25
26
        return $config;
27
    }
28
29
    public function paymentmethod()
30
    {
31
        $gateways = GatewayInfo::getSupportedGateways();
32
        if (count($gateways) == 1) {
33
            return $this->owner->redirect($this->NextStepLink());
34
        }
35
        return [
36
            'OrderForm' => $this->PaymentMethodForm(),
37
        ];
38
    }
39
40
    public function PaymentMethodForm()
41
    {
42
        $form = CheckoutForm::create($this->owner, 'PaymentMethodForm', $this->checkoutconfig());
43
        $form->setActions(
44
            FieldList::create(
45
                FormAction::create('setpaymentmethod', _t('SilverShop\Checkout\Step\CheckoutStep.Continue', 'Continue'))
46
            )
47
        );
48
        $this->owner->extend('updatePaymentMethodForm', $form);
49
50
        return $form;
51
    }
52
53
    public function setpaymentmethod($data, $form)
54
    {
55
        $this->checkoutconfig()->setData($form->getData());
56
        return $this->owner->redirect($this->NextStepLink());
57
    }
58
59
    public function SelectedPaymentMethod()
60
    {
61
        return Checkout::get($this->owner->Cart())->getSelectedPaymentMethod(true);
62
    }
63
}
64