Hot Tools | Hot Air Brush | Wig Styling Tools (2024)

×

Add to Wishlist

Hot Tools | Hot Air Brush | Wig Styling Tools (1)

Select Preferences

×

Offerly Support

Don't fret! This pop up only shows up in Shopify Editor Mode. Offerly could not find your add to cart button! This can happen for one of the following reasons:

    1. This product is sold out.
      To solve this please navigate to a different product!

    2. Your Theme is custom or uses different text for the "Add to Cart" button.
      If this is the case, please contact support and we will add support for your theme!

Hot Air Brush | Black

`); var productTitleText = [...document.getElementById('modalProductTitle').children].map(child => child.textContent.trim()).join(' / '); var productCollections = [{"id":265701163088,"handle":"accessories","updated_at":"2024-10-25T19:50:03-07:00","published_at":"2023-01-16T08:40:59-08:00","sort_order":"best-selling","template_suffix":"","published_scope":"web","title":"Accessories","body_html":"","image":{"created_at":"2023-01-16T08:25:24-08:00","alt":null,"width":600,"height":800,"src":"\/\/www.wigstudio1.com\/cdn\/shop\/collections\/ACCESSORIES___3___TITLE___JAN_10_2023_1.jpg?v=1673886325"}},{"id":265836691536,"handle":"all-products-excluding-route","title":"All Products Excluding Route","updated_at":"2024-10-25T21:25:07-07:00","body_html":"","published_at":"2023-02-06T12:38:32-08:00","sort_order":"best-selling","template_suffix":"","disjunctive":false,"rules":[{"column":"type","relation":"not_equals","condition":"Insurance"},{"column":"variant_price","relation":"greater_than","condition":"0"}],"published_scope":"web"},{"id":266284990544,"handle":"all-products-excluding-route-and-clearance","title":"All Products Excluding Route and Clearance","updated_at":"2024-10-25T21:25:07-07:00","body_html":"","published_at":"2023-05-09T13:04:12-07:00","sort_order":"best-selling","template_suffix":"","disjunctive":false,"rules":[{"column":"title","relation":"not_contains","condition":"clearance"},{"column":"type","relation":"not_equals","condition":"Insurance"}],"published_scope":"web"},{"id":266734764112,"handle":"all-products-excluding-route-clearance-and-special-offers","title":"All products excluding Route Clearance and Special Offers and re:do","updated_at":"2024-10-25T20:10:09-07:00","body_html":"","published_at":"2023-08-20T14:04:00-07:00","sort_order":"best-selling","template_suffix":"","disjunctive":false,"rules":[{"column":"title","relation":"not_contains","condition":"clearance"},{"column":"type","relation":"not_contains","condition":"Insurance"},{"column":"vendor","relation":"not_contains","condition":"Andrea Carlson"},{"column":"title","relation":"not_contains","condition":"Special Deal!"},{"column":"title","relation":"not_contains","condition":"Try Risk Free"}],"published_scope":"web"},{"id":367476489,"handle":"hair-care-accessories","updated_at":"2024-10-25T12:00:02-07:00","published_at":"2017-03-29T21:19:00-07:00","sort_order":"manual","template_suffix":"","published_scope":"web","title":"Wig Styling Tools","body_html":""}]; var collectionsString = ''; productCollections?.map((collection) => { collectionsString += collection.id + ','; }); var showButtonInformation = {productSelectorType: 'None', selectedProducts: ''} var autoResponseDelay = 1; var delayAutoMessage = false; var quantityInput = document.querySelector('#productQuantity') || document.querySelector('input[name="quantity"]:not(.offerInput)') || document.querySelector('.product-form__quantity') || document.querySelector('select[name="quantity"]') || document.querySelector('quantity-input'); if (quantityInput && 2218972 != 69336465675) { var offerQuantityDiv = document.getElementById('offerQuanitityInput'); offerQuantityDiv.style.display = 'block'; quantityInput.addEventListener('input', function (event) { updateQuantity(event.target.value); }); } if (quantityInput && 2218972 == 9177890913 && !isVisibleElement(quantityInput.parentElement)) { var offerQuantityDiv = document.getElementById('offerQuanitityInput'); offerQuantityDiv.style.display = 'none'; } var hideQuantityInput = [69336465675,61879943221,69664833775,86812131607,50712314049,51222872236,49644142759, 19510265, 29972538, 55821271211]; if (quantityInput && hideQuantityInput.includes(2218972)) { var offerQuantityDiv = document.getElementById('offerQuanitityInput'); offerQuantityDiv.style.display = 'none'; } var modalProductDescription = document.getElementById('modalProductDescription'); // if modalProductDescription is over 400 characters truncate it if (modalProductDescription && modalProductDescription.textContent.length > 200) { modalProductDescription.textContent = modalProductDescription.textContent.substring(0, 200) + '...'; } document.getElementById('offerlyCloseButton').onclick = function () { console.log('close button clicked'); closeOfferlyModal(); }; addButtonListenerToAllOBlocks(); mountOfferlyModalAtEndOfBody(); populateUserInformation(); fixColorOfTexts(); hidePriceForStores(); showCompareAtPrice(); document.getElementById('offerAmountInput').addEventListener('input', validateOfferAmount); document.getElementById('submitOfferButton').onclick = function(){ submitOffer(); }; document.getElementById('offerQuanitityInput').addEventListener('input', validateOfferAmount); document.addEventListener('DOMContentLoaded', function () { function usePushState(handler) { //modern themes use pushstate to track variant changes without reload function track(fn, handler, before) { return function interceptor() { if (before) { handler.apply(this, arguments); return fn.apply(this, arguments); } else { var result = fn.apply(this, arguments); handler.apply(this, arguments); return result; } }; } var currentVariantId = null; function variantHandler() { var selectedVariantId = window.location.search.replace(/.*variant=(\d+).*/, '$1'); if (!selectedVariantId) return; if (selectedVariantId != currentVariantId) { currentVariantId = selectedVariantId; handler(selectedVariantId); } } window.history.pushState = track(history.pushState, variantHandler); window.history.replaceState = track(history.replaceState, variantHandler); window.addEventListener('popstate', variantHandler); } usePushState(function (variantId) { productVariantId = variantId; selectedVariantId = variantId; updateModalInformation(variantId); var shouldShowButton = showButton(); var addToCartButton = findAddToCartButton(); if (shouldShowButton && !document.getElementById('offerButton') && addToCartButton) { hideAddToCartButton(); addOfferButton(); } if(!shouldShowButton && document.getElementById('offerButton')){ var offerButton = document.getElementById('offerButton'); if (offerButton){ offerButton.remove(); showAddToCartButton(); } } if (shouldShowButton && !addToCartButton) { var offerButton = document.getElementById('offerButton'); if (offerButton){ offerButton.remove(); showAddToCartButton(); } } }); }); document.addEventListener('keydown', function (event) { if (event.key === 'Escape') { // Use "Escape" for modern browsers var modal = document.getElementById('OfferlyModalDiv'); if (modal.style.display === 'flex') { closeOfferlyModal(); } var supportModal = document.getElementById('OfferlySupportDiv'); if (supportModal.style.display === 'flex') { supportModal.style.display = 'none'; } } }); window.onclick = function (event) { if (event.target == modal) { modal.style.display = 'none'; if (Shopify.designMode) { localStorage.setItem('offerButtonClicked', 'false'); } } }; window.addEventListener('resize', function() { var offerButton = document.getElementById('offerButton'); var addToCartButton = findAddToCartButton(); if (offerButton && addToCartButton) { updateOfferButton(offerButton, addToCartButton); } }); addListenerForVariantUpdates(); //get all oButtonBlock elements and add event listeners to them function addListenerForVariantUpdates() { var oButtonBlocks = document.querySelectorAll('.oButtonBlock'); oButtonBlocks.forEach(function (oButtonBlock) { //get the section id from the data-section-id attribute var sectionId = oButtonBlock.getAttribute('data-section-id'); // get the section element var section = document.getElementById('shopify-section-'+sectionId); // get the section element and find the input within it with the class product-variant-id var productVariantIdInput = section.querySelector('.product-variant-id') var offerlyJsonProductData = JSON.parse(section.querySelector('#offerlyJsonProductData').textContent); //add and event listener to the productVariantIdInput productVariantIdInput?.addEventListener('change', function () { //update the data-product-variant-id attribute of the oButtonBlock oButtonBlock.setAttribute('data-productvariantid', productVariantIdInput.value); //loop through the offerlyJsonProductData and find the productVariantId that matches the productVariantIdInput value var productVariantData = offerlyJsonProductData.find(function (productVariant) { return productVariant.id == productVariantIdInput.value; }); //update the data-product-price attribute of the oButtonBlock oButtonBlock.setAttribute('data-productPriceMax', productVariantData.price / 100.0); oButtonBlock.setAttribute('data-productTitle', encodeURIComponent(productVariantData.title)); oButtonBlock.setAttribute('data-productLink', oButtonBlock.getAttribute('data-productLink').replace(/(\d+)$/, productVariantIdInput.value)); oButtonBlock.setAttribute('data-variantSKU', productVariantData.sku); oButtonBlock.setAttribute('data-productVendor', productVariantData.vendor); }); }); } fetch(`/apps/offerly-proxy/app/acceptOffers/?${new URLSearchParams({ collections: collectionsString, product: productVariantId })}`, { method: 'GET' }) .then((response) => response.json()) .then((data) => { showButtonInformation = data; var shouldShowButton = showButton(); if (shouldShowButton) { hideAddToCartButton(); addOfferButton(); } if (showButtonInformation.autoOpenModal && shouldShowButton ){ if (showButtonInformation.startTimerWhenInactive){ inactivityAlertOfferly(showButtonInformation.autoOpenModalDelay * 1000); } else { setTimeout(function () { openOModal(true); }, showButtonInformation.autoOpenModalDelay * 1000); } } }) .catch((error) => { mixpanel.track("Loading Error", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, error: error } ); console.error(error) }); function mountOfferlyModalAtEndOfBody() { var modal = document.getElementById('OfferlyModalDiv'); if (modal) { document.body.appendChild(modal); } } function showCompareAtPrice() { if (false) { var compareAtPrice = document.getElementById('modalCompareAtPrice'); if (compareAtPrice) { compareAtPrice.style.display = 'block'; } } } function updateLabelsForStores(){ var storesForUpdatingLabels = [50712314049,59154694339,27598913611,82524504395,19510265,68350411027,29972538] //if store not in storesForUpdatingLabels if (storesForUpdatingLabels.includes(2218972) ) { var offerNameLabel = document.querySelector('label.offerly-text.offerly-input-label[for="offerName"]'); var offerNameInput = document.querySelector('input.offerInput.offerly-text[name="customerName"]'); var offerEmailLabel = document.querySelector('label.offerly-text.offerly-input-label[for="offerEmail"]'); var offerEmailInput = document.querySelector('input.offerInput.offerly-text[name="customerEmail"]'); var offerAmountLabel = document.querySelector('label.offerly-text.offerly-input-label[for="offerAmount"]'); var offerAmountInput = document.querySelector('input.offerInput.offerly-text[name="offerAmount"]'); var additionalInformationLabel = document.querySelector('label.offerly-text.offerly-input-label[for="additionalInformation"]'); var additionalInformationInput = document.querySelector('textarea.offerInput.offerly-text[name="additionalTextField"]'); var phoneLabel = document.querySelector('label.offerly-text.offerly-input-label[for="offerPhone"]'); var phoneInput = document.querySelector('input.offerInput.offerly-text[name="customerPhone"]'); var offerlyHeaderStoreLogo = document.getElementById('offerlyHeaderStoreLogo'); var header = document.getElementById('offerlyModalHeader'); var modalProductTitle = document.getElementById('productTitleOfferModal'); var modalPrice = document.getElementById('modalPrice'); var modalProductDescription = document.getElementById('modalProductDescription'); var offerDescriptionDiv = document.getElementById('offerDescriptionDiv'); var image = document.getElementById('offerImage'); var submitOfferButton = document.getElementById('submitOfferButton'); if (2218972 == 68350411027){ header.innerHTML = 'Ihr Preisvorschlag' offerNameLabel.innerHTML = 'Ihr Name'; offerNameInput.placeholder = ''; offerEmailLabel.innerHTML = 'Ihre E-Mail-Adresse'; offerEmailInput.placeholder = ''; offerAmountLabel.innerHTML = 'Ihr Preisvorschlag'; offerAmountInput.placeholder = ''; phoneLabel.innerHTML = 'Ihre Mobilnummer'; phoneInput.placeholder = ''; submitOfferButton.innerHTML = 'Absenden'; } if (2218972 == 82524504395){ //modify the header to be all caps header.style.textTransform = 'uppercase' // header.style.textTransform = 'uppercase !important'; } if (2218972 == 19510265){ header.innerHTML = 'Make A Payment'; offerAmountLabel.innerHTML = 'Payment Amount'; offerAmountInput.placeholder = 'Enter your payment amount'; image.src = 'https://cdn.shopify.com/s/files/1/1951/0265/files/ET_Logo_logobar_centered.png?v=1728047693' submitOfferButton.innerHTML = 'Send Payment'; } if (2218972 == 29972538){ header.innerHTML = 'Make A Payment'; offerAmountLabel.innerHTML = 'Payment Amount'; offerAmountInput.placeholder = 'Enter your payment amount'; image.src = 'https://cdn.shopify.com/s/files/1/1951/0265/files/ET_Logo_logobar_centered.png?v=1728047693' submitOfferButton.innerHTML = 'Send Payment'; } if(2218972 == 50712314049){ offerNameLabel.innerHTML = 'Full Name'; offerNameInput.placeholder = 'Please enter your full name'; offerAmountLabel.innerHTML = 'Your Offer'; offerAmountInput.placeholder = 'Offer price excludes shipping'; additionalInformationLabel.innerHTML = 'Location'; phoneInput.placeholder = 'Phone number with country code'; //change additionalInformation Input to a dropdown with countries var countrySelect = document.createElement('select'); //make the background a dark color //change the placeholder to country countrySelect.id = 'OfferInput'; var placeholderOption = document.createElement('option'); placeholderOption.style.backgroundColor = '#313739'; placeholderOption.value = ''; placeholderOption.text = 'Country'; placeholderOption.disabled = true; countrySelect.appendChild(placeholderOption); //add it to where additionalInformationInput is additionalInformationInput.parentNode.insertBefore(countrySelect, additionalInformationInput); additionalInformationInput.remove(); //add options to the select var countries = ['Afghanistan', 'Albania', 'Algeria', 'Andorra', 'Angola', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Australia', 'Austria', 'Azerbaijan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Brazil', 'Brunei', 'Bulgaria', 'Burkina Faso', 'Burundi', "Côte d'Ivoire", 'Cabo Verde', 'Cambodia', 'Cameroon', 'Canada', 'Central African Republic', 'Chad', 'Chile', 'China', 'Colombia', 'Comoros', 'Congo (Congo-Brazzaville)', 'Costa Rica', 'Croatia', 'Cuba', 'Cyprus', 'Czechia (Czech Republic)', 'Democratic Republic of the Congo', 'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic', 'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Eswatini (fmr. "Swaziland")', 'Ethiopia', 'Fiji', 'Finland', 'France', 'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Greece', 'Grenada', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Holy See', 'Honduras', 'Hong Kong' , 'Hungary', 'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Israel', 'Italy', 'Jamaica', 'Japan', 'Jordan', 'Kazakhstan', 'Kenya', 'Kiribati', 'Kuwait', 'Kyrgyzstan', 'Laos', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libya', 'Liechtenstein', 'Lithuania', 'Luxembourg', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Mauritania', 'Mauritius', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Morocco', 'Mozambique', 'Myanmar (formerly Burma)', 'Namibia', 'Nauru', 'Nepal', 'Netherlands', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'North Korea', 'North Macedonia', 'Norway', 'Oman', 'Pakistan', 'Palau', 'Palestine State', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Poland', 'Portugal', 'Qatar', 'Romania', 'Russia', 'Rwanda', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Korea', 'South Sudan', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Sweden', 'Switzerland', 'Syria', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tonga', 'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Tuvalu', 'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America', 'Uruguay', 'Uzbekistan', 'Vanuatu', 'Venezuela', 'Vietnam', 'Yemen', 'Zambia', 'Zimbabwe']; countries.sort(); for (var i = 0; i < countries.length; i++) { var option = document.createElement('option'); option.style.backgroundColor = '#313739'; option.value = countries[i]; option.text = countries[i]; countrySelect.appendChild(option); } countrySelect.name = 'additionalTextField'; countrySelect.classList.add('offerInput'); countrySelect.classList.add('offerly-text'); //make inital value empty countrySelect.value = ''; var offerQuanitityInput = document.getElementById('offerQuanitityInput'); var additionalInformationInput = document.getElementById('additionalInformationInput'); //rearange the order of the inputs make sure #offerAmountInput is after #additionalInformationInput offerQuanitityInput.parentNode.insertBefore(additionalInformationInput, offerQuanitityInput); //make header display none header.style.display = 'none'; offerlyHeaderStoreLogo.src = 'https://cdn.shopify.com/s/files/1/0507/1231/4049/files/smallwhitelogo.png?v=1716447954'; offerlyHeaderStoreLogo.style.display = 'flex'; //move submitOfferButton to be whole bottom var submitOfferButton = document.getElementById('submitOfferButton'); //remove it from the dom submitOfferButton.remove(); //add it as the last item in offerly-modal-content-group document.querySelector('.offerly-modal-content').appendChild(submitOfferButton); } if(2218972 == 59154694339){ // get offerly-modal-content-group and alignItems to center var offerlyModalContentGroup = document.querySelector('.offerly-modal-content-group'); offerlyModalContentGroup.style.alignItems = 'center'; // get rightSide and set width to 100% var rightSide = document.getElementById('rightSide'); // take id offerlyModalHeader and move it to the right side var productTitle = document.getElementById('modalProductTitle'); rightSide.prepend(productTitle); rightSide.style.flex = '1 1 215px'; var image = document.getElementById('offerImage'); image.style.paddingBottom = '0px'; var productTitleOfferModal = document.getElementById('productTitleOfferModal'); productTitleOfferModal.style.paddingBottom = '0px'; // get description and set display to block offerDescriptionDiv.style.display = 'block'; offerDescriptionDiv.style.width = '100%'; modalProductDescription.style.fontSize = '18px'; modalPrice.style.fontSize = '18px'; } if (2218972 == 27598913611){ var offerSKUDiv = document.getElementById('offerSKUDiv'); offerSKUDiv.style.display = 'block'; } } } function addOfferButton() { var addToCartButton = findAddToCartButton(); if (!addToCartButton) { console.log('No add to cart button found'); return } var offerButton = document.createElement('button'); offerButton.id = 'offerButton'; var submitOfferButton = document.getElementById('submitOfferButton'); var modalAddToCartButton = document.getElementById('modalAddToCartButton'); offerButton.innerHTML = 'make an offer' == 'make an offer' ? 'Make An Offer' : 'Make An Offer'; updateOfferButton(offerButton, addToCartButton); updateOfferButton(submitOfferButton, addToCartButton); updateOfferButton(modalAddToCartButton, addToCartButton); offerButton.addEventListener('click', function (event) { event.preventDefault(); event.stopPropagation(); updateModalInformation(selectedVariantId); openOModal(); }); if (2218972 == 73665609995) { var modalHeader = document.getElementById('offerlyModalHeader'); modalHeader.innerHTML = 'Send Enquiry'; submitOfferButton.innerHTML = 'Enquire'; } mixpanel.track("Button Added", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, } ); updateLabelsForStores() var flexWrapShop = [74034315537, 20281681, 77076005182, 58405322835, 75196203307, 61769482425, 27527348276, 57320276143, 27394244673 ]; if (flexWrapShop.includes(2218972)){ addToCartButton.parentNode.style.flexWrap = 'wrap'; } if ( 2218972 == 20281681 || 2218972 == 77076005182 || 2218972 == 58405322835 || 2218972 == 75196203307 || 2218972 == 61769482425 || 2218972 == 27527348276 || 2218972 == 57320276143 ){ addToCartButton.style.marginBottom = '16px'; } if ( 2218972 == 68129849588 ){ addToCartButton.parentNode.style.flexWrap = 'wrap'; addToCartButton.parentNode.style.display = 'flex'; addToCartButton.parentNode.style.flexDirection = 'column'; } var useParentNodeShopIds = [56191680721 ,60099559673, 9238556, 65386643635, 1502598, 58408730675, 13638089, 18581729, 81888772409, 55008591957, 52291043514, 29522460808, 58351059100, 8722284, 65605828783, 80557900122, 85798322485, 89265602849]; if (useParentNodeShopIds.includes(2218972)) { addToCartButton.parentNode.insertAdjacentElement("afterend", offerButton); return; } if ( 2218972 == 73305882890 || 2218972 == 49644142759 || 2218972 == 29255729212 || 2218972 == 67902111923 || 2218972 == 82524504395 || 2218972 == 60743844052) { addToCartButton.parentNode.parentNode.insertAdjacentElement("afterend", offerButton) return; } if ( 2218972 == 49574117544 || 2218972 == 67113091311) { addToCartButton.parentNode.parentNode.parentNode.parentNode.insertAdjacentElement("afterend", offerButton) return; } if ( 2218972 == 9177890913) { addToCartButton.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.insertAdjacentElement("beforeend", offerButton) return; } if ( 2218972 == 69664833775 || 2218972 == 65273659647 || 2218972 == 87724163412) { addToCartButton.parentNode.insertBefore(offerButton, addToCartButton); return } if ( 2218972 == 50712314049) { // find the button on the page that says "thinking of selling?" var thinkingOfSellingButton = [...document.querySelectorAll('.button.button--xl.button--outline.w-full')]; // go through thinkingOfSellingButton and find the one that says "thinking of selling?" var sellingButton = thinkingOfSellingButton.find((button) => button.textContent.trim().toLowerCase().includes('thinking of selling?')); sellingButton ? sellingButton.parentNode.insertBefore(offerButton, sellingButton.nextSibling) : addToCartButton.parentNode.insertBefore(offerButton, addToCartButton.nextSibling); return } addToCartButton.parentNode.insertBefore(offerButton, addToCartButton.nextSibling); const addToCartButtonObserve = findAddToCartButton(); // Assuming this function is defined const offerButtonObserve = document.getElementById('offerButton'); // Assuming this is the offer button const parentElement = addToCartButtonObserve.parentElement; } function updateOfferButton(button, addToCartButton) { //get computed style from add to cart button if (!addToCartButton) { return; } var addToCartButtonStyle = window.getComputedStyle(addToCartButton); button.classList.add('offerButton'); button.style.backgroundColor = '#c68e8d'; button.style.color = '#FFFFFF'; button.style.borderRadius = 'px'; button.style.setProperty('width', '100%', 'important'); button.style.height = addToCartButtonStyle.height; button.style.margin = addToCartButtonStyle.margin; button.style.padding = addToCartButtonStyle.padding; button.style.fontFamily = addToCartButtonStyle.fontFamily; button.style.fontSize = addToCartButtonStyle.fontSize; button.style.fontWeight = addToCartButtonStyle.fontWeight; button.style.letterSpacing = addToCartButtonStyle.letterSpacing; button.style.borderRadius = addToCartButtonStyle.borderRadius; button.style.border = addToCartButtonStyle.border; button.style.lineHeight = addToCartButtonStyle.lineHeight; button.style.cursor = 'pointer'; button.style.zIndex = 'auto'; button.style.textTransform = addToCartButtonStyle.textTransform; button.style.textAlign = addToCartButtonStyle.textAlign; // if addToCartButton is all caps then make the offer button all caps if (addToCartButton.textContent === addToCartButton.textContent.toUpperCase()) { button.style.textTransform = 'uppercase'; } // remove all spaces from the word and check if only the first letter is uppercase if (addToCartButton.textContent.replace(/\s/g, '').charAt(0) === addToCartButton.textContent.replace(/\s/g, '').charAt(0).toUpperCase() && addToCartButton.textContent.replace(/\s/g, '').slice(1) === addToCartButton.textContent.replace(/\s/g, '').slice(1).toLowerCase()){ //captialize only the first letter of the first word button.textContent = button.textContent.charAt(0).toUpperCase() + button.textContent.slice(1).toLowerCase(); } var buttonsTouching = areElementsAdjacent(addToCartButton, button); var add10pxMarginTop = [89265602849, 34290827396, 11698208, 27340013679, 36680073355, 60743844052, 82524504395, 67902111923, 2218972, 29255729212, 27598913611, 60099559673, 59190870204, 55717462192, 19884211, 61020012786, 19703995, 9177890913, 63635554481, 78885716262, 18581729, 57483493549, 55218503785, 73305882890, 4411654217, 74848502074, 16867965, 49574117544, 64379584700, 54885220561, 61775872347, 2440329, 53819474108, 233242649, 72843067733, 49644142759, 26670334031, 76660179259, 55590715717, 73939091772, 5708365834, 59154694339, 83330335009, 29999070, 64795246644, 72810922327, 50319622293, 51553501368, 52950827161, 42973823127]; if ( add10pxMarginTop.includes(2218972) || buttonsTouching) { console.log('adding 10px margin top'); button.style.marginTop = '10px'; } var add10pxMarginBottom = [69664833775, 67113091311, 55008591957, 80557900122, 56191680721, 20281681]; if ( add10pxMarginBottom.includes(2218972) ) { button.style.marginBottom = '10px'; } var noMarginBottom = [77076005182, 58405322835, 75196203307, 61769482425, 27527348276, 57320276143]; if ( noMarginBottom.includes(2218972) ) { button.style.marginBottom = '0px'; } var add5pxMarginTop = [61879943221]; if ( add5pxMarginTop.includes(2218972) ) { button.style.marginTop = '5px'; } var margin0px = [85798322485] if (margin0px.includes(2218972)) { button.style.margin = '0px'; } if ( 2218972 == 3014819906) { button.style.width = '230px'; } var sameWidthButton = [55508664503, 55218503785, 20281681, 77076005182, 58405322835, 29999070, 56208556218, 61769482425, 27527348276, 57320276143 ]; if ( sameWidthButton.includes(2218972) ) { button.style.width = addToCartButtonStyle.width; } if ( 2218972 == 29999070 ) { button.style.padding = '0px'; } if (2218972 == 75196203307){ button.style.width = 'fit-content'; } if ( 2218972 == 68129849588) { button.style.gridColumn = 'span 2'; } if ( 2218972 == 8722284) { button.style.margin = '0px'; button.style.marginTop = '10px'; } if ( 2218972 == 2252701765){ button.style.width = '90%'; button.style.height = ''; } if ( 2218972 == 55717462192) { button.style.maxHeight = button.style.height; button.style.flex = 'none' } if ( 2218972 == 50712314049) { //add the class button to the button var thinkingOfSellingButton = [...document.querySelectorAll('.button.button--xl.button--outline.w-full')]; // go through thinkingOfSellingButton and find the one that says "thinking of selling?" var sellingButton = thinkingOfSellingButton.find((button) => button.textContent.trim().toLowerCase().includes('thinking of selling?')); if (!sellingButton) { button.style.marginTop = '24px'; } button.classList.add('button'); button.classList.add('button--outline'); } var submitButtonShopIds = [20281681, 77076005182, 58405322835, 75196203307, 29999070, 56208556218, 61769482425, 27527348276, 57320276143]; if (submitButtonShopIds.includes(2218972) && button.id == 'submitOfferButton') { button.style.width = '100%'; button.style.margin = '0px'; } var maxWidthButton =[55590715717, 13484519, 27394244673 ] if ( maxWidthButton.includes(2218972) && button.id == 'offerButton') { button.style.maxWidth = addToCartButtonStyle.width; } if ( 2218972 == 27254259764 && button.id == 'offerButton') { button.style.fontSize = 'inherit'; button.style.width = 'fit-content'; button.classList.add('btn'); } if ( 2218972 == 34290827396) { if (button.id == 'submitOfferButton') { button.style.maxWidth = ''; button.classList.remove('btn'); } } if ( 2218972 == 87724163412){ button.style.maxHeight = '44px'; button.style.height = '44px'; button.style.textTransform = 'uppercase'; button.style.textAlign = 'center'; button.style.fontSize = '14px'; } if ( 2218972 == 12125098 && button.id == 'offerButton'){ button.style.padding = ''; button.style.paddingBottom = '4px'; button.style.maxWidth = '200px'; button.style.marginLeft='10px'; } if ( 2218972 == 59154694339 && button.id == 'offerButton') { button.addEventListener('mouseover', () => { button.style.boxShadow = '0 0 10px rgb(42 49 70)'; }); button.addEventListener('mouseout', () => { button.style.boxShadow = ''; }); button.classList.add('glow-button'); } var copyButtonClasses = [19884211, 13512613] if (copyButtonClasses.includes(2218972) && button.id == 'offerButton') { // get the classes from addToCartButton and add them to the offerButton var classes = addToCartButton.classList; for (var i = 0; i < classes.length; i++) { button.classList.add(classes[i]); } } } function areElementsAdjacent(el1, el2) { const rect1 = el1.getBoundingClientRect(); const rect2 = el2.getBoundingClientRect(); const verticallyAdjacent = (rect1.bottom === rect2.top || rect1.top === rect2.bottom) return verticallyAdjacent;} function findAddToCartButton() { var addToCartButton = [...document.querySelectorAll('button:not(#modalAddToCartButton)')].find((button) => (button.textContent.trim().toLowerCase().includes('add to cart') || button.textContent.trim().toLowerCase().includes('pre order') || button.textContent.trim().toLowerCase().includes('pre-order') || button.textContent.trim().toLowerCase().includes('receive a stock alert') || button.textContent.trim().toLowerCase().includes('purchase') || button.textContent.trim().toLowerCase().includes('kosárba') || button.textContent.trim().toLowerCase().includes('add to bag') || button.textContent.trim().toLowerCase().includes('add to shopping cart') || button.textContent.trim().toLowerCase().includes('add to shopping bag') || button.textContent.trim().toLowerCase().includes('add to basket') || button.textContent.trim().toLowerCase().includes('ajouter au panier') || button.textContent.trim().toLowerCase().includes('añadir al carrito') || button.textContent.trim().toLowerCase().includes('in den warenkorb') || button.textContent.trim().toLowerCase().includes('aggiungi al carrello') || button.textContent.trim().toLowerCase().includes('adicionar ao carrinho') || button.textContent.trim().toLowerCase().includes('legg til i handlekurven') || button.textContent.trim().toLowerCase().includes('lägg i varukorgen') || button.textContent.trim().toLowerCase().includes('tilføj til kurv') || button.textContent.trim().toLowerCase().includes('aggiungi alla borsa') || button.textContent.trim().toLowerCase().includes('ajouter au sac') || button.textContent.trim().toLowerCase().includes('añadir a la bolsa') || button.textContent.trim().toLowerCase().includes('der tasche hinzufügen') || button.textContent.trim().toLowerCase().includes('zum warenkorb') || button.textContent.trim().toLowerCase().includes('aggiungi al cesto') || button.textContent.trim().toLowerCase().includes('ajouter à la corbeille') || button.textContent.trim().toLowerCase().includes('in winkelwagen') || button.textContent.trim().toLowerCase().includes('aan winkelwagen toevoegen') || button.textContent.trim().toLowerCase().includes('legg i handlekurv') || button.textContent.trim().toLowerCase().includes('lisää ostoskoriin') || button.textContent.trim().toLowerCase().includes('adauga in cos') || button.textContent.trim().toLowerCase().includes('sepete ekle') || button.textContent.trim().toLowerCase().includes('enquire') || button.textContent.trim().toLowerCase().includes('acquire') || button.textContent.trim().toLowerCase().includes('do kosza') || button.textContent.trim().toLowerCase().includes('gooods') || button.textContent.trim().toLowerCase().includes('select size') || button.textContent.trim().toLowerCase().includes('einkaufswagen') || button.textContent.trim().toLowerCase().includes('įdėti į krepšelį') || button.textContent.trim().toLowerCase().includes('hozzáadás kosárhoz') || button.textContent.trim().toLowerCase().includes('dodaj do koszyka') || button.textContent.trim().toLowerCase().includes('click to pay') || button.textContent.trim().toLowerCase().includes('agregar al carrito')) && !button.textContent.trim().toLowerCase().includes('terms of purchase') ); if (2218972 == 20281681) { if (addToCartButton && !addToCartButton.id.trim().toLowerCase().includes('productsubmitbutton')) { var productToCart = document.querySelector('product-form'); if (productToCart) { addToCartButton = productToCart.querySelector('button'); } } } if (2218972 == 49574117544) { addToCartButton = document.querySelector('.product-form__submit.button.button--secondary.an-horizontal-shaking.button-text-change'); } if ( 2218972 == 25109954659 || 2218972 == 20375995) { addToCartButton = document.getElementById("addToCart"); } if ( 2218972 == 67113091311) { if (!addToCartButton) { addToCartButton = document.querySelector('button[value="Add to cart"]'); } } if ( 2218972 == 83549651224) { addToCartButton = document.querySelector('input[type="submit"][name="button"][value="Add to Cart"].btn-secondary'); } if ( 2218972 == 65386643635) { addToCartButton = document.querySelector(".btn_sp.addtocart_btn.product-form__cart-submit"); } if ( 2218972 == 78885716262) { addToCartButton = document.querySelectorAll('button[data-aid="product-form-submit-button"][data-name="product-submit"]')[1]; } if ( 2218972 == 13638089 || 2218972 == 86882484502 ) { addToCartButton = document.getElementById('AddToCart'); } if ( 2218972 == 82779046162) { var potentialAddToCartButton = document.getElementById('AddToCart'); if (potentialAddToCartButton && !potentialAddToCartButton.textContent.toLowerCase().includes('ausverkauft')) { addToCartButton = potentialAddToCartButton; } } if ( 2218972 == 3014819906 ) { addToCartButton = document.querySelector('input.add-to-cart[type="submit"]'); } if ( 2218972 == 2252701765 ){ addToCartButton = document.querySelector('input[value="Purchase"]'); } if ( 2218972 == 64379584700 ) { addToCartButton = document.querySelector('.btn.btn-primary.btn-lg.paira-add-to-cart.add-to-cart.margin-top-0.pull-left.display-in-b'); } if ( 2218972 == 53819474108 ) { addToCartButton = document.querySelector('[data-js-trigger-id="add-to-cart"]'); } if ( 2218972 == 87724163412 ){ addToCartButton = document.getElementById('dynamic-buttons-form') } if ( 2218972 == 13484519 ) { addToCartButton = document.querySelector('.btn.btn-lg.btn-addtocart.addtocart-js'); } if ( 2218972 == 56508154036 ) { addToCartButton = document.querySelector('form[action="/cart/add"][method="post"]'); } if (2218972 == 66722889920){ addToCartButton = document.querySelector('button[name="add"][type="submit"]'); } if (!addToCartButton) { if (Shopify.designMode && showButton()) { var supportModal = document.getElementById('OfferlySupportDiv'); supportModal.style.display = 'flex'; mixpanel.track("Support Modal Opened", { admin: true, shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, } ); } return null; } return addToCartButton; } function isVisibleElement(element) { computedStyle = window.getComputedStyle(element); return computedStyle.display !== 'none' && computedStyle.visibility !== 'hidden'; } function openOModal(autoOpened = false) { var modal = document.getElementById('OfferlyModalDiv'); modal.style.display = 'flex'; modal.style.animationName = 'animateopacity'; modal.style.animationDuration = '1s'; offerlyModalOpenedOnce = true; if (Shopify.designMode) { localStorage.setItem('offerButtonClicked', 'true'); } if (autoOpened) { mixpanel.track("Modal Auto-Opened", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, } ); } else { mixpanel.track("Modal Opened", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, } ); } var botContainer = document.getElementById('smart-bot-container'); var smileliteContainer = document.getElementById('smile-ui-lite-container'); if (botContainer) { botContainer.style.zIndex = '2147483645'; } if (smileliteContainer) { smileliteContainer.style.zIndex = '2147483645'; } } function updateModalProductTitle(title) { var productTitle = document.getElementById('modalProductTitle'); var productMobileTitle = document.getElementById('mobileModalProductTitle'); if (title.includes('Default Title')){ productTitle.innerHTML = `

