billing.phtml 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. /**
  7. * Multishipping checkout billing information
  8. *
  9. * @var $block \Magento\Multishipping\Block\Checkout\Billing
  10. */
  11. ?>
  12. <div id="checkout-loader" data-role="checkout-loader" class="loading-mask" data-mage-init='{"billingLoader": {}}'>
  13. <div class="loader">
  14. <img src="<?= $block->escapeUrl($block->getViewFileUrl('images/loader-1.gif')); ?>"
  15. alt="<?= $block->escapeHtml(__('Loading...')); ?>"
  16. style="position: absolute;">
  17. </div>
  18. </div>
  19. <script>
  20. window.checkoutConfig = <?= /* @noEscape */ $block->getCheckoutData()->getSerializedCheckoutConfigs(); ?>;
  21. window.isCustomerLoggedIn = window.checkoutConfig.isCustomerLoggedIn;
  22. window.customerData = window.checkoutConfig.customerData;
  23. </script>
  24. <div id="checkout" data-bind="scope:'checkoutMessages'">
  25. <!-- ko template: getTemplate() --><!-- /ko -->
  26. <script type="text/x-magento-init">
  27. {
  28. "#checkout": {
  29. "Magento_Ui/js/core/app": {
  30. "components": {
  31. "checkoutMessages": {
  32. "component": "Magento_Ui/js/view/messages",
  33. "displayArea": "messages"
  34. }
  35. }
  36. }
  37. }
  38. }
  39. </script>
  40. </div>
  41. <form action="<?= $block->escapeUrl($block->getPostActionUrl()); ?>"
  42. method="post"
  43. id="multishipping-billing-form"
  44. class="form multicheckout billing">
  45. <div class="block block-billing">
  46. <div class="block-content">
  47. <div class="box box-billing-address">
  48. <strong class="box-title">
  49. <span><?= $block->escapeHtml(__('Billing Address')); ?></span>
  50. <a href="<?= $block->escapeUrl($block->getSelectAddressUrl()); ?>" class="action">
  51. <span><?= $block->escapeHtml(__('Change')); ?></span>
  52. </a>
  53. </strong>
  54. <div class="box-content">
  55. <address>
  56. <?= /* @noEscape */ $block->getCheckoutData()->getAddressHtml($block->getAddress()); ?>
  57. </address>
  58. </div>
  59. </div>
  60. <div class="box box-billing-method">
  61. <fieldset class="fieldset">
  62. <legend class="legend box-title">
  63. <span><?= $block->escapeHtml(__('Payment Method')); ?></span>
  64. </legend><br>
  65. <div class="box-content">
  66. <?= $block->getChildHtml('payment_methods_before') ?>
  67. <?php /* Payment methods forms list */ ?>
  68. <dl class="checkout-payment-method" id="payment-methods">
  69. <?php
  70. $methods = $block->getMethods();
  71. $methodsCount = count($methods);
  72. $methodsForms = $block->hasFormTemplates() ? $block->getFormTemplates(): [];
  73. foreach ($methods as $_method) :
  74. $code = $_method->getCode();
  75. $checked = $block->getSelectedMethodCode() === $code;
  76. if (isset($methodsForms[$code])) {
  77. $block->setMethodFormTemplate($code, $methodsForms[$code]);
  78. }
  79. ?>
  80. <dt class="item-title">
  81. <?php if ($methodsCount > 1) : ?>
  82. <input type="radio"
  83. id="p_method_<?= $block->escapeHtml($code); ?>"
  84. value="<?= $block->escapeHtml($code); ?>"
  85. name="payment[method]"
  86. title="<?= $block->escapeHtml($_method->getTitle()) ?>"
  87. <?php if ($checked) : ?>
  88. checked="checked"
  89. <?php endif; ?>
  90. class="radio"/>
  91. <?php else : ?>
  92. <input type="radio"
  93. id="p_method_<?= $block->escapeHtml($code); ?>"
  94. value="<?= $block->escapeHtml($code); ?>"
  95. name="payment[method]"
  96. checked="checked"
  97. class="radio solo method" />
  98. <?php endif; ?>
  99. <label for="p_method_<?= $block->escapeHtml($code); ?>">
  100. <?= $block->escapeHtml($_method->getTitle()) ?>
  101. </label>
  102. </dt>
  103. <?php if ($html = $block->getChildHtml('payment.method.' . $code)) : ?>
  104. <dd class="item-content <?= $checked ? '' : 'no-display'; ?>"
  105. data-bind="scope: 'payment_method_<?= $block->escapeHtml($code);?>'">
  106. <?= /* @noEscape */ $html; ?>
  107. </dd>
  108. <?php endif; ?>
  109. <?php endforeach; ?>
  110. </dl>
  111. <?= $block->getChildHtml('payment_methods_after') ?>
  112. <?= $block->getChildHtml('checkout_billing_items') ?>
  113. </div>
  114. </fieldset>
  115. </div>
  116. </div>
  117. </div>
  118. <div class="actions-toolbar">
  119. <div class="primary">
  120. <button id="payment-continue"
  121. type="button"
  122. class="action primary continue">
  123. <span><?= $block->escapeHtml(__('Go to Review Your Order')); ?></span>
  124. </button>
  125. </div>
  126. <div class="secondary">
  127. <a href="<?= $block->escapeUrl($block->getBackUrl()); ?>" class="action back">
  128. <span><?= $block->escapeHtml(__('Back to Shipping Information')); ?></span>
  129. </a>
  130. </div>
  131. </div>
  132. </form>
  133. <script>
  134. require(['jquery', 'mage/mage'], function(jQuery) {
  135. var addtocartForm = jQuery('#multishipping-billing-form');
  136. addtocartForm.mage('payment', {
  137. checkoutPrice: <?= (float)$block->getQuoteBaseGrandTotal() ?>
  138. });
  139. addtocartForm.mage('validation', {
  140. errorPlacement: function(error, element) {
  141. if (element.attr('data-validate') && element.attr('data-validate').indexOf('validate-cc-ukss') >= 0) {
  142. element.parents('form').find('[data-validation-msg="validate-cc-ukss"]').html(error);
  143. } else {
  144. element.after(error);
  145. }
  146. }
  147. });
  148. });
  149. </script>