1var wholesale_pre_order_main = class wholesale_pre_order { 2 constructor() { 3 this.product = undefined; 4 this.product_settings = undefined; 5 this.variant = undefined; 6 this.cart_products_settings = undefined; 7 this.quick_view_products_settings = undefined; 8 this.sopf_products_settings = undefined; 9 this.collection_products_settings = undefined; 10 this.get_product_data(); 11 this.init_pre_order_quick_view(); 12 this.quick_view_modal_selector = ".modal--quickview:visible, .modal:visible, .modal__dialog:visible, .sca-fancybox-wrap:visible, #colorbox:visible, .modal--quick-shop:visible, .fancybox-wrap:visible, .fancybox-container:visible"; 13 this.quick_view_add_to_cart_selector = ".product__submit__add, .ajax-submit.add_to_cart, .product-form__add-button, .add-to-cart, .product-submit, .product-form--atc-button, .sca-qv-cartbtn, #AddToCart, #addToCart, .add_to_cart > .button, .product-form__cart-submit, .quickbuy__submit, .addto.cart.sliding-cart"; 14 this.add_to_cart_selector = "form[action$=\"/cart/add\"] [type=\"submit\"], form[action$=\"/cart/add\"] .ajax-submit"; 15 } 16 //init 17 get_product_data() { 18 let _this = this; 19 //check whether it is product page or not 20 if (window.location.pathname.match(/^\/.*\/products\/.*/) !== null || window.location.pathname.match(/^\/products\/.*/) !== null) { 21 if (_this.get_querystring("variant") != null) { 22 _this.variant = pre_order_wholesale_data.variants.find(x => x.id == _this.get_querystring("variant")); 23 } else { 24 if (typeof (default_pre_order_product_variant) != "undefined") { 25 _this.variant = pre_order_wholesale_data.variants.find(x => x.id == default_pre_order_product_variant); 26 } else { 27 _this.variant = pre_order_wholesale_data.variants[0]; 28 } 29 } 30 31 32 // get product data 33 let prd_interval = setInterval(function () { 34 if (pre_order_wholesale_data != undefined) { 35 clearInterval(prd_interval); 36 _this.ajax_request("GET", "https://" + window.location.host + "/apps/wholesale_pre_order/pre_order_root.php?f=get_settings_front&prd_id=" + pre_order_wholesale_data.id + "&store=" + window.location.host, _this.set_product_settings); 37 } 38 }, 500); 39 40 // check for variant change 41 setInterval(() => { 42 if (pre_order_wholesale_data != undefined && pre_order_wholesale_data.variants.length > 1 && _this.product_settings != undefined && _this.product_settings.product_settings.length != 0) { 43 let variant_id = _this.get_querystring("variant"); 44 if (variant_id != null && (_this.variant == undefined || _this.variant.id != variant_id)) { 45 _this.variant = pre_order_wholesale_data.variants.find(x => x.id == variant_id); 46 _this.variant.id = variant_id; 47 if (_this.variant.inventory_policy != "deny" || _this.product_settings.settings.enable_pre_order_on_stock_item == 1) { 48 _this.create_button(); 49 } else { 50 $('.pre-order-main-wrapper').remove(); 51 $('.preorder-sold-out').remove(); 52 //$('form[action$="/cart/add"]').find(':submit').attr('style', function (i, s) { return (s || '') + 'display: block !important;' }); 53 $(_this.add_to_cart_selector).attr('style', function (i, s) { return (s || '') + 'display: block !important;' }); 54 $('.shopify-payment-button').show(); 55 } 56 57 } 58 } 59 }, 500); 60 } 61 62 //check whether it is cart page or not 63 if (window.location.pathname.match(/^\/*\/cart/) !== null || window.location.pathname.match(/^\/.*\/cart\/.*/) !== null || window.location.pathname.match(/^\/cart\/.*/) !== null) { 64 65 if (pre_order_wholesale_data != undefined && pre_order_wholesale_data.length > 0) { 66 var commaseprateids = pre_order_wholesale_data.map(e => e.product_id).join(","); 67 68 // get data 69 let cart_data_interval = setInterval(function () { 70 if (pre_order_wholesale_data != undefined) { 71 clearInterval(cart_data_interval); 72 _this.ajax_request("GET", "https://" + window.location.host + "/apps/wholesale_pre_order/pre_order_root.php?f=get_settings_front&prd_id=" + commaseprateids + "&store=" + window.location.host, _this.set_cart_products_settings); 73 } 74 }, 500); 75 76 // get settings 77 let cart_setting_interval = setInterval(function () { 78 if (_this.cart_products_settings != undefined) { 79 clearInterval(cart_setting_interval); 80 _this.validate_cart(); 81 } 82 }, 500); 83 } 84 } 85 86 //check whether it is spof or not 87 if (window.location.pathname.match(/^\/apps\/shop.*/) !== null || window.location.pathname.match(/^\/.*\/apps\/shop\/.*/) !== null || window.location.pathname.match(/^\/apps\/shop\/.*/) !== null) { 88 let product_ids = ''; 89 setInterval(function () { 90 let spof_items = $('input[data-available-quantity]:not(.checked_preorderbtn), button[data-available-quantity]:not(.checked_preorderbtn)'); 91 for (let index = 0; index < spof_items.length; index++) { 92 const element = spof_items[index]; 93 $(element).addClass('checked_preorderbtn'); 94 product_ids = product_ids + $(element).data("product_id") + ","; 95 $(element).addClass('create_preorderbtn'); 96 } 97 if (product_ids != "" && product_ids != ",") { 98 product_ids = product_ids.replace(/,\s*$/, ""); 99 _this.ajax_request("GET", "https://" + window.location.host + "/apps/wholesale_pre_order/pre_order_root.php?f=get_settings_front&prd_id=" + product_ids + "&store=" + window.location.host, _this.set_sopf_products_settings); 100 product_ids = ""; 101 } 102 }, 500) 103 } 104 105 //check whether it is collection page or not 106 if ((window.location.pathname.match(/^\/.*\/collections\/.*/) !== null || window.location.pathname.match(/^\/collections\/.*/) !== null) && (window.location.pathname.match(/^\/.*\/products\/.*/) == null && window.location.pathname.match(/^\/products\/.*/) == null)) { 107 // get products data 108 let prd_interval = setInterval(function () { 109 if (pre_order_wholesale_data != undefined) { 110 clearInterval(prd_interval); 111 let collection_products_ids = pre_order_wholesale_data.map(x => x.id).join(', '); 112 _this.ajax_request("GET", "https://" + window.location.host + "/apps/wholesale_pre_order/pre_order_root.php?f=get_settings_front&prd_id=" + collection_products_ids + "&store=" + window.location.host, _this.init_collection); 113 } 114 }, 500); 115 } 116 } 117 118 //create pre-order button spof 119 spof_create_button() { 120 121 let _this = this; 122 if (_this.sopf_products_settings.isActive == 0) { return false; }
123 let list_btns = $('input.create_preorderbtn:not(.proccessed_pre_order_btn), button.create_preorderbtn:not(.proccessed_pre_order_btn)'); 124 for (let index = 0; index < list_btns.length; index++) { 125 const element = list_btns[index]; 126 $(element).addClass("proccessed_pre_order_btn"); 127 if ($(element).closest("#popDiv").length == 1) { continue; } 128 let product_id = $(element).data("product_id"); 129 let variant_id = $(element).attr("id"); 130 let spof_prd_qty = $(element).data("available-quantity"); 131 let inventory_management = $(element).data("inventory-management"); 132 let inventory_policy = $(element).data("inventory-policy"); 133 let product_object = _this.sopf_products_settings.product_settings.find(x => x.product_id == product_id); 134 let variant_object = _this.sopf_products_settings.variant_settings.find(x => x.variant_id == variant_id); 135 136 if (product_object == undefined || variant_object == undefined) { 137 continue; 138 } 139 let final_setting = _this.get_final_settings(_this.sopf_products_settings.settings, product_object, variant_object); 140 let shopify_variant = {}; 141 shopify_variant.inventory_quantity = spof_prd_qty; 142 shopify_variant.id = variant_id; 143 144 if (final_setting.status === 0 && ((inventory_policy != "deny" && inventory_management == "shopify" && spof_prd_qty < 1) || _this.sopf_products_settings.settings.enable_pre_order_on_stock_item == 1)) { 145 146 _this.pre_order_UI(final_setting, variant_object, _this.sopf_products_settings.settings, shopify_variant, "WOF", $(element)); 147 148 } else if (final_setting.status !== "" && final_setting.status === 0 && _this.sopf_products_settings.settings.enable_pre_order_on_stock_item == 0) { 149 150 _this.pre_order_normal_add_to_cart_event("WOF", shopify_variant, _this.sopf_products_settings.settings, final_setting, $(element), spof_prd_qty); 151 152 } 153 } 154 155 } 156 157 update_cart_data(data) { 158 window.updatedCartJson = data.items; 159 } 160 161 // validate cart page 162 validate_cart(refresh = false) { 163 let _this = this; 164 if (_this.cart_products_settings.isActive == 1) { 165 var x = document.querySelectorAll("#wcp-30-open,input[name='checkout'], button[name='checkout'], input[name='goto_pp'], button[name='goto_pp'], input[name='goto_gc'], button[name='goto_gc'], [href$='checkout']"); 166 for (var i = 0; i < x.length; i++) { 167 x[i].addEventListener('click', function (e) { 168 if (window.ignorPreOrder == undefined) { 169 e.stopPropagation(); 170 e.preventDefault(); 171 var buttonElement = this; 172 setTimeout(function () { 173 _this.ajax_request("GET", "/cart.js", _this.update_cart_data, null, "json", false); 174 let is_validate = true; 175 let qty_limit = undefined; 176 let available_qty = 0; 177 let invaild_item_name = undefined; 178 let total_qty = 0; 179 let invalid_regular_product = false; 180 window.updatedCartJson.forEach(element => { 181 if (element.properties != null && element.properties[_this.cart_products_settings.settings.product_label] == "true") { 182 qty_limit = 0; 183 let prd_qty_limit = _this.cart_products_settings.product_settings.find(x => x.product_id == element.product_id); 184 let variant_qty_limit = _this.cart_products_settings.variant_settings.find(x => x.variant_id == element.variant_id); 185 186 if (prd_qty_limit != undefined && prd_qty_limit.qty_limit != 0) { 187 qty_limit = prd_qty_limit.qty_limit; 188 } 189 if (variant_qty_limit != undefined && variant_qty_limit.qty_limit != 0 && variant_qty_limit.qty_limit < qty_limit) { 190 qty_limit = variant_qty_limit.qty_limit; 191 } 192 let element_inventory_quantity = 0; 193 if (pre_order_wholesale_data.find(x =>
193 x.id == element.id) != undefined) { 194 element_inventory_quantity = pre_order_wholesale_data.find(x => x.id == element.id).inventory_quantity; 195 element_inventory_quantity = element_inventory_quantity == undefined ? 0 : element_inventory_quantity; 196 } 197 available_qty = qty_limit + element_inventory_quantity; 198 if (variant_qty_limit != undefined && _this.cart_products_settings.settings.enable_pre_order_on_stock_item == 1) { 199 available_qty = qty_limit - variant_qty_limit.sold_qty; 200 } 201 if (element.quantity > available_qty && qty_limit != 0) { 202 is_validate = false; 203 invaild_item_name = element.title; 204 return; 205 } 206 if (_this.cart_products_settings.settings.qty_limit_enabled == 1) { total_qty += element.quantity; } 207 } 208 else { 209 let pre_order_product_object = _this.cart_products_settings.product_settings.find(x => x.product_id == element.product_id); 210 let pre_order_variant_object = _this.cart_products_settings.variant_settings.find(x => x.variant_id == element.variant_id); 211 let pre_order_cart_variant_object = pre_order_wholesale_data.find(x => x.id == element.id); 212 if (pre_order_product_object != undefined && pre_order_variant_object != undefined && pre_order_cart_variant_object != undefined 213 && pre_order_variant_object.status == 0 && pre_order_product_object.status == 0 214 && pre_order_cart_variant_object.inventory_policy == "continue" && pre_order_cart_variant_object.inventory_quantity < element.quantity) { 215 is_validate = false; 216 invaild_item_name = element.title; 217 available_qty = pre_order_cart_variant_object.inventory_quantity; 218 invalid_regular_product = true; 219 return; 220 } 221 } 222 }); 223 window.ignorPreOrder = 1; 224 if (total_qty > _this.cart_products_settings.settings.qty_limit) { 225 window.ignorPreOrder = undefined; 226 alert(_this.cart_products_settings.settings.cart_limit_msg.replace("<qty>", _this.cart_products_settings.settings.qty_limit)); 227 } else if (!is_validate) { 228 window.ignorPreOrder = undefined; 229 if (invalid_regular_product == true && window.pre_order_invalid_regular_product_msg != undefined) { 230 alert(window.pre_order_invalid_regular_product_msg.replace("<qty>", available_qty).replace("<product name>", invaild_item_name)); 231 } else { 232 alert(_this.cart_products_settings.settings.qty_limit_msg.replace("<qty>", available_qty).replace("<product name>", invaild_item_name)); 233 } 234 } 235 if (window.ignorPreOrder != undefined) { 236 $(buttonElement).click(); 237 } 238 }, 1000) 239 } 240 }, false); 241 } 242 243 if (_this.cart_products_settings.settings.collect_shipping_date != undefined && _this.cart_products_settings.settings.collect_shipping_date == 1) { 244 window.pre_order_wholesale_data.forEach(element => { 245 if (element.properties != null && element.properties[_this.cart_products_settings.settings.product_label] == "true") {
246 let elementKey = element.key.replace(":", ""); 247 $("#preOrderShippingDateWrapper" + elementKey).addClass("preorder-display-flex"); 248 if (element.properties["Pre-order shipping date"] != undefined) { 249 $("#preOrderShippingDate" + elementKey).val(_this.preOrder_formatDate(element.properties["Pre-order shipping date"], "set")); 250 251 } 252 } 253 }); 254 255 $(".txt-pre-order-shipping-date").off().on("change", function () { 256 if ($(this).val() != "") { 257 _this.ajax_request("GET", "/cart.js", _this.update_cart_data, null, "json", false); 258 var oldVariant = window.updatedCartJson.find(x => x.key.toString() == $(this).data("key")); 259 if (oldVariant != undefined) { 260 let odlvid = oldVariant.variant_id; 261 let remove_items = {}; 262 remove_items[$(this).data("key")] = 0; 263 264 _this.ajax_request("POST", "/cart/update.js", function () { }, { updates: remove_items }, "json", false); 265 266 let jsonproperties = oldVariant.properties; 267 jsonproperties["Pre-order shipping date"] = _this.preOrder_formatDate($(this).val()); 268 let post_data = { id: odlvid, quantity: oldVariant.quantity, properties: jsonproperties } 269 _this.ajax_request("POST", "/cart/add.js", _this.item_added, post_data, "json", false); 270 } 271 } 272 }) 273 } 274 } 275 } 276 277 278 preOrder_formatDate(date, retuntype = "get") { 279 if (retuntype == "get") { 280 var d = new Date(date), 281 month = '' + (d.getMonth() + 1), 282 day = '' + d.getDate(), 283 year = d.getFullYear(); 284 285 if (month.length < 2) 286 month = '0' + month; 287 if (day.length < 2) 288 day = '0' + day; 289 return [month, day, year].join('-'); 290 } else { 291 var datePart = date.match(/\d+/g), 292 year = datePart[2], 293 month = datePart[0], day = datePart[1]; 294 295 return year + '-' + month + '-' + day; 296 } 297 } 298 299 300 // create pre order button for product page 301 create_button() { 302 let _this = this; 303 if (_this.product_settings.isActive == 0) { return false; } 304 let variant_data = _this.product_settings.variant_settings.find(i => i.variant_id == _this.variant.id); 305 let final_setting = _this.get_final_settings(_this.product_settings.settings, _this.product_settings.product_settings[0], variant_data); 306 307 let shopify_variant = pre_order_wholesale_data.variants.find(i => i.id == _this.variant.id); 308 309 // if pre order is enable 310 if (final_setting.status === 0 && ((shopify_variant.inventory_management == "shopify" && shopify_variant.inventory_quantity < 1) || _this.product_settings.settings.enable_pre_order_on_stock_item == 1)) { 311 312 _this.pre_order_UI(final_setting, variant_data, _this.product_settings.settings, shopify_variant, "product"); 313 314 } else if (final_setting.status !== "" && final_setting.status === 0 && _this.product_settings.settings.enable_pre_order_on_stock_item == 0) { 315 316 _this.pre_order_normal_add_to_cart_event("product", shopify_variant, _this.product_settings.settings, final_setting); 317 318 } 319 if (final_setting.status == 1) { 320 //$('form[action$="/cart/add"]').find(':submit').attr('style', function (i, s) { return (s || '') + 'display: block !important;' }); 321 $(_this.add_to_cart_selector).attr('style', function (i, s) { return (s || '') + 'display: block !important;' }); 322 $('.shopify-payment-button').show(); 323 $('.pre-order-main-wrapper').remove(); 324 $('.preorder-sold-out').remove(); 325 } 326 } 327 328 // set settings 329 set_product_settings(data) { 330 this.product_settings = data; 331 if (this.product_settings != undefined && this.product_settings.product_settings.length != 0) { 332 if (this.variant.inventory_policy != "deny" || this.product_settings.settings.enable_pre_order_on_stock_item == 1) { 333 this.create_button(); 334 } else { 335 $('.pre-order-main-wrapper').remove(); 336 $('.preorder-sold-out').remove(); 337 //$('form[action$="/cart/add"]').find(':submit').attr('style', function (i, s) { return (s || '') + 'display: block !important;' }); 338 $(this.add_to_cart_selector).attr('style', function (i, s) { return (s || '') + 'display: block !important;' }); 339 $('.shopify-payment-button').show(); 340 } 341 } 342 } 343 344 // set settings 345 set_cart_products_settings(data) { 346 this.cart_products_settings = data; 347 } 348 349 350 // set settings 351 set_sopf_products_settings(data) { 352 this.sopf_products_settings = data; 353 if (this.sopf_products_settings != undefined && this.sopf_products_settings.product_settings.length != 0) { 354 this.spof_create_button(); 355 } else {
356 $('input.create_preorderbtn:not(.proccessed_pre_order_btn)').addClass("proccessed_pre_order_btn"); 357 } 358 359 } 360 361 //create pre-order button on the collection page 362 init_collection(data) { 363 let _this = this; 364 this.collection_products_settings = data; 365 let collection_page_interval = setInterval(function () { 366 _this.collection_page_create_button(); 367 }, 1000); 368 } 369 370 // item added callback 371 item_added(data) { 372 try { 373 document.getElementById("pre-order-success-msg").innerHTML = this.product_settings.settings.add_to_cart_msg; 374 document.getElementById("pre-order-success").style.display = "block"; 375 } catch (error) { } 376 377 let orginal_text = $(this.button_element).html(); 378 let selected_element = this.button_element; 379 $(selected_element).html("â"); 380 setTimeout(function () { $(selected_element).html(orginal_text); }, 2000); 381 382 if (this.redirecttocart) { 383 if (this.hasOwnProperty('fly_element')) { 384 if (typeof (flyToElement) != "undefined") { 385 flyToElement($(this.fly_element), $('#crtDiv')); 386 } 387 } 388 if (window.location.href.indexOf("/apps/shop") == -1) { 389 if (window.preOrderWholesaleRedirectCart == true) { 390 window.location.href = "/cart"; 391 } else { 392 if (this.product_settings.settings.reload_page == 1) { 393 setTimeout(function () { window.location.reload(); }, 2000); 394 } else { 395 setTimeout(function () { 396 document.getElementById("pre-order-success").style.display = "none"; 397 }, 2000); 398 } 399 } 400 } 401 } else { 402 console.log("item added to cart"); 403 } 404 if (window.location.href.indexOf("/apps/shop") != -1) { 405 $.getJSON('/cart.js').done(function (cart) { 406 $('#lbl_cart_total').html(cart.item_count); 407 if (typeof (showToast) != "undefined") { 408 let quantity = $(".wof-quantity-text-box-" + data.id).val(); 409 showToast(wofConfig.settings.translate.messages.item_added_to_cart.replace("[item_count]", quantity)); 410 } 411 $('#crtDiv').html(cart.item_count + ' Items'); // <br/> ' + Shopify.formatMoney(cart.total_price)); 412 }); 413 var cartButton = $(this.button_element); 414 cartButton.val('Adding....'); 415 var imgtodrag = $(this.button_element).closest('tr').find('img.Spof_image') 416 if (imgtodrag.length > 0) { 417 if (typeof (flyToElement) != "undefined") { 418 flyToElement($(imgtodrag), $('#crtDiv')); 419 } 420 } 421 422 window.setTimeout(function () { cartButton.val('Thank You'); }, 400); 423 window.setTimeout(function () { cartButton.val('Add More...'); }, 1000); 424 } 425 } 426 console_item_added(data) { 427 console.log("item added to cart" + data); 428 if (window.location.href.indexOf("/apps/shop") != -1) { 429 $.getJSON('/cart.js').done(function (cart) { 430 $('#lbl_cart_total').html(cart.item_count); 431 if (typeof (showToast) != "undefined") { 432 let quantity = $(".wof-quantity-text-box-" + data.id).val(); 433 showToast(wofConfig.settings.translate.messages.item_added_to_cart.replace("[item_count]", quantity)); 434 } 435 $('#crtDiv').html(cart.item_count + ' Items'); // <br/> ' + Shopify.formatMoney(cart.total_price)); 436 }); 437 var cartButton = $(this.button_element); 438 cartButton.val('Adding....'); 439 var imgtodrag = $(this.button_element).closest('tr').find('img.Spof_image') 440 if (imgtodrag.length > 0) { 441 if (typeof (flyToElement) != "undefined") { 442 flyToElement($(imgtodrag), $('#crtDiv')); 443 } 444 } 445 446 window.setTimeout(function () { cartButton.val('Thank You'); }, 400); 447 window.setTimeout(function () { cartButton.val('Add More...'); }, 1000); 448 } 449 } 450 451 // function to make ajax requests 452 ajax_request(method, url, callbackfun, perams = null, dataType = "json", async = true, redirect = true) { 453 this.redirecttocart = redirect; 454 $.ajax({ 455 type: method, 456 url: url, 457 dataType: dataType, 458 data: perams, 459 async: async, 460 success: callbackfun.bind(this), 461 error: function (XMLHttpRequest) { 462 var response = eval('(' + XMLHttpRequest.responseText + ')'); 463 response = response; 464 } 465 }); 466 467 } 468 469 // get query string from url 470 get_querystring(name) { 471 let url = window.location.href; 472 name = name.replace(/[\[\]]/g, "\\$&"); 473 let regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 474 results = regex.exec(url); 475 if (!results) return null; 476 if (!results[2]) return ''; 477 return decodeURIComponent(results[2].replace(/\+/g, " ")); 478 } 479 480 //create pre-order button spof 481 collection_page_create_button() { 482 let _this = this; 483 if (_this.collection_products_settings.isActive == 0) { return false; }
484 let list_btns = $('.create_preorderbtn:not(.proccessed_pre_order_btn)'); 485 if (list_btns.length == 0) { return false; } 486 let product_id, variant_id, collection_prd_qty, product_object, variant_object = undefined; 487 488 for (let index = 0; index < list_btns.length; index++) { 489 const element = list_btns[index]; 490 $(element).addClass("proccessed_pre_order_btn"); 491 product_id = $(element).data("product-id"); 492 variant_id = $("#preOrderExtra" + product_id).data("vid"); 493 collection_prd_qty = $("#preOrderExtra" + product_id).data("inventory-quantity"); 494 product_object = _this.collection_products_settings.product_settings.find(x => x.product_id == product_id); 495 variant_object = _this.collection_products_settings.variant_settings.find(x => x.variant_id == variant_id); 496 497 let product_element = pre_order_wholesale_data.find(i => i.id == product_id); 498 if (product_element == undefined || product_object == undefined || variant_object == undefined) { 499 continue; 500 } 501 let final_setting = _this.get_final_settings(_this.collection_products_settings.settings, product_object, variant_object); 502 let variant_element = product_element.variants.find(i => i.id == variant_id); 503 if (product_object != undefined && variant_object != undefined && final_setting.status === 0 && ((variant_element.inventory_policy != "deny" && variant_element.inventory_management == "shopify" && collection_prd_qty < 1) || _this.collection_products_settings.settings.enable_pre_order_on_stock_item == 1)) { 504 505 _this.pre_order_UI(final_setting, variant_object, _this.collection_products_settings.settings, variant_element, "collection", $(element)); 506 507 } else if (product_object != undefined && variant_object != undefined && final_setting.status !== "" && final_setting.status === 0 && _this.collection_products_settings.settings.enable_pre_order_on_stock_item == 0) { 508 509 _this.pre_order_normal_add_to_cart_event("collection", variant_element, _this.collection_products_settings.settings, final_setting, $(element), collection_prd_qty); 510 511 } 512 513 } 514 515 } 516 517 // init quick view 518 init_pre_order_quick_view() { 519 let _this = this; 520 $(".product-modal, .quickview, .product-item__action-button, .quick_shop, .button--quick-shop, .sca-qv-button, .quick-view-btn, .js-quick-shop-link, .quick-view, .js-quickbuy-button, .quick-product__btn").on("click", function (e) { 521 var handle = _this.findHandle($(this)); 522 if (handle == undefined) { return; } 523 _this.ajax_request("GET", "/search?view=pre_order_search&handle=" + handle, function (data) { 524 if (data.products.length == 0) { return; } 525 var defaultVariant = data.products[0].variants.find(x => x.id == data.products[0].default_variant); 526 if (defaultVariant == undefined) { return; } 527 window.defaultVariant = defaultVariant; 528 529 // get product data 530 _this.ajax_request("GET", "https://" + window.location.host + "/apps/wholesale_pre_order/pre_order_root.php?f=get_settings_front&prd_id=" + data.products[0].id + "&store=" + window.location.host, function (preData) { 531 if (preData.settings.isActive == 0) { return; } 532 if (preData.product_settings != undefined && preData.product_settings.length != 0) { 533 534 let selected_variant = defaultVariant.id; 535 let quickview_interval = setInterval(function () { 536 if (selected_variant != $(_this.quick_view_modal_selector).find('form[action$="/cart/add"]').find('[name=id]').val()) { 537 selected_variant = $(_this.quick_view_modal_selector).find('form[action$="/cart/add"]').find('[name=id]').val(); 538 var selected_variant_data = data.products[0].variants.find(x => x.id == selected_variant); 539 if (selected_variant_data == undefined) { clearInterval(quickview_interval); } 540 else { _this.quick_view_varinat_change(selected_variant_data, preData); } 541 } 542 }, 500); 543 _this.quick_view_varinat_change(defaultVariant, preData); 544 } 545 }); 546 }); 547 }) 548 } 549 550 quick_view_varinat_change(defaultVariant, preData) { 551 let _this = this; 552 if (defaultVariant.inventory_policy != "deny" || preData.settings.enable_pre_order_on_stock_item == 1) { 553 let variant_setting = preData.variant_settings.find(x => x.variant_id == defaultVariant.id); 554 let final_setting = _this.get_final_settings(preData.settings, preData.product_settings[0], variant_setting) 555 if (final_setting.status === 0 && ((defaultVariant.inventory_management == "shopify" && defaultVariant.inventory_quantity < 1) || preData.settings.enable_pre_order_on_stock_item == 1)) { 556 _this.pre_order_UI(final_setting, variant_setting, preData.settings, defaultVariant, "quickview"); 557 558 } 559 else if (final_setting.status !== "" && final_setting.status === 0 && preData.settings.enable_pre_order_on_stock_item == 0) { 560 _this.pre_order_normal_add_to_cart_event("quickview", defaultVariant, preData.settings, final_setting); 561 } 562 if (final_setting.status == 1) { 563 564 $(_this.quick_view_modal_selector).find(_this.quick_view_add_to_cart_selector).attr('style', function (i, s) { return (s || '') + 'display: block !important;' }); 565 $('.shopify-payment-button').show(); 566 $('.pre-order-main-wrapper').remove(); 567 $('.preorder-sold-out').remove(); 568 569 } 570 571 } else { 572 $('.pre-order-main-wrapper').remove(); 573 $('.preorder-sold-out').remove(); 574 $(_this.quick_view_modal_selector).find(_this.quick_view_add_to_cart_selector).attr('style', function (i, s) { return (s || '') + 'display: block !important;' }); 575 $('.shopify-payment-button').show(); 576 } 577 } 578 579 pre_order_normal_add_to_cart_event(parent_type, shopify_variant, general_setting, final_setting, selector = null, inventory_quantity = null) { 580 let _this = this; 581 if (parent_type == "collection") { 582 $(selector).unbind(); 583 $(selector).data("vid", shopify_variant.id);
584 $(selector).data("collection-prd-qty", inventory_quantity); 585 } 586 587 let add_to_cart_selector = undefined; 588 let payment_selector = undefined; 589 let reload_page = true; 590 switch (parent_type) { 591 case "quickview": 592 $('.pre-order-main-wrapper').remove(); 593 $('.preorder-sold-out').remove(); 594 add_to_cart_selector = $(_this.quick_view_modal_selector).find(_this.quick_view_add_to_cart_selector); 595 payment_selector = $(_this.quick_view_modal_selector).find('.shopify-payment-button'); 596 $(payment_selector).show(); 597 reload_page = false; 598 break; 599 600 case "collection": 601 add_to_cart_selector = $(selector); 602 payment_selector = $(_this.quick_view_modal_selector).find('.shopify-payment-button'); 603 break; 604 605 case "product": 606 $('.pre-order-main-wrapper').remove(); 607 $('.preorder-sold-out').remove(); 608 //add_to_cart_selector = $('form[action$="/cart/add"]').find(':submit'); 609 add_to_cart_selector = $(_this.add_to_cart_selector); 610 payment_selector = $('.shopify-payment-button'); 611 $(payment_selector).show(); 612 break; 613 614 case "WOF": 615 add_to_cart_selector = $(selector); 616 $(selector).addClass("pre-order-processing"); 617 $(selector).unbind("click"); 618 $(selector).off("click"); 619 break; 620 } 621 622 $(add_to_cart_selector).attr('style', function (i, s) { return (s || '') + 'display: block !important;' }); 623 if (jQuery != undefined) { jQuery(add_to_cart_selector).off("click"); } 624 $(add_to_cart_selector).off().on("click", function (e) { 625 e.preventDefault(); 626 let variantid = $(this).closest('form').find('[name="id"]').val(); 627 let variantqty = $(this).closest('form').find('[name="quantity"]').val(); 628 if (parent_type == "WOF") { 629 variantid = $(selector).attr("id"); 630 variantqty = $('input[data-prd-id="' + variantid + '"]').val(); 631 if (variantqty == undefined) { 632 variantqty = $('.wof-quantity-text-box-' + variantid).val(); 633 } 634 } 635 variantqty = variantqty == undefined ? 1 : variantqty; 636 let totalqty = parseInt(variantqty); 637 _this.ajax_request("GET", "/cart.js", function (data) { 638 if (data.items.find(x => x.variant_id == variantid) != undefined) { 639 totalqty = totalqty + data.items.find(x => x.variant_id == variantid).quantity; 640 } 641 }, null, "json", false); 642 var remaingqty = parseInt(shopify_variant.inventory_quantity) - parseInt(totalqty); 643 _this.button_element = $(this); 644 if (remaingqty < 0) { 645 alert(general_setting.out_stock_msg.replace("<qty>", shopify_variant.inventory_quantity)); 646 let jsonproperties = {}; 647 jsonproperties[final_setting.product_label] = 'true'; 648 649 if(general_setting.selling_plan_id){ 650 jsonproperties['selling_plan_id'] = general_setting.selling_plan_id; 651 } 652 let post_data = { id: variantid, quantity: Math.abs(remaingqty), properties: jsonproperties } 653 _this.ajax_request("POST", "/cart/add.js", _this.console_item_added, post_data, "json", false); 654 655 let newremaingqty = parseInt(variantqty) - Math.abs(remaingqty); 656 post_data = { id: variantid, quantity: newremaingqty } 657 _this.ajax_request("POST", "/cart/add.js", _this.item_added, post_data, "json", true, reload_page); 658 659 } else { 660 let post_data = { id: variantid, quantity: parseInt(variantqty) } 661 _this.ajax_request("POST", "/cart/add.js", _this.item_added, post_data, "json", true, reload_page); 662 } 663 }) 664 } 665 666 pre_order_UI(final_setting, variant_data, genral_settings, shopify_variant, parent_type, selector = null) { 667 let _this = this; 668 var preordersoldout = parseInt(final_setting.qty_limit) + parseInt(shopify_variant.inventory_quantity); 669 670 if (variant_data != undefined && genral_settings.enable_pre_order_on_stock_item == 1) { 671 preordersoldout = parseInt(final_setting.qty_limit) - variant_data.sold_qty; 672 } 673 if (preordersoldout > 0 || parseInt(final_setting.qty_limit) == 0) { 674 $('#wholesale_pre_order_style_' + variant_data.variant_id + ',.preorder-tooltip_' + variant_data.variant_id).remove(); 675 final_setting.tooltip_position = final_setting.tooltip_position.toString().replace("0", "Top").replace("1", "Bottom").replace("2", "Left").replace("3", "Right"); 676 let create_pre_order_style = "margin:0 !important;padding: 5px 20px;background:" + final_setting.pre_btn_background_color + ";color:" + final_setting.pre_btn_text_color 677 + ";border-radius:" + final_setting.pre_btn_border_radius + "px;border:" + final_setting.pre_btn_border_width + "px solid " 678 + final_setting.pre_btn_border_color + ";font-family:" 679 + final_setting.pre_btn_font_style.toString().replace("0", "auto").replace("1", "Arial").replace("2", "Times New Roman").replace("3", "Courier").replace("4", "s
679ans-serif") + ";width:" 680 + final_setting.pre_btn_width.toString().replace("0", "auto").replace("1", "100%") 681 + ";font-size:" + final_setting.pre_btn_txt_size + "px;"; 682 let create_pre_order_hover_style = "background:" + final_setting.pre_btn_background_color_hover + ";color:" + final_setting.pre_btn_text_color_hover 683 + ";border-color:" + final_setting.pre_btn_border_color_hover; 684 let create_tooltip_style = '.preorder-tooltip-container .preorder-tooltip-text{' + 685 'font-size:' + final_setting.tooltip_txt_size + 'px !important;' + 686 'border:' + final_setting.tooltip_border_width + 'px solid ' + final_setting.tooltip_border_color + '!important;' + 687 'border-radius:' + final_setting.tooltip_border_radius + 'px !important;' + 688 'background-color:' + final_setting.tooltip_background_color + ' !important;' + 689 'color:' + final_setting.tooltip_text_color + ' !important;' + 690 '}' + 691 '.preorder-tooltip_' + variant_data.variant_id + ' .preorder-tooltip-container {' + 692 'top:' + final_setting.tooltip_position.replace("Top", "-15px").replace("Bottom", "45px").replace("Left", "50%").replace("Right", "50%") + ';' + 693 'left:' + final_setting.tooltip_position.replace("Top", "50%").replace("Bottom", "50%").replace("Left", "-15px").replace("Right", "unset") + ';' + 694 'transform:' + final_setting.tooltip_position.replace("Top", "translate(-50%, -100%)").replace("Bottom", "translate(-50%, 50%)").replace("Left", "translate(-100%, -50%)").replace("Right", "translate(100%, -50%)") + ';' + 695 'right:' + final_setting.tooltip_position.replace("Top", "unset").replace("Bottom", "unset").replace("Left", "unset").replace("Right", "-15px") + ';' + 696 '}' + 697 '.preorder-tooltip_' + variant_data.variant_id + ' .preorder-tooltip-container i {' + 698 'top:' + final_setting.tooltip_position.replace("Top", "100%").replace("Bottom", "-10px").replace("Left", "50%").replace("Right", "50%") + ';' + 699 'left:' + final_setting.tooltip_position.replace("Top", "50%").replace("Bottom", "50%").replace("Left", "unset").replace("Right", "-33px") + ';' + 700 'transform:' + final_setting.tooltip_position.replace("Top", "unset").replace("Bottom", "unset").replace("Left", "translate(-100%, -50%)").replace("Right", "translate(100%, -50%)") + ';' + 701 'right:' + final_setting.tooltip_position.replace("Top", "unset").replace("Bottom", "unset").replace("Left", "-45px").replace("Right", "unset") + ';' + 702 '}' + 703 '.preorder-tooltip_' + variant_data.variant_id + ' .preorder-tooltip-container i::after{' + 704 'background-color:' + final_setting.tooltip_background_color + ' !important;' + 705 'transform:' + final_setting.tooltip_position.replace("Top", " translate(-50%, -50%) rotate(45deg);").replace("Bottom", "translate(-50%,50%) rotate(45deg)").replace("Left", "translate(-50%,-50%) rotate(-45deg)").replace("Right", "translate(50%,-50%) rotate(-45deg)") + ';' + 706 'left:' + final_setting.tooltip_position.replace("Top", "50%").replace("Bottom", "50%").replace("Left", "0").replace("Right", "unset") + ';' + 707 'top:' + final_setting.tooltip_position.replace("Top", "unset").replace("Bottom", "unset").replace("Left", "50%").replace("Right", "50%") + ';' + 708 'right:' + final_setting.tooltip_position.replace("Top", "unset").replace("Bottom", "unset").replace("Left", "unset").replace("Right", "0") + ';' + 709 '}'; 710 711 $('head').append('<style type="text/css" id="wholesale_pre_order_style_' + variant_data.variant_id + '">.preorder-tooltip_' + variant_data.variant_id + '{display:inline-block;width:' + final_setting.pre_btn_width.toString().replace("0", "auto").replace("1", "100%") + ';position:relative}.preorder-tooltip_' + variant_data.variant_id + ' .preorder-tooltip-container{min-width:200
711px;width:max-content;position:absolute;z-index:99999999;box-sizing:border-box;visibility:hidden;opacity:0;transition:opacity .8s}.preorder-tooltip_' + variant_data.variant_id + ' .preorder-tooltip-container .preorder-tooltip-text{padding:10px 20px;font-weight:400;box-shadow:0 1px 8px rgba(0,0,0,.5)}.preorder-tooltip_' + variant_data.variant_id + ':hover .preorder-tooltip-container{visibility:visible;opacity:1}.preorder-tooltip_' + variant_data.variant_id + ' .preorder-tooltip-container i{position:absolute;margin-left:-12px;width:24px;height:12px;overflow:hidden}.preorder-tooltip_' + variant_data.variant_id + ' .preorder-tooltip-container i::after{content:\'\';position:absolute;width:12px;height:12px;transform:translate(-50%,-50%) rotate(45deg);background-color:#EEE;box-shadow:0 1px 8px rgba(0,0,0,.5)}.wholesale_pre_order_btn_' + variant_data.variant_id + '{' + create_pre_order_style + '}.wholesale_pre_order_btn_' + variant_data.variant_id + ':hover{' + create_pre_order_hover_style + '}' + create_tooltip_style + '</style>'); 712 713 let pre_order_btn = '<div class="pre-order-main-wrapper preorder-tooltip_' + variant_data.variant_id + '"><button type="submit" class="wholesale_pre_order_btn_' + variant_data.variant_id + ' wholesale-' + genral_settings.store_id + '-pre-order">' + final_setting.pre_btn_txt + '</button>' 714 + '<div class="preorder-tooltip-container"><div class="preorder-tooltip-text">' + final_setting.tooltip_text + '</div><i></i></div></div>'; 715 716 switch (parent_type) { 717 718 case "quickview": 719 $('.wholesale_pre_order_btn_' + variant_data.variant_id).remove(); 720 $('.preorder-sold-out').remove(); 721 $(_this.quick_view_modal_selector).find('.shopify-payment-button').hide(); 722 $(pre_order_btn).insertAfter($(_this.quick_view_modal_selector).find(_this.quick_view_add_to_cart_selector)[0]); 723 $(_this.quick_view_modal_selector).find(_this.quick_view_add_to_cart_selector).attr('style', function (i, s) { return (s || '') + 'display: none !important;' }); 724 break; 725 726 case "collection": 727 $(pre_order_btn).insertAfter($(selector)); 728 $(selector).attr('style', function (i, s) { return (s || '') + 'display: none !important;' }); 729 break; 730 731 case "product": 732 $('.pre-order-main-wrapper').remove(); 733 $('.wholesale_pre_order_btn_' + variant_data.variant_id).remove(); 734 $('.preorder-sold-out').remove(); 735 $('.shopify-payment-button').hide(); 736 //$('form[action$="/cart/add"]').find(':submit').attr('style', function (i, s) { return (s || '') + 'display: none !important;' }); 737 $(_this.add_to_cart_selector).attr('style', function (i, s) { return (s || '') + 'display: none !important;' }); 738 //$(pre_order_btn).insertAfter($('form[action$="/cart/add"]').find(':submit')[0]); 739 if ($("form[action$=\"/cart/add\"]").length > 1) { 740 $("form[action$=\"/cart/add\"]").each(function () { 741 if ($(this).find($(_this.add_to_cart_selector)).length > 0 && $(this).find('[name="id"]').val() == variant_data.variant_id) { 742 $(pre_order_btn).insertAfter($(this).find($(_this.add_to_cart_selector))); 743 } 744 }) 745 } else { 746 $(pre_order_btn).insertAfter($(_this.add_to_cart_selector)[0]); 747 } 748 749 break; 750 751 case "WOF": 752 $(pre_order_btn).insertAfter($(selector)); 753 $(selector).attr('style', function (i, s) { return (s || '') + 'display: none !important;' }); 754 break; 755 } 756 $('.wholesale_pre_order_btn_' + variant_data.variant_id).off().on("click", function (e) { 757 e.preventDefault(); 758 let variantid = $(this).closest('form').find('[name="id"]').val(); 759 let variantqty = $(this).closest('form').find('[name="quantity"]').val(); 760 761 if (parent_type == "WOF") { 762 variantid = $(selector).attr("id"); 763 variantqty = $('input[data-prd-id="' + variantid + '"]').val(); 764 if (variantqty == undefined) { 765 if ($('.wof-quantity-text-box-' + variantid).length > 0 && validateMinMaxIncrement() != undefined && validateMinMaxIncrement($('.wof-quantity-text-box-' + variantid)) == false) { 766 return false;
767 } 768 variantqty = $('.wof-quantity-text-box-' + variantid).val(); 769 } 770 } 771 variantqty = variantqty == undefined ? 1 : parseInt(variantqty); 772 let totalqty = variantqty; 773 _this.ajax_request("GET", "/cart.js", function (data) { 774 if (data.items.find(x => x.variant_id == variantid) != undefined) { 775 totalqty = totalqty + data.items.find(x => x.variant_id == variantid).quantity; 776 } 777 }, null, "json", false); 778 var remaingqty = parseInt(final_setting.qty_limit) + parseInt(shopify_variant.inventory_quantity); 779 if (variant_data != undefined && genral_settings.enable_pre_order_on_stock_item == 1) { 780 remaingqty = parseInt(final_setting.qty_limit) - variant_data.sold_qty; 781 } 782 if (totalqty > remaingqty && parseInt(final_setting.qty_limit) != 0) { 783 alert(genral_settings.qty_limit_msg.replace("<qty>", remaingqty)); 784 return false; 785 } 786 if (parent_type == "WOF") { _this.fly_element = $(this).closest('tr').find('img.Spof_image'); } 787 _this.button_element = $(this); 788 let jsonproperties = {}; 789 jsonproperties[final_setting.product_label] = 'true'; 790 if(genral_settings.selling_plan_id){ 791 jsonproperties['selling_plan_id'] = genral_settings.selling_plan_id; 792 } 793 let post_data = { id: variantid, quantity: variantqty, properties: jsonproperties } 794 795 let realod_page = true; 796 if (parent_type == "quickview") { 797 realod_page = false; 798 } 799 _this.ajax_request("POST", "/cart/add.js", _this.item_added, post_data, "json", true, realod_page); 800 801 }) 802 } else { 803 let soldoutMessageHtml = '<div class="preorder-sold-out wholesale-' + genral_settings.store_id + '-pre-order">' + final_setting.soldoutmessage + '</div>'; 804 805 switch (parent_type) { 806 807 case "quickview": 808 $('.shopify-payment-button').hide(); 809 $('.pre-order-main-wrapper').remove(); 810 $('.preorder-sold-out').remove(); 811 $(_this.quick_view_modal_selector).find(_this.quick_view_add_to_cart_selector).attr('style', function (i, s) { return (s || '') + 'display: none !important;' }); 812 $(soldoutMessageHtml).insertAfter($(_this.quick_view_modal_selector).find(_this.quick_view_add_to_cart_selector)[0]); 813 break; 814 815 case "collection": 816 $(selector).attr('style', function (i, s) { return (s || '') + 'display: none !important;' }); 817 $(soldoutMessageHtml).insertAfter($(selector)); 818 break; 819 820 case "product": 821 $('.pre-order-main-wrapper').remove(); 822 $('.preorder-sold-out').remove(); 823 $('.shopify-payment-button').hide(); 824 // $('form[action$="/cart/add"]').find(':submit').attr('style', function (i, s) { return (s || '') + 'display: none !important;' }); 825 // $(soldoutMessageHtml).insertAfter($('form[action$="/cart/add"]').find(':submit')[0]); 826 $(_this.add_to_cart_selector).attr('style', function (i, s) { return (s || '') + 'display: none !important;' }); 827 $(soldoutMessageHtml).insertAfter($(_this.add_to_cart_selector)[0]); 828 break; 829 830 case "WOF": 831 $(selector).attr('style', function (i, s) { return (s || '') + 'display: none !important;' }); 832 $(soldoutMessageHtml).insertAfter($(selector)); 833 break; 834 } 835 } 836 } 837 838 get_final_settings(genralSettings, productSettings, variantSettings) { 839 840 let final_setting = {}; 841 final_setting.status = genralSettings.status; 842 final_setting.out_stock_msg = genralSettings.out_stock_msg; 843 final_setting.pre_btn_background_color = genralSettings.pre_btn_background_color; 844 final_setting.pre_btn_background_color_hover = genralSettings.pre_btn_background_color_hover; 845 final_setting.pre_btn_border_color = genralSettings.pre_btn_border_color; 846 final_setting.pre_btn_border_color_hover = genralSettings.pre_btn_border_color_hover; 847 final_setting.pre_btn_border_radius = genralSettings.pre_btn_border_radius; 848 final_setting.pre_btn_border_width = genralSettings.pre_btn_border_width; 849 final_setting.pre_btn_font_style = genralSettings.pre_btn_font_style; 850 final_setting.pre_btn_text_color = genralSettings.pre_btn_text_color; 851 final_setting.pre_btn_text_color_hover = genralSettings.pre_btn_text_color_hover; 852 final_setting.pre_btn_txt = genralSettings.pre_btn_txt; 853 final_setting.pre_btn_txt_size = genralSettings.pre_btn_txt_size; 854 final_setting.pre_btn_width = genralSettings.pre_btn_width; 855 final_setting.product_label = genralSettings.product_label; 856 final_setting.qty_limit = 0; 857 final_setting.qty_limit_msg = genralSettings.qty_limit_msg; 858 final_setting.tooltip_background_color = genralSettings.tooltip_background_color; 859 final_setting.tooltip_border_color = genralSettings.tooltip_border_color; 860 final_setting.tooltip_border_radius = genralSettings.tooltip_border_radius; 861 final_setting.tooltip_border_width = genralSettings.tooltip_border_width; 862 final_setting.tooltip_position = genralSettings.tooltip_position; 863 final_setting.tooltip_text = genralSettings.tooltip_text; 864 final_setting.tooltip_text_color = genralSettings.tooltip_text_color; 865 final_setting.tooltip_txt_size = genralSettings.tooltip_txt_size; 866 final_setting.soldoutmessage = ""; 867 868 869 // override product settings 870 final_setting.pre_btn_txt = productSettings.button_text == "" ? final_setting.pre_btn_txt : productSettings.button_text; 871 final_setting.qty_limit = productSettings.qty_limit; 872 final_setting.status = productSettings.status; 873 final_setting.tooltip_text = productSettings.tooltip_text; 874 final_setting.soldoutmessage = productSettings.soldout_message == null ? "" : productSettings.soldout_message; 875 876 // override variant settings 877 final_setting.pre_btn_txt = variantSettings.button_text == "" ? final_setting.pre_btn_txt : variantSettings.button_text; 878 final_setting.qty_limit = variantSettings.qty_limit; 879 final_setting.status = final_setting.status == 1 ? 1 : variantSettings.status; 880 final_setting.tooltip_text = variantSettings.tooltip_text == "" ? final_setting.tooltip_text : variantSettings.tooltip_text; 881 final_setting.soldoutmessage = variantSettings.soldout_message == "" || variantSettings.soldout_message == null ? final_setting.soldoutmessage : variantSettings.soldout_message; 882 883 return final_setting; 884 } 885 886 // function to get product handle 887 findHandle(element) { 888 let handle = undefined; 889 if ($(element).attr("handle") == undefined) { 890 handle = $(element).attr("handle") 891 } 892 if (handle == undefined && $(element).attr("data-handle") != undefined) { 893 handle = $(element).attr("data-handle"); 894 } 895 if (handle == undefined && $(element).closest("a") != undefined && $(element).closest("a").length > 0) { 896 handle = $(element).closest("a").attr("href").split("/")[$(element).closest("a").attr("href").split("/").length - 1]; 897 handle = handle.split('?')[0]; 898 } 899 if (handle == undefined && $(element).attr("data-product-url") != undefined && $(element).attr("data-product-url").length > 0) { 900 handle = $(element).attr("data-product-url").split("/")[$(element).attr("data-product-url").split("/").length - 1]; 901 handle = handle.split('?')[0]; 902 } 903 if (handle == undefined && $(element).find("a") != undefined && $(element).find("a").length > 0) { 904 handle = $(element).find("a").attr("href").split("/")[$(element).find("a").attr("href").split("/").length - 1]; 905 handle = handle.split('?')[0]; 906 } 907 return handle; 908 } 909} 910 911document.addEventListener('DOMContentLoaded', function () { 912 913 // include jquery if not found 914 if (typeof jQuery == 'undefined') { 915 let headTag = document.getElementsByTagName("head")[0]; 916 let jqTag = document.createElement('script'); 917 jqTag.type = 'text/javascript'; 918 jqTag.src = 'https://code.jquery.com/jquery-2.2.4.min.js'; 919 jqTag.onload = function () { 920 new wholesale_pre_order_main(); 921 }; 922 headTag.appendChild(jqTag); 923 } else { 924 new wholesale_pre_order_main(); 925 } 926}, false);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.