1 1/2" Hot Air Brush | Wig Styling Tools

`; productMobileTitle.innerHTML = `

1 1/2" Hot Air Brush | Wig Styling Tools

`; return `1 1/2" Hot Air Brush | Wig Styling Tools`; } else{ productTitle.innerHTML = title; productMobileTitle.innerHTML = title; return title; } } function updateModalInformation(selectedVariant){ var productVariants = [{"id":39562356850768,"title":"Hot Air Brush | Black","option1":"Hot Air Brush | Black","option2":null,"option3":null,"sku":"HOTAIRBRUSH-SHP","requires_shipping":true,"taxable":true,"featured_image":{"id":28533650358352,"product_id":6588023799888,"position":1,"created_at":"2021-07-27T11:47:41-07:00","updated_at":"2021-07-27T11:47:42-07:00","alt":"Hot Air Brush by Godiva's Secret Wigs","width":683,"height":1024,"src":"\/\/www.wigstudio1.com\/cdn\/shop\/products\/Black_Hot_Air_Brush_131781b1-0554-4d5b-876f-b02e1c180ec8.jpg?v=1627411662","variant_ids":[39562356850768]},"available":true,"name":"1 1\/2\" Hot Air Brush | Wig Styling Tools - Hot Air Brush | Black","public_title":"Hot Air Brush | Black","options":["Hot Air Brush | Black"],"price":6800,"weight":425,"compare_at_price":8200,"inventory_quantity":3,"inventory_management":"shopify","inventory_policy":"continue","barcode":null,"featured_media":{"alt":"Hot Air Brush by Godiva's Secret Wigs","id":20863822102608,"position":1,"preview_image":{"aspect_ratio":0.667,"height":1024,"width":683,"src":"\/\/www.wigstudio1.com\/cdn\/shop\/products\/Black_Hot_Air_Brush_131781b1-0554-4d5b-876f-b02e1c180ec8.jpg?v=1627411662"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}] var productTitleBase = `1 1/2" Hot Air Brush | Wig Styling Tools`; var productTitleDOM = document.getElementById('modalProductTitle'); var productMobileTitleDOM = document.getElementById('mobileModalProductTitle'); var productVariantSKU = document.getElementById('modalProductSKU'); var productPriceDOM = document.getElementById('modalPrice'); var productPriceMobileDOM = document.getElementById('mobileModalPrice'); var currencySymbol = `$`; var image = document.getElementById('offerImage'); var mobileImage = document.getElementById('productImageMobile'); productID = getSafeValue(`6588023799888`, null); if (productVariants){ productVariants.forEach(function (variant) { if (variant.id == selectedVariant){ selectedSKU = variant.sku; productVariantSKU.innerHTML = `SKU: ${selectedSKU}`; productURL = "/products/hot-air-brush-wig-styling-tools" + "?variant=" + productVariantId; var variantTitle = variant.title; var variantTitleArray = variantTitle.split(' / '); var newVariantTitle = ''; variantTitleArray.forEach(function (title, index){ newVariantTitle += `

