- const AJAX_URL = window.location.protocol+'//'+window.location.hostname+'/ajax';
- var CustomModal = function()
- {
- return {
- DOM:{},
- init:function(obj)
- {
- var self = this;
- self.DOM = obj;
- $(self.DOM.control).click(
- function()
- {
- $(self.DOM.modal).modal();
- }
- );
- }
- };
- }
- var SetVariationOrder = function()
- {
- return {
- DOM:{
- control:'ul.product-variations li.product-variation-confirm a',
- color_variation:'select.color_variation',
- size_variation:'select.size_variation',
- modal:'div.product-variation-modal'
- },
- init:function(obj)
- {
- var self = this;
- $(self.DOM.control).click(
- function()
- {
- var variation = {complete:1};
- if($("select").is('.color_variation'))
- {
- variation.color = $(self.DOM.color_variation).val();
- if (variation.color<0)
- {
- variation.complete = 0;
- }
- }
- if($("select").is('.size_variation'))
- {
- variation.size = $(self.DOM.size_variation).val();
- if (variation.size<1)
- {
- variation.complete = 0;
- }
- }
- if (variation.complete)
- {
- $(self.DOM.modal).find('li.content').hide();
- $(self.DOM.modal).find('li.loading').show();
- $.ajax(
- {
- url: AJAX_URL,
- type: 'POST',
- data: JSON.stringify({
- action:'cartset',
- id_product:$('ul.product-variations li.product-variation-confirm a.buy').data('id_product'),
- size_variation: variation.size,
- color_variation:variation.color,
- })
- }).
- done(
- function(response)
- {
- $(self.DOM.modal).find('li.content').show();
- $(self.DOM.modal).find('li.loading').hide();
- $('ul.product-variations li.product-variation-next').show();
- $('ul.product-variations li.product-variation-confirm').hide();
- $('ul.product-variations li.product-variation-item').hide();
- }
- )
- }
- return false;
- }
- );
- }
- }
- }
- var CartProductVariation = function()
- {
- return {
- DOM:{
- control:'a.buy',
- modal:'div.product-variation-modal'
- },
- init:function(obj)
- {
- var self = this;
- $(self.DOM.control).click(
- function()
- {
- $(self.DOM.modal).find('li.content').html('');
- $(self.DOM.modal).find('li.loading').show();
- $(self.DOM.modal).modal();
- var id_product = $(this).data('id_product');
- console.log($(this).data('id_product'));
- $.ajax(
- {
- url: AJAX_URL,
- type: 'POST',
- data: JSON.stringify({
- id_product:id_product,
- action:'producttagvariationget'
- })
- }
- )
- .done(
- function(response)
- {
- var res = JSON.parse(response);
- console.log(res.result);
- console.log(res.data);
- if (res.data)
- {
- if (res.data)
- {
- $(self.DOM.modal).find('li.content').append(res.data);
- $(self.DOM.modal).find('li.loading').hide();
- var setVariationOrder = new SetVariationOrder();
- setVariationOrder.init({modal:self.DOM.modal});
- }
- else
- {
- }
- }
- else
- {
- $.ajax(
- {
- url: AJAX_URL,
- type: 'POST',
- data: JSON.stringify({
- action:'cartset',
- id_product:id_product
- })
- }).
- done(
- function(response)
- {
- location.href = window.location.protocol+'//'+window.location.hostname+'/shoppingcart/get';
- }
- )
- }
- }
- )
- // console.log($(this).attr('href'));
- return false;
- }
- );
- }
- }
- }
- var FastOrder = function()
- {
- return {
- DOM:{
- control: 'li.fast-order-complete a',
- color_variation: 'ul.fast-order-form select.color_variation',
- size_variation: 'ul.fast-order-form select.size_variation',
- },
- show_password:function()
- {
- $('ul.fast-order-customer-form li.fast-order-customer-password').show();
- $('ul.fast-order-customer-form li.fast-order-customer-password input').data('ignore', 0);
- },
- reset_password:function()
- {
- $('ul.fast-order-customer-form li.fast-order-error a.reset-password').click(
- function()
- {
- $('li.fast-order-error').html();
- var email = $('ul.fast-order-customer-form li.fast-order-customer-email input').val();
- var email_reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
- if(email_reg.test(email))
- {
- $.ajax(
- {
- url: AJAX_URL,
- type: 'POST',
- data: JSON.stringify({
- action: 'forgetpassword',
- email: email
- })
- }).
- done(
- function(response)
- {
- console.log(response);
- var res = JSON.parse(response);
- if (res.status)
- {
- // рассказать что все ок и надо смотреть мыло
- и надо смотреть мыло
- $('li.fast-order-error').html('ссылка на сброс пароля отправлена на Ваш em// ругнуться что что-то пошло не так
- else
- {
- // ругнуться что что-то пошло не так
- $('li.fast-order-error').html('что-то пошл�// очистить и спрятать пароль
- �йте сн// ругнуться на неправильный формат мыла
- }
- );
- }
- else
- {
- // очистить и спрятать пароль
- // ругнуться на неправильный формат мыла
- }
- console.log();
- return false;
- }
- );
- },
- checkoutData:function()
- {
- var self = this;
- var error_text = '';
- var variation = {};
- variation.complete = 1;
- variation.req = {};
- $('li.fast-order-error').hide();
- $('li.fast-order-error').html('');
- $(self.DOM.size_variation).css('border','1px solid grey');
- $(self.DOM.color_variation).css('border','1px solid grey');
- if ($('ul.fast-order-customer-form li input').length)
- {
- $('ul.fast-order-customer-form li input').each(
- function(i)
- {
- if (!$(this).data('ignore'))
- {
- if ($(this).val().length < 1)
- {
- if (variation.complete)
- {
- variation.complete = 0;
- $(this).focus();
- error_text = 'заполните все поля<br />';
- }
- $(this).css('border','1px solid red');
- }
- else
- {
- variation.req[$(this).attr("name")] = $(this).val();
- $(this).css('border','1px solid grey');
- }
- }
- }
- );
- }
- if (variation.complete)
- {
- if($('ul.fast-order-form').find("select").is('.color_variation'))
- {
- variation.req.color = $(self.DOM.color_variation).val();
- if (variation.req.color<1)
- {
- variation.complete = 0;
- error_text.length?error_text+', а также выберите цвет':'выберите размер';
- $(self.DOM.color_variation).css('border','1px solid red');
- }
- }
- if($('ul.fast-order-form').find("select").is('.size_variation'))
- {
- variation.req.size = $(self.DOM.size_variation).val();
- if (variation.req.size<1)
- {
- variation.complete = 0;
- error_text = error_text.length?error_text+' и размер':'выберите размер';
- $(self.DOM.size_variation).css('border','1px solid red');
- }
- }
- }
- if (variation.complete == 0)
- {
- $('li.fast-order-error').show();
- $('li.fast-order-error').html(error_text);
- }
- else
- {
- if(variation.req.email)
- {
- var email_reg = ('неверный формат номера телефона;
- if(email_reg.test(variation.req.email))
- {
- if (variation.req.phone.length<7 || variation.req.phone.length>13)
- {
- variation.complete = 0;
- $('ul.fast-order-customer-form li input[name ="phone"]').css('border','1px solid red');
- $('li.fast-order-error').show();
- $('li.fast-order-error').html('неверный формат номера телефона');
- }
- }
- else
- {
- variation.complete = 0;
- $('ul.fast-order-customer-form li input[name ="email"]').css('border','1px solid red');
- $(').keyup(
- function()
- {
- var phone = $(this).val().replace(/^0(.*)/, ' формат email');
- }
- }
- }
- return variation;
- },
- init:function()
- {
- var self = this;
- var fastOrderModal = new CustomModal();
- fastOrderModal.init({
- control:'ul.product-price li.fast-order',
- modal:'div.fast-order-modal'
- });
- $('ul.fast-order-customer-form li input[name ="phone"]').key// console.log(JSON.stringify(checkoutResult.req));
- ne = $(this).val().replace( , '').replace($(fa, '');
- $(this).val(phone);
- }
- );
- $(self.DOM.control).click(
- function()
- {
- let fast_order_control = this;
- var checkoutResult = self.checkoutData();
- if (checkoutResult.complete)
- {
- checkoutResult.req.action = 'fastorderset';
- checkoutResult.req.id_product = $(this).data('id_product');
- // console.log(JSON.stringify(checkoutResult.req));
- $(fast_order_control).hide();
- $.ajax(
- {
- url: AJAX_URL,
- type: 'POST',
- data: JSON.stringify(checkoutResult.req)
- }).
- done(
- function(response)
- {
- console.log(response);
- var res = JSON.parse(response);
- $('li.fast-order-error').show();
- if (res.status)
- {
- $('li.fast-order-product-image').hide();
- $('li.fast-order-product-variations').hide();
- $('li.fast-order-customer-form li').hide();
- $('li.fast-order-error').show();
- $('li.fast-order-error').css('font-size', '24px');
- $(',
- '»РµРЅРЅСЏ оформлено успішно!');
- try
- {
- gtag("event", "purchase", res.transaction);
- gtag('event', 'conversion',
- {
- 'send_to': 'AW-673092592/TZxZCLSS3PMCEPCn-sAC',
- 'value': res.transaction.value,
- // что-то пошло не так
- 'transaction_id': res.transaction.transaction_id
- });
- }
- catch(e)
- {
- console.log(e);
- }
- setTimeout(() => {location.href = res.redirect_url}, 4000);
- }
- else
- {
- // что-то пошло не так
- $('li.fast-order-error').html(res.message);
- if (res.action)
- {
- self[res.action]();
- }
- if (res.focus)
- {
- $('ul.fast-order-customer-form li input[name ="'+res.focus+'"]').css('border','1px solid red');
- $('ul.fast-order-customer-form li input[name ="'+res.focus+'"]').focus();
- }
- }
- }
- ).
- always(
- function()
- {
- $(fast_order_control).show();
- }
- );
- }
- return false;
- }
- );
- }
- }
- }
- var FastOrderForm = function()
- {
- return {
- DOM:{
- control:'a.fast-order',
- modal:'div.product-variation-modal'
- },
- init:function(obj)
- {
- var self = this;
- $(self.DOM.control).click(
- function()
- {
- $(self.DOM.modal).find('li.content').html('');
- $(self.DOM.modal).find('li.loading').show();
- $(self.DOM.modal).modal();
- var id_product = $(this).data('id_product');
- console.log($(this).data('id_product'));
- $.ajax(
- {
- url: AJAX_URL,
- type: 'POST',
- data: JSON.stringify({
- id_product:id_product,
- action:'fastorderform'
- })
- }
- )
- .done(
- function(response)
- {
- var res = JSON.parse(response);
- console.log(res.result);
- console.log(res.data);
- if (res.data)
- // здесь надо закрыть модальное окно
- es.data)
- {
- $(self.DOM.modal).find('li.conte// console.log($(this).attr('href'));
- $(self.DOM.modal).find('li.loading').hide();
- var setFastOrder = new FastOrder();
- setFastOrder.init({modal:self.DOM.modal});
- }
- else
- {
Raw Paste