Skip to content

Commit 0fba027

Browse files
committed
MC-40013: Payment Methods radio-buttons disappear after a "Create New Order" page in Admin panel is reload
1 parent ceccbf5 commit 0fba027

File tree

1 file changed

+63
-51
lines changed
  • app/code/Magento/Sales/view/adminhtml/templates/order/create/billing/method

1 file changed

+63
-51
lines changed

app/code/Magento/Sales/view/adminhtml/templates/order/create/billing/method/form.phtml

Lines changed: 63 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -4,57 +4,68 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
/** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
7+
use Magento\Framework\Escaper;
8+
use Magento\Framework\View\Helper\SecureHtmlRenderer;
9+
use Magento\Sales\Block\Adminhtml\Order\Create\Billing\Method\Form as BillingMethodForm;
10+
11+
/**
12+
* @var BillingMethodForm $block
13+
* @var Escaper $escaper
14+
* @var SecureHtmlRenderer $secureRenderer
15+
*/
816
?>
917
<?php if ($block->hasMethods()): ?>
10-
<div id="order-billing_method_form">
11-
<dl class="admin__payment-methods control">
12-
<?php
13-
$_methods = $block->getMethods();
14-
$_methodsCount = count($_methods);
15-
$_counter = 0;
16-
$currentSelectedMethod = $block->getSelectedMethodCode();
17-
?>
18-
<?php foreach ($_methods as $_method):
19-
$_code = $_method->getCode();
20-
$_counter++;
21-
?>
22-
<dt class="admin__field-option">
23-
<?php if ($_methodsCount > 1): ?>
24-
<input id="p_method_<?= $block->escapeHtmlAttr($_code); ?>"
25-
value="<?= $block->escapeHtmlAttr($_code); ?>"
26-
type="radio" name="payment[method]"
27-
title="<?= $block->escapeHtmlAttr($_method->getTitle()); ?>"
28-
<?php if ($currentSelectedMethod == $_code): ?>
29-
checked="checked"
18+
<div id="order-billing_method_form">
19+
<dl class="admin__payment-methods control">
20+
<?php
21+
$_methods = $block->getMethods();
22+
$_methodsCount = count($_methods);
23+
$_counter = 0;
24+
$currentSelectedMethod = $block->getSelectedMethodCode();
25+
?>
26+
<?php foreach ($_methods as $_method):
27+
$_code = $_method->getCode();
28+
$_counter++;
29+
?>
30+
<dt class="admin__field-option">
31+
<?php if ($_methodsCount > 1): ?>
32+
<input id="p_method_<?= $escaper->escapeHtmlAttr($_code); ?>"
33+
value="<?= $escaper->escapeHtmlAttr($_code); ?>"
34+
type="radio" name="payment[method]"
35+
title="<?= $escaper->escapeHtmlAttr($_method->getTitle()); ?>"
36+
<?php if ($currentSelectedMethod == $_code): ?>
37+
checked="checked"
38+
<?php endif; ?>
39+
data-validate="{'validate-one-required-by-name':true}"
40+
class="admin__control-radio"/>
41+
<?php else: ?>
42+
<span class="no-display">
43+
<input id="p_method_<?= $escaper->escapeHtmlAttr($_code); ?>"
44+
value="<?= $escaper->escapeHtmlAttr($_code); ?>"
45+
type="radio"
46+
name="payment[method]" class="admin__control-radio"
47+
checked="checked"/>
48+
</span>
3049
<?php endif; ?>
31-
data-validate="{'validate-one-required-by-name':true}"
32-
class="admin__control-radio"/>
33-
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
34-
'onclick',
35-
"payment.switchMethod('" . $block->escapeJs($_code) . "')",
36-
'input#p_method_' . $block->escapeJs($_code)
37-
) ?>
38-
<?php else:?>
39-
<span class="no-display">
40-
<input id="p_method_<?= $block->escapeHtmlAttr($_code); ?>"
41-
value="<?= $block->escapeHtmlAttr($_code); ?>"
42-
type="radio"
43-
name="payment[method]" class="admin__control-radio"
44-
checked="checked"/>
45-
</span>
46-
<?php endif;?>
4750

48-
<label class="admin__field-label" for="p_method_<?= $block->escapeHtmlAttr($_code); ?>">
49-
<?= $block->escapeHtml($_method->getTitle()) ?>
50-
</label>
51-
</dt>
52-
<dd class="admin__payment-method-wrapper">
53-
<?= $block->getChildHtml('payment.method.' . $_code) ?>
54-
</dd>
55-
<?php endforeach; ?>
56-
</dl>
57-
</div>
51+
<label class="admin__field-label" for="p_method_<?= $escaper->escapeHtmlAttr($_code); ?>">
52+
<?= $escaper->escapeHtml($_method->getTitle()) ?>
53+
</label>
54+
55+
<?php if ($_methodsCount > 1): ?>
56+
<?= /* @noEscape */ $secureRenderer->renderEventListenerAsTag(
57+
'onclick',
58+
"payment.switchMethod('" . $escaper->escapeJs($_code) . "')",
59+
'input#p_method_' . $escaper->escapeJs($_code)
60+
) ?>
61+
<?php endif; ?>
62+
</dt>
63+
<dd class="admin__payment-method-wrapper">
64+
<?= $block->getChildHtml('payment.method.' . $_code) ?>
65+
</dd>
66+
<?php endforeach; ?>
67+
</dl>
68+
</div>
5869
<?php $scriptString = <<<script
5970
require([
6071
'mage/apply/main',
@@ -65,11 +76,11 @@
6576
script;
6677
if ($_methodsCount !== 1):
6778
$scriptString .= <<<script
68-
order.setPaymentMethod('{$block->escapeJs($currentSelectedMethod)}');
79+
order.setPaymentMethod('{$escaper->escapeJs($currentSelectedMethod)}');
6980
script;
7081
else:
7182
$scriptString .= <<<script
72-
payment.switchMethod('{$block->escapeJs($currentSelectedMethod)}');
83+
payment.switchMethod('{$escaper->escapeJs($currentSelectedMethod)}');
7384
script;
7485
endif;
7586
$scriptString .= <<<script
@@ -78,7 +89,8 @@ script;
7889
7990
script;
8091
?>
81-
<?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>
92+
<?= /* @noEscape */
93+
$secureRenderer->renderTag('script', [], $scriptString, false) ?>
8294
<?php else: ?>
83-
<div class="admin__message-empty"><?= $block->escapeHtml(__('No Payment Methods')); ?></div>
95+
<div class="admin__message-empty"><?= $escaper->escapeHtml(__('No Payment Methods')); ?></div>
8496
<?php endif; ?>

0 commit comments

Comments
 (0)