${title}

`; }); let newTitle = `

${productTitleBase}

` + newVariantTitle; productTitleDOM.innerHTML = newTitle; productPriceDOM.innerHTML = currencySymbol + variant.price / 100.0; productPriceMobileDOM.innerHTML = currencySymbol + variant.price / 100.0; productTitle = updateModalProductTitle(newTitle); productTitleText = [...document.getElementById('modalProductTitle').children].map(child => child.textContent.trim()).join(' / '); priceMaxNumber = parseFloat(variant.price / 100.0).toFixed(2); compareAtPrice = parseFloat(variant.compare_at_price / 100.0).toFixed(2); if (variant?.featured_image?.src) { image.src = variant?.featured_image?.src; mobileImage.src = variant?.featured_image?.src; prodOfferImageSrc = variant?.featured_image?.src; } else { image.src = `//www.wigstudio1.com/cdn/shop/products/Black_Hot_Air_Brush_131781b1-0554-4d5b-876f-b02e1c180ec8.jpg?v=1627411662&width=300`; mobileImage.src = `//www.wigstudio1.com/cdn/shop/products/Black_Hot_Air_Brush_131781b1-0554-4d5b-876f-b02e1c180ec8.jpg?v=1627411662&width=300`; prodOfferImageSrc = `//www.wigstudio1.com/cdn/shop/products/Black_Hot_Air_Brush_131781b1-0554-4d5b-876f-b02e1c180ec8.jpg?v=1627411662&width=300`; } if (2218972 == 19510265) { image.src = `https://cdn.shopify.com/s/files/1/1951/0265/files/ET_Logo_logobar_centered.png?v=1728047693`; mobileImage.src = `https://cdn.shopify.com/s/files/1/1951/0265/files/ET_Logo_logobar_centered.png?v=1728047693`; prodOfferImageSrc = `https://cdn.shopify.com/s/files/1/1951/0265/files/ET_Logo_logobar_centered.png?v=1728047693`; } if (2218972 == 29972538){ image.src = `https://cdn.shopify.com/s/files/1/1951/0265/files/ET_Logo_logobar_centered.png?v=1728047693`; mobileImage.src = `https://cdn.shopify.com/s/files/1/1951/0265/files/ET_Logo_logobar_centered.png?v=1728047693`; prodOfferImageSrc = `https://cdn.shopify.com/s/files/1/1951/0265/files/ET_Logo_logobar_centered.png?v=1728047693`; } validateOfferAmount(); } }); } } function updateQuantity(quantity) { var offerQuantity = document.querySelector('#OfferInput[name="quantity"]'); offerQuantity.value = quantity; validateOfferAmount(); } function hidePriceForStores(){ var storesForHidingPrice = [8722284,71589462258] if (storesForHidingPrice.includes(2218972) ) { var modalPrice = document.getElementById('modalPrice'); modalPrice.style.display = 'none'; } } function validateOfferAmount() { const offerInput = document.querySelector('input[name="offerAmount"]'); const priceDOM = document.getElementById('modalPrice') const currencySymbol = `$`; const offer = offerInput.value; const offerRegex = /^\d+(\.\d{1,2})?$/; const useTotalAmount = true; const inputQuantity = document.querySelector('input[name="quantity"].offerInput'); const quantity = inputQuantity ? inputQuantity.value : 1; updatedPriceMaxNumber = useTotalAmount ? priceMaxNumber * quantity : priceMaxNumber; priceDOM.innerHTML = currencySymbol + formatPrice(updatedPriceMaxNumber); var compareAtPriceDiv = ''; var compareAtPriceWithSymbol = '$' + formatPrice(compareAtPrice); if ( false && !compareAtPrice.includes('NaN') && compareAtPrice > 0){ compareAtPriceDiv = `

${compareAtPriceWithSymbol}

` } var issue; if (!offerRegex.test(offer)) { issue = 'Invalid Offer. Numbers and decimals only.' offerInput.setCustomValidity('Please enter only numbers and a decimal point'); } else if (parseFloat(offer) >= updatedPriceMaxNumber) { issue = 'Offer Cannot Exceed Price' offerInput.setCustomValidity('Please enter an offer less than the price'); } else if (parseFloat(offer) <= 0) { issue = 'Offer Must Be Above Zero' offerInput.setCustomValidity('Please enter an offer greater than 0'); } else { offerInput.setCustomValidity(''); } // update element with id modalPrice to inclue a percentage off const modalPrice = document.getElementById('modalPrice'); const mobileModalPrice = document.getElementById('mobileModalPrice'); const percentageOff = (1 - (parseFloat(offer) / updatedPriceMaxNumber)) * 100; const priceTwoDecimal = formatPrice(updatedPriceMaxNumber); const doNotShowStrikeThrough = [67139436723]; if (offer !== '' && offerRegex.test(offer) && parseFloat(offer) < updatedPriceMaxNumber && parseFloat(offer) > 0 && !doNotShowStrikeThrough.includes(2218972)){ var doNotShowPercentageOff = [19510265 || 2218972 == 29972538,29972538]; var percentageOffText = doNotShowPercentageOff.includes(2218972) ? '' : ' (' + percentageOff.toFixed(2) + '% off)'; modalPrice.innerHTML = compareAtPriceDiv + '$' + '

'+priceTwoDecimal+'

' + '
' + '$' + formatPrice(offer) + percentageOffText; mobileModalPrice.innerHTML = compareAtPriceDiv + '$' + '

'+priceTwoDecimal+'

' + '
' + '$' + formatPrice(offer) + percentageOffText; } else if (offer !== '' && issue){ modalPrice.innerHTML = compareAtPriceDiv + '$' + priceTwoDecimal + '
' + issue; mobileModalPrice.innerHTML = compareAtPriceDiv + '$' + priceTwoDecimal + '
' + issue; } else { modalPrice.innerHTML = compareAtPriceDiv + '$' + priceTwoDecimal + '

'; mobileModalPrice.innerHTML = compareAtPriceDiv + '$' + priceTwoDecimal + '

'; } if (2218972 == 68350411027 ){ // add a space after the currency symbol modalPrice.innerHTML = modalPrice.innerHTML.replace('$', '$ '); mobileModalPrice.innerHTML = mobileModalPrice.innerHTML.replace('$', '$ '); //replace all commas with apostrophes modalPrice.innerHTML = modalPrice.innerHTML.replace(/,/g, "'"); mobileModalPrice.innerHTML = mobileModalPrice.innerHTML.replace(/,/g, "'"); } } function formatPrice(price) { //if price is a string, convert it to a number price = parseFloat(price).toFixed(2); price = (price.endsWith('.00') ? parseInt(price, 10) : price).toString(); // add commas to the price if it is greater than 999 and remove nubmers after decimal if (price > 999) { return price.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } else { return price; } } function showSpinner(){ var rightSide = document.getElementById('rightSide'); var leftSide = document.getElementById('leftSide'); rightSide.style.display = 'none'; leftSide.style.display = 'none'; var offerlySpinner = document.getElementById('offerlySpinner'); offerlySpinner.style.display = 'flex'; } function hideSpinner(){ var rightSide = document.getElementById('rightSide'); var leftSide = document.getElementById('leftSide'); var offerlySpinner = document.getElementById('offerlySpinner'); offerlySpinner.style.display = 'none'; rightSide.style.display = 'flex'; leftSide.style.display = 'flex'; } function updateModalState(header, content, buttonText, onClick, offerData){ var modal = document.getElementById('OfferlyModalDiv'); var modalHeader = document.getElementById('offerlyModalHeader'); var inputFields = document.getElementById('offerInputFields'); var rightSide = document.getElementById('rightSide'); var modalMessage = document.getElementById('modalTextInformation'); var submitOfferButton = document.getElementById('submitOfferButton'); var offerlyHeaderStoreLogo = document.getElementById('offerlyHeaderStoreLogo'); offerlyHeaderStoreLogo.style.display = 'none'; modalHeader.style.display = 'flex'; modalMessage.textContent = content; inputFields.style.display = 'none'; rightSide.style.display = 'none'; modalHeader.innerHTML = header; submitOfferButton.textContent = buttonText; submitOfferButton.onclick = function(){ mixpanel.track("Modal Button Clicked", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, buttonText: buttonText, } ); onClick() }; if (offerData?.discountCode && offerData?.showAddToCart) { submitOfferButton.style.display = 'none'; var modalAddToCartButton = document.getElementById('modalAddToCartButton'); updateOfferButton(modalAddToCartButton, findAddToCartButton()); var modalAddToCartButton = document.getElementById('modalAddToCartButton'); modalAddToCartButton.style.display = 'block'; modalAddToCartButton.onclick = function() { mixpanel.track("Modal Button Clicked", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, buttonText: 'Add to Cart', }); let formData = { 'items': [{ 'id': offerData.productVariantId, 'quantity': offerData.quantity, 'discount_code': offerData.discountCode, }] }; fetch(window.Shopify.routes.root + 'cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(response => //print the response to the console response.json() ) .then(data => { // get dicsountCodes from local storage var discountCodes = JSON.parse(localStorage.getItem('OfferlyCodes')) || {}; discountArray = []; for (const [key, value] of Object.entries(discountCodes)) { discountArray.push(value); } fetch(`/checkout?discount=${discountArray.join(',')}`) .then(response => response.json()) .then(data => { //navigate to the cart page window.location.href = '/cart'; }) .catch((error) => { console.error('Error:', error); window.location.href = '/cart'; }); }) .catch((error) => { console.error('Error:', error); window.location.href = '/cart'; }); }; } } function closeOfferlyModal(){ var modal = document.getElementById('OfferlyModalDiv'); modal.style.display = 'none'; mixpanel.track("Modal Closed", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, } ); if (Shopify.designMode) { localStorage.setItem('offerButtonClicked', 'false'); } } function backAndClearAmount(){ var offerInput = document.querySelector('input[name="offerAmount"]'); offerInput.value = ''; var modalMessage = document.getElementById('modalTextInformation'); modalMessage.textContent = ''; var inputFields = document.getElementById('offerInputFields'); var rightSide = document.getElementById('rightSide'); rightSide.style.display = 'flex'; inputFields.style.display = 'block'; var modalHeader = document.getElementById('offerlyModalHeader'); modalHeader.innerHTML = 'Make An Offer'; var submitOfferButton = document.getElementById('submitOfferButton'); var offerlyHeaderStoreLogo = document.getElementById('offerlyHeaderStoreLogo'); if (2218972 == 50712314049) { modalHeader.display = 'none'; offerlyHeaderStoreLogo.style.display = 'flex'; } submitOfferButton.innerHTML = `Send Offer`; submitOfferButton.onclick = function(){ submitOffer(); }; } function checkoutButton(url){ window.location.href = url } function inactivityAlertOfferly(maxInactivityTime) { let timeOfferly; // Function to reset the timer const resetOfferlyTimer = () => { if (timeOfferly) { clearTimeout(timeOfferly); } if (!offerlyModalOpenedOnce) { // Only set the timer if modal hasn't been opened timeOfferly = setTimeout(showInactivityAlertOfferly, maxInactivityTime); } }; // Function to show an alert when the user has been inactive function showInactivityAlertOfferly() { var modal = document.getElementById('OfferlyModalDiv'); if (modal.style.display != 'flex' && !offerlyModalOpenedOnce) { clearTimeout(timeOfferly); // Clear the timeout to stop polling openOModal(); } } // Events that reset the timer window.onload = resetOfferlyTimer; document.onmousemove = resetOfferlyTimer; document.onkeypress = resetOfferlyTimer; document.onclick = resetOfferlyTimer; document.onscroll = resetOfferlyTimer; }; if (Shopify.designMode) { var modal = document.getElementById('OfferlyModalDiv'); // get local storage value var offerButtonClicked = localStorage.getItem('offerButtonClicked'); if (modal && offerButtonClicked === 'true') { // if you have clicked the button to open the modal once keep it open. modal.style.display = 'flex'; } } function populateUserInformation() { // if the user is logged in populate user information var customerName = document.querySelector('input[name="customerName"]'); var customerEmail = document.querySelector('input[name="customerEmail"]'); var customerNameValue = `` var customerEmailValue = `` if (customerName && customerNameValue) { customerName.value = customerNameValue; } if (customerEmail && customerEmailValue) { customerEmail.value = customerEmailValue; } } function showButton(){ let showButton = false; outerLoop: for (const offering of showButtonInformation.offerings) { switch (offering.productSelectorType) { case 'all': showButton = true; autoResponseDelay = offering.automatedResponseDelay; delayAutoMessage = offering.delayAutomatedResponse; break outerLoop; case 'collections': for (const collection of collectionsString.split(',')) { if (offering.products.includes(collection) && collection.length > 0) { showButton = true; autoResponseDelay = offering.automatedResponseDelay; delayAutoMessage = offering.delayAutomatedResponse; break outerLoop; } } break; case 'products': if (offering.products.includes(productVariantId)) { showButton = true; autoResponseDelay = offering.automatedResponseDelay; delayAutoMessage = offering.delayAutomatedResponse; break outerLoop; } break; case 'none': showButton = false; default: showButton = false; } } var soldOut = [...document.querySelectorAll('button')].find((button) => button.textContent.trim().toLowerCase().includes('sold out') ) var ignoreSoldOut = [67113091311, 78280556873, 58405322835, 20281681, 61769482425, 27527348276, 57320276143]; if (soldOut && !ignoreSoldOut.includes(2218972)) { showButton = false; } //if showButton is false delete the modal from the page // if (!showButton){ // var modal = document.getElementById('OfferlyModalDiv'); // if (modal){ // modal.remove(); // } // } //exclude this collection if ( 2218972 == 86812131607 ){ var collectionsToExclude = ['477039395095']; collectionsString = collectionsString.slice(0, -1); collectionsString.split(',').forEach((collection) => { if (collectionsToExclude.includes(collection) && collection.length > 0) { showButton = false; } }); } //if shop is 36680073355 and customer doesnt have tag VIPOFFER set the showButton to false // if ( 2218972 == 36680073355){ // var customerTags = ``; // console.log(customerTags); // if (!customerTags.includes('VIPOFFER')){ // showButton = false; // } // } return showButton; } function validateEmail(email) { var re = /\S+@\S+\.\S+/; return re.test(email); } function fixColorOfTexts(){ var labels = document.querySelectorAll('.offerly-input-label'); var Title = document.getElementById('offerlyModalHeader'); var modalPrice = document.getElementById('modalPrice'); var productTitle = document.getElementById('productTitleOfferModal'); var titleColor = rgbToHex(window.getComputedStyle(Title).color); var productTitleColor = rgbToHex(window.getComputedStyle(productTitle).color); var priceColor = rgbToHex(window.getComputedStyle(modalPrice).color); var modalColor = rgbToHex(window.getComputedStyle(document.querySelector('.offerly-modal-content')).backgroundColor); //if the color of the title and the background of the modal are the same //change the color of the title to black if (titleColor === modalColor){ Title.style.color = 'black'; } //if the color of the price and the background of the modal are the same //change the color of the price to black if (priceColor === modalColor){ modalPrice.style.color = 'black'; } //if the color of the product title and the background of the modal are the same //change the color of the product title to black if (productTitleColor === modalColor){ productTitle.style.color = 'black'; } //if the color of the labels and the background of the modal are the same //change the color of the labels to black labels.forEach(function(label){ var labelColor = rgbToHex(window.getComputedStyle(label).color); //get modal background color by the class offerly-modal-content //compare the color of the label and the background of the modal //if they are similar change the color of the label to black if (labelColor === modalColor){ // if the color is white change it to black if (labelColor === '#ffffff'){ label.style.color = 'black'; } else { label.style.color = 'white'; } } }); }; function rgbToHex(rgb) { // This regex splits the RGB values into an array let arr = rgb.match(/\d+/g); // Convert each RGB value to a two-digit hexadecimal value // if there is an opacity value, ignore it let hex = arr.map((val, index) => { if (index < 3) { return ('0' + parseInt(val).toString(16)).slice(-2); } }).join(''); return '#' + hex; } function submitOffer(){ //validate productVaraintID if (productVariantId.toString().match(/[^0-9]/g)){ var productVariants = [{"id":39562356850768,"title":"Hot Air Brush | Black","option1":"Hot Air Brush | Black","option2":null,"option3":null,"sku":"HOTAIRBRUSH-SHP","requires_shipping":true,"taxable":true,"featured_image":{"id":28533650358352,"product_id":6588023799888,"position":1,"created_at":"2021-07-27T11:47:41-07:00","updated_at":"2021-07-27T11:47:42-07:00","alt":"Hot Air Brush by Godiva's Secret Wigs","width":683,"height":1024,"src":"\/\/www.wigstudio1.com\/cdn\/shop\/products\/Black_Hot_Air_Brush_131781b1-0554-4d5b-876f-b02e1c180ec8.jpg?v=1627411662","variant_ids":[39562356850768]},"available":true,"name":"1 1\/2\" Hot Air Brush | Wig Styling Tools - Hot Air Brush | Black","public_title":"Hot Air Brush | Black","options":["Hot Air Brush | Black"],"price":6800,"weight":425,"compare_at_price":8200,"inventory_quantity":3,"inventory_management":"shopify","inventory_policy":"continue","barcode":null,"featured_media":{"alt":"Hot Air Brush by Godiva's Secret Wigs","id":20863822102608,"position":1,"preview_image":{"aspect_ratio":0.667,"height":1024,"width":683,"src":"\/\/www.wigstudio1.com\/cdn\/shop\/products\/Black_Hot_Air_Brush_131781b1-0554-4d5b-876f-b02e1c180ec8.jpg?v=1627411662"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}] productVariants.forEach(function (variant) { if (productTitleText.includes(variant.title) || productTitleText.includes(variant.name)){ productVariantId = variant.id; } }); } var inputs = document.querySelectorAll('.offerInput'); var data = {}; var isValid = true; inputs.forEach(function (input) { if (input.style.display === 'none'){ return; } else if (input.name == 'termsCheckboxName' && !input.checked && false) { isValid = false; input.classList.add('offerInputError'); } else if (input.value.trim() === '' && input.name=='additionalTextField' && false) { isValid = false; input.classList.add('offerInputError'); } else if (input.value.trim() === '' && input.name=='customerPhone' && false) { isValid = false; input.classList.add('offerInputError'); } else if (input.value.trim() === '' && input.name!='additionalTextField' && input.name!='customerPhone') { isValid = false; input.classList.add('offerInputError'); } else if (input.name === 'offerAmount' && parseFloat(input.value) >= updatedPriceMaxNumber) { isValid = false; input.classList.add('offerInputError'); } else if (input.name === 'offerAmount' && parseFloat(input.value) <= 0) { isValid = false; input.classList.add('offerInputError'); } else if(input.name == 'offerAmount' && !input.value.match(/^\d+(\.\d{1,2})?$/)){ isValid = false; input.classList.add('offerInputError'); } else if (input.name == 'customerEmail' && !validateEmail(input.value)) { isValid = false; input.classList.add('offerInputError'); } else { input.classList.remove('offerInputError'); } data[input.name] = input.value; }); delete data['termsCheckboxName']; data['quantity'] = data['quantity'] ? parseInt(data['quantity']) : 1; data['productVariantId'] = productVariantId.toString(); data['productPriceMax'] = priceMaxNumber; data['productTitle'] = productTitleText; data['offerAmount'] = true ? (parseFloat(data['offerAmount']) / parseInt(data['quantity'])).toFixed(2) : data['offerAmount'] ; data['productLink'] = productURL; data['currency'] = 'USD'; data['currencySymbol'] = '$'; data['variantSKU'] = selectedSKU?.toString(); data['productID'] = productID?.toString(); data['productVendor'] = productVendor?.toString(); data['collections'] = collectionsString; data['imageSrc'] = prodOfferImageSrc ? prodOfferImageSrc : document.getElementById('offerImage')?.src; var additionalTextInput = document.querySelector('textarea[name="additionalTextField"]'); if (additionalTextInput) { data['additionalTextField'] = additionalTextInput.value; } if (!isValid) { return; } mixpanel.track("Offer Submitted", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, offerAmount: data['offerAmount'], } ); //disable the button var submitOfferButton = document.getElementById('submitOfferButton'); submitOfferButton.disabled = true; showSpinner(); fetch('/apps/offerly-proxy/app/acceptOffers?', { method: 'POST', body: JSON.stringify(data), }) .then((response) => response.json()) .then((data) => { //enable the button hideSpinner(); submitOfferButton.disabled = false; var delayForAutoResponse = delayAutoMessage ? autoResponseDelay : 0; if (data.offerStatus === 'Pending'){ if (2218972 == 50712314049 ){ updateModalState("Thank you for contacting Lougher", "A member of our sales team will get back to you shortly.", "Close", closeOfferlyModal); } else if(2218972 == 57179963555){ updateModalState("Thank you!","Please check your email regularly if your offer is accepted, declined or we have a counter offer. You can email us at tuffselectph@gmail.com or message us via viber, instagram (@tuffmanila) or the facebook page (@tuffmanila) for other inquiries. - TS Team", "Close", closeOfferlyModal); } else if (2218972 == 58351059100){ updateModalState("Thank you for your offer!", "You should see a response within 2-10 minutes. If you do not see an email from us after a few hours, please check your junk/spam folder.", "Close", closeOfferlyModal); } else{ updateModalState("Thank You!", "We will get back to you via email shortly. Messages may end up in spam, so please check there if you do not receive a response.", "Close", closeOfferlyModal); } mixpanel.track("Offer Pending", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, offerAmount: data['offerAmount'], }); } if (data.offerStatus === 'Auto-Declined'){ mixpanel.track("Offer Auto-Declined", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, offerAmount: data['offerAmount'], }); showSpinner(); setTimeout(function(){ hideSpinner(); updateModalState("Try Again!", "Your offer was too low. Please try again!", "Try Again", backAndClearAmount ); }, delayForAutoResponse * 1000); } if (data.offerStatus === 'Auto-Accepted'){ mixpanel.track("Offer Auto-Accepted", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, offerAmount: data['offerAmount'], }); //get the discount code from the local storage var storedCodes = localStorage.getItem('OfferlyCodes'); var storedCodesObject = storedCodes ? JSON.parse(storedCodes) : {}; //update the discount code for the productVariantId storedCodesObject[data.productVariantId] = data?.discountCode; //store the discount code in the local storage as a tuple of productVarinatId and discountCode but make it queryable by the 'OfferlyCodes' //also make sure to replace the discount code if it already exists for that productVariantId localStorage.setItem('OfferlyCodes', JSON.stringify(storedCodesObject)); showSpinner(); setTimeout(function(){ hideSpinner(); if (2218972 == 19510265 || 2218972 == 29972538){ updateModalState("Proceed to Payment", "Thank you for making a payment, please click the button below to proceed to the payment page.", "Checkout", function(){checkoutButton(data.checkoutLink)}, data) } else { updateModalState("Congratulations!", "Great news! Your offer was accepted. Click below to proceed to checkout with your discount applied!", "Checkout", function(){checkoutButton(data.checkoutLink)} , data ) } }, delayForAutoResponse * 1000); } if (data.offerStatus === 'Auto-Countered'){ mixpanel.track("Offer Auto-Countered", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, offerAmount: data['offerAmount'], }); //get the discount code from the local storage var storedCodes = localStorage.getItem('OfferlyCodes'); var storedCodesObject = storedCodes ? JSON.parse(storedCodes) : {}; //update the discount code for the productVariantId storedCodesObject[data.productVariantId] = data?.discountCode; //store the discount code in the local storage as a tuple of productVarinatId and discountCode but make it queryable by the 'OfferlyCodes' //also make sure to replace the discount code if it already exists for that productVariantId localStorage.setItem('OfferlyCodes', JSON.stringify(storedCodesObject)); // wait 10 seconds before updating modal showSpinner(); setTimeout(function(){ hideSpinner(); updateModalState("Countered!", `Your offer was countered to ${data.currencySymbol}${parseFloat(data.counterAmount).toFixed(2)} ${data.currency}. Click below to proceed to checkout with your discount applied!`, "Checkout", function(){checkoutButton(data.checkoutLink)}, data) }, delayForAutoResponse * 1000); } }) .catch((error) => { // Handle any errors console.error(error); mixpanel.track("Offer Error", { shop: `www.wigstudio1.com`, productTitle: `1 1/2" Hot Air Brush | Wig Styling Tools`, offerAmount: data['offerAmount'], } ); updateModalState("Error Occurred!", "An error occurred while submitting your offer. Please try again.", "Try Again", backAndClearAmount); }); } function addButtonListenerToAllOBlocks() { var offerlyBlocks = document.querySelectorAll('.oButtonBlock'); offerlyBlocks.forEach(function(offerlyBlock) { if (!offerlyBlock.dataset.listenerAdded) { offerlyBlock.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); var productTitleDOM = document.getElementById('modalProductTitle'); var productMobileTitleDOM = document.getElementById('mobileModalProductTitle'); var productPriceDOM = document.getElementById('modalPrice'); var currencySymbol = `$`; var image = document.getElementById('offerImage'); var mobileImage = document.getElementById('productImageMobile'); prodOfferImageSrc = offerlyBlock.getAttribute('data-imagesrc'); image.src = prodOfferImageSrc; mobileImage.src = prodOfferImageSrc; var dataTitle = offerlyBlock.getAttribute('data-producttitle'); productTitleText = decodeURIComponent(dataTitle.replace(/\+/g, ' ')); productTitleDOM.innerHTML = decodeURIComponent(dataTitle.replace(/\+/g, ' ')); productMobileTitleDOM.innerHTML = decodeURIComponent(dataTitle.replace(/\+/g, ' ')); priceMaxNumber = offerlyBlock.getAttribute('data-productpricemax'); productPriceDOM.innerHTML = currencySymbol + formatPrice(offerlyBlock.getAttribute('data-productpricemax')); productVariantId = offerlyBlock.getAttribute('data-productvariantid'); productVendor = offerlyBlock.getAttribute('data-productvendor'); selectedSKU = offerlyBlock.getAttribute('data-variantsku'); productURL = offerlyBlock.getAttribute('data-productlink'); productID = offerlyBlock.getAttribute('data-productid'); validateOfferAmount(); openOModal(); }); offerlyBlock.dataset.listenerAdded = 'true'; } }); } // Observe changes in the DOM to handle dynamically added elements function observeDOMChanges() { const observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.addedNodes.length) { addButtonListenerToAllOBlocks(); } }); }); observer.observe(document.body, { childList: true, subtree: true }); } document.addEventListener('DOMContentLoaded', function() { addButtonListenerToAllOBlocks(); observeDOMChanges(); }); function hideAddToCartButton() { if (false) { var addToCartButton = findAddToCartButton(); if (addToCartButton) { addToCartButton.style.display = 'none'; } } } function showAddToCartButton() { if (false) { var addToCartButton = findAddToCartButton(); if (addToCartButton) { addToCartButton.style.display = 'block'; } } }

Hot Tools | Hot Air Brush | Wig Styling Tools (2024)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Nicola Considine CPA

Last Updated:

Views: 6679

Rating: 4.9 / 5 (69 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Nicola Considine CPA

Birthday: 1993-02-26

Address: 3809 Clinton Inlet, East Aleisha, UT 46318-2392

Phone: +2681424145499

Job: Government Technician

Hobby: Calligraphy, Lego building, Worldbuilding, Shooting, Bird watching, Shopping, Cooking

Introduction: My name is Nicola Considine CPA, I am a determined, witty, powerful, brainy, open, smiling, proud person who loves writing and wants to share my knowledge and understanding with you.