Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

459 строки
30 KiB

  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. // phpcs:disable Magento2.Files.LineLength, Generic.Files.LineLength
  7. /** @var \Magento\Framework\View\Helper\SecureHtmlRenderer $secureRenderer */
  8. /** @var Magento\Framework\Escaper $escaper */
  9. ?>
  10. <?php $_giftMessage = false;
  11. switch ($block->getCheckoutType()):
  12. case 'onepage_checkout':
  13. ?>
  14. <fieldset class="fieldset gift-message">
  15. <legend class="legend">
  16. <span><?= $block->escapeHtml(__('Do you have any gift items in your order?')) ?></span>
  17. </legend><br>
  18. <div class="field choice" id="add-gift-options-<?= (int) $block->getEntity()->getId() ?>">
  19. <input type="checkbox" name="allow_gift_options" id="allow_gift_options" data-mage-init='{"giftOptions":{}}'
  20. value="1" data-selector='{"id":"#allow-gift-options-container"}'
  21. <?php if ($block->getItemsHasMesssages() || $block->getEntityHasMessage()):?>
  22. checked="checked"<?php endif; ?> class="checkbox" />
  23. <label for="allow_gift_options" class="label">
  24. <span><?= $block->escapeHtml(__('Add Gift Options')) ?></span>
  25. </label>
  26. </div>
  27. <dl class="options-items" id="allow-gift-options-container">
  28. <?php if ($block->isMessagesAvailable()): ?>
  29. <dt id="add-gift-options-for-order-<?= (int) $block->getEntity()->getId() ?>" class="order-title">
  30. <div class="field choice">
  31. <input type="checkbox" name="allow_gift_messages_for_order" id="allow_gift_options_for_order"
  32. data-mage-init='{"giftOptions":{}}' value="1"
  33. data-selector='{"id":"#allow-gift-options-for-order-container"}'
  34. <?php if ($block->getEntityHasMessage()): ?> checked="checked"<?php endif; ?>
  35. class="checkbox" />
  36. <label for="allow_gift_options_for_order" class="label">
  37. <span><?= $block->escapeHtml(__('Gift Options for the Entire Order')) ?></span>
  38. </label>
  39. </div>
  40. </dt>
  41. <dd id="allow-gift-options-for-order-container" class="order-options">
  42. <div class="options-order-container"
  43. id="options-order-container-<?= (int) $block->getEntity()->getId() ?>"></div>
  44. <button class="action action-gift"
  45. data-mage-init='{"toggleAdvanced": {"selectorsToggleClass":"hidden",
  46. "toggleContainers":"#allow-gift-messages-for-order-container"}}'>
  47. <span><?= $block->escapeHtml(__('Gift Message')) ?></span>
  48. </button>
  49. <div id="allow-gift-messages-for-order-container" class="gift-messages-order hidden">
  50. <fieldset class="fieldset">
  51. <p><?= $block->escapeHtml(__(
  52. 'Leave this box blank if you don\'t want to leave a gift message for the entire order.'
  53. )) ?></p>
  54. <div class="field from">
  55. <label for="gift-message-whole-from" class="label">
  56. <span><?= $block->escapeHtml(__('From')) ?></span></label>
  57. <div class="control">
  58. <input type="text"
  59. name="giftmessage[quote][<?= (int) $block->getEntity()->getId() ?>][from]"
  60. id="gift-message-whole-from"
  61. title="<?= $block->escapeHtmlAttr(__('From')) ?>"
  62. value="<?= /* @noEscape */ $block->getEscaped($block->getMessage()->getSender(), $block->getDefaultFrom()) ?>"
  63. class="input-text">
  64. </div>
  65. </div>
  66. <div class="field to">
  67. <label for="gift-message-whole-to" class="label">
  68. <span><?= $block->escapeHtml(__('To')) ?></span>
  69. </label>
  70. <div class="control">
  71. <input type="text"
  72. name="giftmessage[quote][<?= (int) $block->getEntity()->getId() ?>][to]"
  73. id="gift-message-whole-to" title="<?= $block->escapeHtmlAttr(__('To')) ?>"
  74. value="<?= /* @noEscape */ $block->getEscaped($block->getMessage()->getRecipient(), $block->getDefaultTo()) ?>"
  75. class="input-text">
  76. </div>
  77. </div>
  78. <div class="field text">
  79. <label for="gift-message-whole-message" class="label">
  80. <span><?= $block->escapeHtml(__('Message')) ?></span>
  81. </label>
  82. <div class="control">
  83. <textarea id="gift-message-whole-message" class="input-text"
  84. name="giftmessage[quote][<?=(int)$block->getEntity()->getId()?>][message]"
  85. title="<?= $block->escapeHtmlAttr(__('Message')) ?>" rows="5" cols="10"><?= $escaper->escapeHtml($block->getMessage()->getMessage()) ?></textarea>
  86. </div>
  87. </div>
  88. </fieldset>
  89. <?php $entityId = (int) $block->getEntity()->getId();
  90. $scriptString = <<<script
  91. require(['jquery'], function(jQuery){
  92. jQuery('#add-gift-options-{$entityId}')
  93. .add('#add-gift-options-for-order-{$entityId}')
  94. .removeClass('hidden');
  95. });
  96. script;
  97. ?>
  98. <?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>
  99. </div>
  100. </dd>
  101. <?php endif ?>
  102. <?php if ($block->isItemsAvailable()): ?>
  103. <dt id="add-gift-options-for-items-<?= (int) $block->getEntity()->getId()?>" class="order-title individual">
  104. <div class="field choice">
  105. <input type="checkbox" name="allow_gift_options_for_items" id="allow_gift_options_for_items"
  106. data-mage-init='{"giftOptions":{}}' value="1"
  107. data-selector='{"id":"#allow-gift-options-for-items-container"}'
  108. <?php if ($block->getItemsHasMesssages()): ?> checked="checked"<?php endif; ?>
  109. class="checkbox" />
  110. <label for="allow_gift_options_for_items" class="label">
  111. <span><?= $block->escapeHtml(__('Gift Options for Individual Items')) ?></span>
  112. </label>
  113. </div>
  114. </dt>
  115. <dd id="allow-gift-options-for-items-container" class="order-options individual">
  116. <ol class="items">
  117. <?php foreach ($block->getItems() as $_index => $_item): ?>
  118. <?php $_product = $_item->getProduct() ?>
  119. <li class="item">
  120. <div class="product">
  121. <div class="number">
  122. <?= $block->escapeHtml(__(
  123. '<span>Item %1</span> of %2',
  124. $_index+1,
  125. $block->countItems()
  126. ), ['span']) ?>
  127. </div>
  128. <div class="img photo container">
  129. <?= $block->getImage($_product, 'gift_messages_checkout_thumbnail')->toHtml() ?>
  130. </div>
  131. <strong class="product name"><?= $block->escapeHtml($_product->getName()) ?></strong>
  132. </div>
  133. <div class="options">
  134. <div class="options-items-container"
  135. id="options-items-container-<?= (int) $block->getEntity()->getId()
  136. ?>-<?= (int) $_item->getId() ?>"></div>
  137. <?php if ($block->isItemMessagesAvailable($_item)): ?>
  138. <button class="action action-gift"
  139. data-mage-init='{"toggleAdvanced": {"selectorsToggleClass":"hidden",
  140. "toggleContainers":"#gift-messages-for-item-container-<?= (int) $_item->getId()
  141. ?>"}}'>
  142. <span><?= $block->escapeHtml(__('Gift Message')) ?></span>
  143. </button>
  144. <div id="gift-messages-for-item-container-<?= (int) $_item->getId() ?>"
  145. class="block message hidden">
  146. <fieldset class="fieldset">
  147. <p><?= $block->escapeHtml(__(
  148. 'Leave a box blank if you don\'t want to add a gift message for that item.'
  149. )) ?></p>
  150. <div class="field from">
  151. <label for="gift-message-<?= (int) $_item->getId() ?>-from" class="label">
  152. <span><?= $block->escapeHtml(__('From')) ?></span>
  153. </label>
  154. <div class="control">
  155. <input type="text"
  156. name="giftmessage[quote_item][<?= (int) $_item->getId() ?>][from]"
  157. id="gift-message-<?= (int) $_item->getId() ?>-from"
  158. title="<?= $block->escapeHtmlAttr(__('From')) ?>"
  159. value=
  160. "<?= /* @noEscape */
  161. $block->getEscaped(
  162. $block->getMessage($_item)->getSender(),
  163. $block->getDefaultFrom()
  164. ) ?>" class="input-text">
  165. </div>
  166. </div>
  167. <div class="field to">
  168. <label for="gift-message-<?= (int) $_item->getId() ?>-to" class="label">
  169. <span><?= $block->escapeHtmlAttr(__('To')) ?></span>
  170. </label>
  171. <div class="control">
  172. <input type="text"
  173. name="giftmessage[quote_item][<?= (int) $_item->getId() ?>][to]"
  174. id="gift-message-<?= (int) $_item->getId() ?>-to"
  175. title="<?= $block->escapeHtmlAttr(__('To')) ?>"
  176. value="<?= /* @noEscape */ $block->getEscaped($block->getMessage($_item)->getRecipient(), $block->getDefaultTo()) ?>"
  177. class="input-text">
  178. </div>
  179. </div>
  180. <div class="field text">
  181. <label for="gift-message-<?= (int) $_item->getId() ?>-message" class="label">
  182. <span><?= $block->escapeHtml(__('Message')) ?></span>
  183. </label>
  184. <div class="control">
  185. <textarea id="gift-message-<?= (int) $_item->getId() ?>-message"
  186. class="input-text giftmessage-area"
  187. name="giftmessage[quote_item][<?= (int) $_item->getId()
  188. ?>][message]"
  189. title="<?= $block->escapeHtmlAttr(__('Message')) ?>"
  190. rows="5" cols="40"><?= $escaper->escapeHtml($block->getMessage($_item)->getMessage()) ?></textarea>
  191. </div>
  192. </div>
  193. </fieldset>
  194. </div>
  195. <?php endif; ?>
  196. </div>
  197. </li>
  198. <?php endforeach; ?>
  199. </ol>
  200. </dd>
  201. <?php $entityId = (int) $block->getEntity()->getId();
  202. $scriptString = <<<script
  203. require(['jquery'], function(jQuery){
  204. jQuery('#add-gift-options-{$entityId}')
  205. .add('#add-gift-options-for-items-{$entityId}')
  206. .removeClass('hidden');
  207. });
  208. script;
  209. ?>
  210. <?= /* @noEscape */ $secureRenderer->renderTag('script', [], $scriptString, false) ?>
  211. <?php endif; ?>
  212. <dt class="extra-options-container"
  213. id="extra-options-container-<?= (int) $block->getEntity()->getId() ?>">
  214. </dt>
  215. </dl>
  216. </fieldset>
  217. <?php // phpcs:ignore Magento2.Legacy.PhtmlTemplate ?>
  218. <script type="text/x-magento-init">
  219. {
  220. "#allow_gift_options, #allow_gift_options_for_order, #allow_gift_options_for_items": {
  221. "giftOptions": {}
  222. }
  223. }
  224. </script>
  225. <?php
  226. break;
  227. case 'multishipping_address':
  228. ?>
  229. <fieldset id="add-gift-options-<?= (int) $block->getEntity()->getId() ?>" class="fieldset gift-message">
  230. <legend class="legend">
  231. <span><?= $block->escapeHtml(__('Do you have any gift items in your order?')) ?></span>
  232. </legend><br>
  233. <div class="field choice" id="add-gift-options-<?= (int) $block->getEntity()->getId() ?>">
  234. <input type="checkbox" name="allow_gift_options_<?= (int) $block->getEntity()->getId() ?>"
  235. id="allow_gift_options_<?= (int) $block->getEntity()->getId() ?>" data-mage-init='{"giftOptions":{}}'
  236. value="1"
  237. data-selector='{"id":"#allow-gift-options-container-<?= (int) $block->getEntity()->getId() ?>"}'
  238. <?php if ($block->getItemsHasMesssages() || $block->getEntityHasMessage()):?> checked="checked"
  239. <?php endif; ?> class="checkbox" />
  240. <label for="allow_gift_options_<?= (int) $block->getEntity()->getId() ?>" class="label">
  241. <span><?= $block->escapeHtml(__('Add Gift Options')) ?></span>
  242. </label>
  243. </div>
  244. <dl class="options-items" id="allow-gift-options-container-<?= (int) $block->getEntity()->getId() ?>">
  245. <?php if ($block->isMessagesOrderAvailable() || $block->isMessagesAvailable()): ?>
  246. <dt id="add-gift-options-for-order-<?= (int) $block->getEntity()->getId() ?>" class="order-title">
  247. <div class="field choice">
  248. <input type="checkbox" name="allow_gift_options_for_order_<?= (int) $block->getEntity()->getId() ?>"
  249. id="allow_gift_options_for_order_<?= (int) $block->getEntity()->getId() ?>"
  250. data-mage-init='{"giftOptions":{}}' value="1"
  251. data-selector='{"id":"#allow-gift-options-for-order-container-<?= (int) $block->getEntity()
  252. ->getId() ?>"}'
  253. <?php if ($block->getEntityHasMessage()): ?> checked="checked"<?php endif; ?> class="checkbox"/>
  254. <label for="allow_gift_options_for_order_<?= (int) $block->getEntity()->getId() ?>" class="label">
  255. <span><?= $block->escapeHtml(__('Add Gift Options for the Entire Order')) ?></span>
  256. </label>
  257. </div>
  258. </dt>
  259. <dd id="allow-gift-options-for-order-container-<?= (int) $block->getEntity()->getId() ?>"
  260. class="order-options">
  261. <div class="options-order-container"
  262. id="options-order-container-<?= (int) $block->getEntity()->getId() ?>"></div>
  263. <?php if ($block->isMessagesAvailable()): ?>
  264. <?php $_giftMessage = true; ?>
  265. <button class="action action-gift"
  266. data-mage-init='{"toggleAdvanced": {"selectorsToggleClass":"hidden",
  267. "toggleContainers":"#gift-messages-for-order-container-<?= (int) $block->getEntity()
  268. ->getId() ?>"}}'>
  269. <span><?= $block->escapeHtml(__('Gift Message')) ?></span>
  270. </button>
  271. <div id="gift-messages-for-order-container-<?= (int) $block->getEntity()->getId() ?>"
  272. class="gift-messages-order hidden">
  273. <fieldset class="fieldset">
  274. <p><?= $block->escapeHtml(__('You can leave this box blank if you don\'t want to add a ' .
  275. 'gift message for this address.')) ?></p>
  276. <div class="field from">
  277. <label for="gift-message-<?= (int) $block->getEntity()->getId() ?>-from"
  278. class="label"><span><?= $block->escapeHtml(__('From')) ?></span>
  279. </label>
  280. <div class="control">
  281. <input type="text" name="giftmessage[quote_address][<?= (int) $block->getEntity()
  282. ->getId() ?>][from]"
  283. id="gift-message-<?= (int) $block->getEntity()->getId() ?>-from"
  284. title="<?= $block->escapeHtmlAttr(__('From')) ?>"
  285. value="<?= /* @noEscape */ $block->getEscaped($block->getMessage()->getSender(), $block->getDefaultFrom()) ?>"
  286. class="input-text">
  287. </div>
  288. </div>
  289. <div class="field to">
  290. <label for="gift-message-<?= (int) $block->getEntity()->getId() ?>-to"
  291. class="label"><span><?= $block->escapeHtml(__('To')) ?></span>
  292. </label>
  293. <div class="control">
  294. <input type="text" name="giftmessage[quote_address][<?= (int) $block->getEntity()
  295. ->getId() ?>][to]"
  296. id="gift-message-<?= (int) $block->getEntity()->getId() ?>-to"
  297. title="<?= $block->escapeHtmlAttr(__('To')) ?>"
  298. value="<?= /* @noEscape */ $block->getEscaped($block->getMessage()->getRecipient(), $block->getDefaultTo()) ?>"
  299. class="input-text">
  300. </div>
  301. </div>
  302. <div class="field text">
  303. <label for="gift-message-<?= (int) $block->getEntity()->getId() ?>-message"
  304. class="label"><span><?= $block->escapeHtml(__('Message')) ?></span>
  305. </label>
  306. <div class="control">
  307. <textarea id="gift-message-<?= (int) $block->getEntity()->getId() ?>-message"
  308. class="input-text" name="giftmessage[quote_address][<?= (int) $block
  309. ->getEntity()->getId() ?>][message]"
  310. title="<?= $block->escapeHtmlAttr(__('Message')) ?>" rows="5" cols="40"><?= $escaper->escapeHtml($block->getMessage()->getMessage()) ?></textarea>
  311. </div>
  312. </div>
  313. </fieldset>
  314. </div>
  315. <?php endif; ?>
  316. </dd>
  317. <?php endif; ?>
  318. <?php if ($block->isItemsAvailable()): ?>
  319. <dt id="add-gift-options-for-items-<?= (int) $block->getEntity()->getId()?>" class="order-title individual">
  320. <div class="field choice">
  321. <input type="checkbox" name="allow_gift_options_for_items_<?= (int) $block->getEntity()->getId() ?>"
  322. id="allow_gift_options_for_items_<?= (int) $block->getEntity()->getId() ?>"
  323. data-mage-init='{"giftOptions":{}}' value="1"
  324. data-selector='{"id":"#allow-gift-options-for-items-container-<?= (int) $block->getEntity()
  325. ->getId() ?>"}'
  326. <?php if ($block->getItemsHasMesssages()): ?> checked="checked"<?php endif; ?>
  327. class="checkbox" />
  328. <label for="allow_gift_options_for_items_<?= (int) $block->getEntity()->getId() ?>" class="label">
  329. <span><?= $block->escapeHtml(__('Add Gift Options for Individual Items')) ?></span>
  330. </label>
  331. </div>
  332. </dt>
  333. <dd id="allow-gift-options-for-items-container-<?= (int) $block->getEntity()->getId() ?>"
  334. class="order-options individual">
  335. <ol class="items">
  336. <?php foreach ($block->getItems() as $_index => $_item): ?>
  337. <?php $_product = $_item->getProduct() ?>
  338. <li class="item">
  339. <div class="product">
  340. <div class="number">
  341. <?= $block->escapeHtml(
  342. __('<span>Item %1</span> of %2', $_index+1, $block->countItems()),
  343. ['span']
  344. ) ?></div>
  345. <div class="img photo container">
  346. <?= $block->getImage($_product, 'gift_messages_checkout_thumbnail')->toHtml() ?>
  347. </div>
  348. <strong class="product-name"><?= $block->escapeHtml($_product->getName()) ?></strong>
  349. </div>
  350. <div class="options">
  351. <div class="options-items-container"
  352. id="options-items-container-<?= (int) $block->getEntity()->getId()?>-<?= (int)$_item
  353. ->getId() ?>">
  354. </div>
  355. <input type="hidden"
  356. name="giftoptions[quote_address_item][<?= (int) $_item->getId() ?>][address]"
  357. value="<?= (int) $block->getEntity()->getId() ?>" />
  358. <?php if ($block->isItemMessagesAvailable($_item)): ?>
  359. <?php $_giftMessage = true; ?>
  360. <button class="action action-gift"
  361. data-mage-init='{"toggleAdvanced": {"selectorsToggleClass":"hidden",
  362. "toggleContainers":"#gift-messages-for-item-container-<?= (int) $_item->getId()
  363. ?>"}}'>
  364. <span><?= $block->escapeHtml(__('Gift Message')) ?></span>
  365. </button>
  366. <div id="gift-messages-for-item-container-<?= (int) $_item->getId() ?>"
  367. class="block message hidden">
  368. <fieldset class="fieldset">
  369. <p><?= $block->escapeHtml(__(
  370. 'You can leave this box blank if you don\'t want to add a gift message ' .
  371. 'for the item.'
  372. )) ?></p>
  373. <input type="hidden" name="giftmessage[quote_address_item][<?= (int) $_item
  374. ->getId() ?>][address]" value="<?= (int) $block->getEntity()->getId() ?>" />
  375. <div class="field from">
  376. <label for="gift-message-<?= (int) $_item->getId() ?>-from" class="label">
  377. <span><?= $block->escapeHtml(__('From')) ?></span>
  378. </label>
  379. <div class="control">
  380. <input type="text"
  381. name="giftmessage[quote_address_item][<?= (int) $_item->getId()
  382. ?>][from]" id="gift-message-<?= (int) $_item->getId() ?>-from"
  383. title="<?= $block->escapeHtmlAttr(__('From')) ?>"
  384. value="<?= /* @noEscape */ $block->getEscaped($block->getMessage($_item)->getSender(), $block->getDefaultFrom()) ?>"
  385. class="input-text">
  386. </div>
  387. </div>
  388. <div class="field to">
  389. <label for="gift-message-<?= (int) $_item->getId() ?>-to" class="label">
  390. <span><?= $block->escapeHtml(__('To')) ?></span>
  391. </label>
  392. <div class="control">
  393. <input type="text"
  394. name="giftmessage[quote_address_item][<?= (int) $_item->getId()
  395. ?>][to]" id="gift-message-<?= (int) $_item->getId() ?>-to"
  396. title="<?= $block->escapeHtmlAttr(__('To')) ?>"
  397. value="<?= /* @noEscape */ $block->getEscaped($block->getMessage($_item)->getRecipient(), $block->getDefaultTo()) ?>"
  398. class="input-text">
  399. </div>
  400. </div>
  401. <div class="field text">
  402. <label for="gift-message-<?= (int) $_item->getId()?>-message" class="label">
  403. <span><?= $block->escapeHtml(__('Message')) ?></span>
  404. </label>
  405. <div class="control">
  406. <textarea id="gift-message-<?= (int) $_item->getId() ?>-message"
  407. class="input-text giftmessage-area"
  408. name="giftmessage[quote_address_item][<?= (int) $_item
  409. ->getId() ?>][message]"
  410. title="<?= $block->escapeHtmlAttr(__('Message')) ?>" rows="5"
  411. cols="10"><?= $escaper->escapeHtml($block->getMessage($_item)->getMessage()) ?></textarea>
  412. </div>
  413. </div>
  414. </fieldset>
  415. </div>
  416. <?php endif; ?>
  417. </div>
  418. </li>
  419. <?php endforeach; ?>
  420. </ol>
  421. </dd>
  422. <?php endif; ?>
  423. <dt class="extra-options-container" id="extra-options-container-<?= (int) $block->getEntity()->getId() ?>">
  424. </dt>
  425. </dl>
  426. </fieldset>
  427. <?php $entityId = (int) $block->getEntity()->getId(); ?>
  428. <?php // phpcs:ignore Magento2.Legacy.PhtmlTemplate ?>
  429. <script type="text/x-magento-init">
  430. {
  431. "#allow_gift_options_<?= /* @noEscape */ $entityId ?>, #allow_gift_options_for_order_<?= /* @noEscape */ $entityId ?>, #allow_gift_options_for_items_<?= /* @noEscape */ $entityId ?>": {
  432. "giftOptions": {}
  433. }
  434. }
  435. </script>
  436. <?php
  437. break;
  438. endswitch;
  439. if ($_giftMessage): ?>
  440. <?php // phpcs:ignore Magento2.Legacy.PhtmlTemplate ?>
  441. <script type="text/x-magento-init">
  442. {
  443. "#shipping_method_form": {
  444. "validation": {}
  445. }
  446. }
  447. </script>
  448. <?php endif; ?>