Advertisement
Guest User

Сообщить о поступлении товара

a guest
Mar 25th, 2022
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.13 KB | None | 0 0
  1. https://redmine.oml.ru/issues/47081
  2. http://3444844.pre2.test.m/
  3.  
  4.  
  5. Шаблоны:
  6. shop2-kind-available-customer-email-subject.tpl
  7. shop2-kind-available-customer-email-message.tpl
  8.  
  9.  
  10. Шаблон: shop2-kind-available-customer-email-message.tpl
  11. Название шаблона: Настройка уведомлений. KIND_AVAILABLE. Покупатель. email. message
  12.  
  13. Содержимое шаблона: ((
  14. Уважаемый покупатель,
  15. Вы интересовались данным товаром ранее и мы рады сообщить Вам о его поступлении в продажу.
  16. {assign var="kind_currency_id" value=$kind.currency_id}
  17. {assign var="kind_currency" value=$shop2.currency.$kind_currency_id.currency_shortname}
  18. {if !$shop2.my.hide_article && $order_form_settings.article}({if $kind.article}{$kind.article}{else}артикул не задан{/if}) {/if}{$kind.name} -- {$kind.price|price_convert|regex_replace:"/ /":" "} {$kind_currency} {"\n"}
  19. Страница товара: {$site.protocol}://{$site.domain_mask}{get_seo_url uri_prefix=$shop2.uri mode="product" alias=$kind.alias}{"\n"}
  20. ))
  21.  
  22.  
  23.  
  24. Шаблоны: shop2.v2-amount-btn.tpl -- Магазин 2.v2. Количество (кнопки)
  25. Добавил в условие это {if $pr.buy_mode == 1 || $pr.buy_mode == 5}
  26.  
  27. shop2.v2-buy-btn.tpl Магазин 2.v2. Купить (кнопка)
  28. Добавил кнопку https://prnt.sc/4EKzsFotBpFH при условии $pr.buy_mode == 5}
  29.  
  30.  
  31. В Js
  32. shop2.queue.addToCart = function() {
  33. $(document).on('click', '.shop2-product-btn:not(.preorder-btn-js)'
  34. добавил :not(.preorder-btn-js)
  35.  
  36. И
  37.  
  38. shop2.queue.preOrder = function() {
  39.  
  40. var sentAjax_preorder = function(data, callback){
  41. $.ajax({
  42. url: '/my/s3/xapi/public/?method=shop2/addKindEmailNotification',
  43. method: 'post',
  44. xhrFields: {
  45. withCredentials: true
  46. },
  47. data: data,
  48. success: function(result) {
  49. callback(result);
  50. }
  51. });
  52. };
  53.  
  54. var object_preorder = {};
  55. $(document).on('click', '.preorder-btn-js', function(e) {
  56. e.preventDefault();
  57. object_preorder.data = {};
  58.  
  59. object_preorder.jQbtn = $(this);
  60. object_preorder.data.kind_id = object_preorder.jQbtn.data('product-kind_id');
  61. object_preorder.data.email = object_preorder.jQbtn.data('user-email') || 0;
  62.  
  63. if( object_preorder.data.email ){
  64. var temp_email = `
  65. <div class="preorder-field preorder-email">
  66. <span class="preorder-email_text">
  67. ${shop2.my.preorder_email_text||'Данный email указан при регистрации.'}
  68. </span>
  69. <div class="preorder-email-input">
  70. <div class="preorder-field-title">E-mail: <span class="preorder-mark">*</span></div>
  71. <div class="preorder-field-value">
  72. <input type="text" name="email" required value="${object_preorder.data.email}">
  73. </div>
  74. </div>
  75. </div>
  76. `;
  77.  
  78. }else {
  79. var temp_email = `
  80. <div class="preorder-field preorder-email">
  81. <div class="preorder-email-input">
  82. <div class="preorder-field-title">E-mail: <span class="preorder-mark">*</span></div>
  83. <div class="preorder-field-value">
  84. <input type="text" name="email" required value="">
  85. </div>
  86. </div>
  87. </div>
  88. `;
  89. }
  90.  
  91. var temp_html = `
  92. <div class="preorder-form-wrap preorder-block">
  93. <form class="preorder_body" action="/my/s3/xapi/public/?method=shop2/addKindEmailNotification" method="get">
  94. <div class="preorder-title preorder-title">
  95. ${shop2.my.preorder_form_title||'Узнать о поступлении'}
  96. </div>
  97. <div class="preorder_text preorder-field type-html">
  98. ${shop2.my.preorder_form_text||'Оставьте почту и мы напишем вам, когда товар появится в наличии.'}
  99. </div>
  100. ${temp_email}
  101. <input type="hidden" name="kind_id" value="${object_preorder.data.kind_id}">
  102.  
  103. <div class="preorder-field preorder-field-button preorder_send">
  104. <button type="submit" class="tpl-form-button">${shop2.my.preorder_form_submitt||'Отправить'}</button>
  105. </div>
  106.  
  107. </form>
  108. <div class="block-recaptcha"></div>
  109. </div>
  110. `;
  111.  
  112. shop2.alert( temp_html, 'close', 'preorder-alert' );
  113. });
  114.  
  115. $(document).on('submit', '.block-recaptcha form', function(e) {
  116. e.preventDefault();
  117.  
  118. var serializeArray = $(this).serializeArray();
  119.  
  120. for(let i = 0; i < serializeArray.length; i++){
  121. if( serializeArray[i]['name'] == '_sitekey' ){ object_preorder.data['_sitekey'] = serializeArray[i]['value'];}
  122. if( serializeArray[i]['name'] == 'g-recaptcha-response' ){ object_preorder.data['g-recaptcha-response'] = serializeArray[i]['value'];}
  123. }
  124.  
  125. sentAjax_preorder( object_preorder.data, (data)=>{
  126. console.log(data);
  127. object_preorder.jQbtn.get(0).setAttribute('disabled', 'disabled');
  128.  
  129. $('.preorder-form-wrap').html(`
  130. <div class="preorder_success">
  131. ${shop2.my.preorder_form_success||'Спасибо!'}
  132. </div>
  133. `);
  134. })
  135.  
  136. });
  137.  
  138. $(document).on('submit', '.preorder_body', function(e) {
  139. e.preventDefault();
  140. var $form = $(this);
  141.  
  142. object_preorder.data.email = this.email.value;
  143. const _regexEmeil = /^[\w-\.]+@[\w-]+\.[a-z]{2,4}$/i;
  144.  
  145. let valid = _regexEmeil.test(object_preorder.data.email);
  146.  
  147. if (valid){
  148. $.get( '/my/s3/xapi/public/?method=shop2/addKindEmailNotification', function( data ) {
  149.  
  150. const _regexBody = new RegExp(/<body[^>]*>(.*?)<\/body>/ig);
  151.  
  152. let body = data.result.html.match( _regexBody );
  153.  
  154.  
  155. $form.parent('.preorder-block').find('.block-recaptcha').html( body );
  156. });
  157. }else {
  158.  
  159. if( !$form.find('.preorder-email').hasClass('field-error') )
  160. $form
  161. .find('.preorder-email')
  162. .addClass('field-error')
  163. .find('.preorder-email-input .preorder-field-value')
  164. .before(`<div class="error-message">Неверный формат адреса электронной почты</div>`);
  165. }
  166.  
  167. });
  168. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement