-
Notifications
You must be signed in to change notification settings - Fork 220
Expand file tree
/
Copy pathPaymentMethodTitles.php
More file actions
81 lines (71 loc) · 2.13 KB
/
Copy pathPaymentMethodTitles.php
File metadata and controls
81 lines (71 loc) · 2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/**
*
* Adyen Payment module (https://www.adyen.com/)
*
* Copyright (c) 2026 Adyen N.V. (https://www.adyen.com/)
* See LICENSE.txt for license details.
*
* Author: Adyen <magento@adyen.com>
*/
namespace Adyen\Payment\Block\Adminhtml\System\Config\Field;
use Magento\Config\Block\System\Config\Form\Field\FieldArray\AbstractFieldArray;
use Magento\Framework\DataObject;
use Magento\Framework\Exception\LocalizedException;
class PaymentMethodTitles extends AbstractFieldArray
{
private ?PaymentMethodType $_paymentMethodTypeRenderer = null;
/**
* @return PaymentMethodType
* @throws LocalizedException
*/
protected function getPaymentMethodTypeRenderer(): PaymentMethodType
{
if (!$this->_paymentMethodTypeRenderer) {
$this->_paymentMethodTypeRenderer = $this->getLayout()->createBlock(
PaymentMethodType::class,
'',
['data' => ['is_render_to_js_template' => true]]
);
}
return $this->_paymentMethodTypeRenderer;
}
/**
* @return void
* @throws LocalizedException
*/
protected function _prepareToRender(): void
{
$this->addColumn(
'payment_method_type',
[
'label' => __('Payment Method'),
'renderer' => $this->getPaymentMethodTypeRenderer(),
]
);
$this->addColumn(
'title',
[
'label' => __('Custom Title'),
'renderer' => false,
]
);
$this->_addAfter = false;
$this->_addButtonLabel = __('Add Override');
}
/**
* @param DataObject $row
* @return void
* @throws LocalizedException
*/
protected function _prepareArrayRow(DataObject $row): void
{
$options = [];
$paymentMethodType = $row->getPaymentMethodType();
if ($paymentMethodType) {
$options['option_' . $this->getPaymentMethodTypeRenderer()->calcOptionHash($paymentMethodType)]
= 'selected="selected"';
}
$row->setData('option_extra_attrs', $options);
}
}