async function postData(url = '', data) { // Default options are marked with * const response = await fetch(url, { method: 'POST', body: data, }); return response.json(); // parses JSON response into native JavaScript objects } function drawStars($totalRate, color, starSize) { let checked = Math.floor($totalRate); let notCheck = 5 - $totalRate; let notChecked = Math.floor(notCheck); let halfChecked = Math.ceil(notCheck - notChecked); let result = ''; for (let i = 0; i < checked; i++) { result += ``; } if (halfChecked) { result += ``; } for (let j = 0; j < notChecked; j++) { result += ``; } return result; } function addStyle(styleSheet){ var style = document.createElement('style'); style.type = 'text/css'; style.id = 'rating-positions'; style.appendChild(document.createTextNode(styleSheet)); document.getElementsByTagName('head')[0].appendChild(style); } function insertAfter(referenceNode, newNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); } window.addEventListener("load", function() { // We check if the code is laoded if (document.getElementById('edititorifyReviewsFrameWidget')) { var element = document.getElementById('edititorifyReviewsFrameWidget').parentElement; if (typeof(element.attributes['product-id']) !== "undefined") { try { addGoogleSnippet(element.attributes['product-id'].nodeValue); } catch (e) { console.log(e, 'failed to add snippet') } } } } ); window.addEventListener('load', function() { console.log("Editorify load Script"); if(window.location.href.indexOf('hotluxedeals')>-1 && document.querySelector('.editorify-reviews-count-new') && parseInt($(window).width())<769){ insertAfter(document.querySelector('.medium--hide.large--hide .product-single__title'),document.querySelector('.editorify-reviews-count-new')) } sendPageEvents('page_view') setTimeout(function () { if(document.querySelectorAll('.editorify-rating').length || document.querySelectorAll('li.snize-product').length || document.querySelectorAll('h3[data-pf-type="ProductTitle"]').length || document.querySelectorAll('.grid__item .card__heading.h5').length){ let rateElements = document.querySelectorAll('.editorify-rating'); if(!rateElements.length && document.querySelectorAll('.grid__item .card__heading.h5').length){ rateElements = document.querySelectorAll('.grid__item .card__heading.h5') }else if(window.location.href.indexOf('onthemove') < 0 && !rateElements.length && document.querySelectorAll('h3[data-pf-type="ProductTitle"]').length){ rateElements = document.querySelectorAll('h3[data-pf-type="ProductTitle"]') }else if(!rateElements.length && document.querySelectorAll('.snize-product').length){ rateElements = document.querySelectorAll('.snize-product') } let ids = []; for (let i =0; i< rateElements.length; i++){ let id = rateElements[i].getAttribute('data-id') if(!id && rateElements[i].getAttribute('data-product-id')){ id = rateElements[i].getAttribute('data-product-id') }else if(!id){ let elemId = rateElements[i].getAttribute('id') if(elemId){ elemId = elemId.split('-') id = elemId[elemId.length -1] } } ids.push(id) } console.log(ids) let storeName = Shopify.shop var form_data = new FormData(); form_data.append('storeName',storeName) form_data.append('product_ids',ids) postData('https://apps.editorify.com/review/get-review-data', form_data) .then(data => { var color = data.color; var rateText = data.rateTitle var rateText = data.rateTitle var starSize = data.star_size var styleSheet = data.styleSheet; var keep_rating = data.keep_rating if (window.location.href.indexOf('petsparade.co') >= 0) { styleSheet += '.editorify-rating { margin-top: 0 !important; margin-bottom: 5px !important; }' } addStyle(styleSheet) var reviewsData = data.result; if(reviewsData){ if(reviewsData.enabled){ for (let i =0; i< rateElements.length; i++){ let id = rateElements[i].getAttribute('data-id') if(!id && rateElements[i].getAttribute('data-product-id')){ id = rateElements[i].getAttribute('data-product-id') }else if(!id){ let elemId = rateElements[i].getAttribute('id') if(elemId){ elemId = elemId.split('-') id = elemId[elemId.length -1] } } if(reviewsData[id]){ var avgRate = reviewsData[id][0]; var ReviewsCount = reviewsData[id][1]; let ratingContent = '
'+drawStars(avgRate,color,starSize) +'
'+ (ReviewsCount > 1 ? ReviewsCount+rateText:+ReviewsCount+rateText)+'
' if(keep_rating){ ratingContent = drawStars(avgRate,color,starSize); } if(!rateElements[i].querySelector('.editorify-rating')){ if(rateElements[i].querySelector('.snize-title')){ rateElements[i].innerHTML = rateElements[i].innerHTML +`
${ratingContent}
` }else if(rateElements[i].getAttribute('data-product-type') == 'title'){ rateElements[i].innerHTML = rateElements[i].innerHTML +`
${ratingContent}
` }else{ rateElements[i].innerHTML = rateElements[i].innerHTML +`
${ratingContent}
` } } } } } } }); } else if(document.querySelectorAll('.pr_grid_item').length && !document.querySelectorAll('.editorify-rating').length){ let rateElements = document.querySelectorAll('.pr_grid_item'); let ids = []; for (let i =0; i< rateElements.length; i++){ let id = rateElements[i].getAttribute('data-usf-pid') ids.push(id) } console.log(ids) let storeName = Shopify.shop var form_data = new FormData(); form_data.append('storeName',storeName) form_data.append('product_ids',ids) postData('https://apps.editorify.com/review/get-review-data', form_data) .then(data => { var color = data.color; var rateText = data.rateTitle var rateText = data.rateTitle var starSize = data.star_size var styleSheet = data.styleSheet; var keep_rating = data.keep_rating if (window.location.href.indexOf('petsparade.co') >= 0) { styleSheet += '.editorify-rating { margin-top: 0 !important; margin-bottom: 5px !important; }' } addStyle(styleSheet) var reviewsData = data.result; if(reviewsData){ if(reviewsData.enabled){ for (let i =0; i< rateElements.length; i++){ let id = rateElements[i].getAttribute('data-usf-pid') if(reviewsData[id]){ var avgRate = reviewsData[id][0]; var ReviewsCount = reviewsData[id][1]; let ratingContent = '
'+drawStars(avgRate,color,starSize) +'
'+ (ReviewsCount > 1 ? ReviewsCount+rateText:+ReviewsCount+rateText)+'
' if(keep_rating){ ratingContent = drawStars(avgRate,color,starSize); } if(!rateElements[i].querySelector('.editorify-rating')){ if(rateElements[i].querySelector('.product-title')){ rateElements[i].querySelector('.product-title').innerHTML = rateElements[i].querySelector('.product-title').innerHTML +`
${ratingContent}
` } } } } } } }); } },1000) if(window.location.href.indexOf('rugbranch') > -1){ window.addEventListener('click', function() { setTimeout(function () { if(document.querySelectorAll('.pr_grid_item').length){ console.log('dedwedwedwed') let rateElements = document.querySelectorAll('.pr_grid_item'); let ids = []; for (let i =0; i< rateElements.length; i++){ let id = rateElements[i].getAttribute('data-usf-pid') ids.push(id) } console.log(ids) let storeName = Shopify.shop var form_data = new FormData(); form_data.append('storeName',storeName) form_data.append('product_ids',ids) postData('https://apps.editorify.com/review/get-review-data', form_data) .then(data => { var color = data.color; var rateText = data.rateTitle var rateText = data.rateTitle var starSize = data.star_size var styleSheet = data.styleSheet; var keep_rating = data.keep_rating if (window.location.href.indexOf('petsparade.co') >= 0) { styleSheet += '.editorify-rating { margin-top: 0 !important; margin-bottom: 5px !important; }' } addStyle(styleSheet) var reviewsData = data.result; if(reviewsData){ if(reviewsData.enabled){ for (let i =0; i< rateElements.length; i++){ let id = rateElements[i].getAttribute('data-usf-pid') if(reviewsData[id]){ var avgRate = reviewsData[id][0]; var ReviewsCount = reviewsData[id][1]; let ratingContent = '
'+drawStars(avgRate,color,starSize) +'
'+ (ReviewsCount > 1 ? ReviewsCount+rateText:+ReviewsCount+rateText)+'
' if(keep_rating){ ratingContent = drawStars(avgRate,color,starSize); } if(!rateElements[i].querySelector('.editorify-rating')){ if(rateElements[i].querySelector('.product-title')){ rateElements[i].querySelector('.product-title').innerHTML = rateElements[i].querySelector('.product-title').innerHTML +`
${ratingContent}
` } } } } } } }); } },2000) }) } }); window.addEventListener('message', function(e) { let message = e.data; console.log(message) if (window.location.href.indexOf('weinpicker.de') >= 0) { styleSheet = '.fa-search:before { content: "\\e800"; } .fa-user:before { content: "\\e801"; } .fa-minus:before { content: "\\e803"; } .fa-plus:before { content: "\\e804"; }'; addStyle(styleSheet); } if (window.location.href.indexOf('#reviewrequest') >= 0) { if (document.querySelector(".editorify-form-dialog #edititorifyReviewsFrameWidget").getAttribute('data-src') && !document.querySelector(".editorify-form-dialog #edititorifyReviewsFrameWidget").getAttribute('src')) { document.querySelector(".editorify-form-dialog #edititorifyReviewsFrameWidget").setAttribute('src', document.querySelector(".editorify-form-dialog #edititorifyReviewsFrameWidget").getAttribute('data-src')); } } if(message.hasOwnProperty('reviewRequest')){ window.scrollTo({ top: document.querySelector('.edititorifyReviewsFrame').offsetTop, behavior: "smooth" }); } if(message.hasOwnProperty('message') && message.message == 'redirect-product'){ window.open(message.link) } if(message.hasOwnProperty('show_modal')){ document.querySelector('.editorify-form-dialog').style.display = 'block'; let formFrame = document.querySelector('.edititorifyReviewsFormFrame') let formSrc = formFrame.getAttribute('data-src'); formFrame.setAttribute('src', formSrc || ''); } if(message.hasOwnProperty('close_modal')){ if(document.querySelector('.editorify-form-dialog')) { document.querySelector('.editorify-form-dialog').style.display = 'none'; } } if(document.querySelector('.editorify-reviews-count-new .rating-text')){ document.querySelector('.editorify-reviews-count-new .rating-text').addEventListener('click' , function () { if(window.location.href.indexOf('paiwellness')>-1){ document.querySelector('a[href="#tabs-61"]').click() window.scrollTo({ top: 1300, behavior: "smooth" }); } }) } }) document.addEventListener('click', function(e) { sendPageEvents('page_click') }) function sendPageEvents(event) { console.log("Editorify Statistics Disabled"); return true; var form_data = new FormData(); form_data.append('page_type',meta.page.pageType) form_data.append('page_link',window.location.href.split('?')[0]) form_data.append('page_type',meta.page.pageType) form_data.append('store_name',Shopify.shop) form_data.append('event',event) postData('https://apps.editorify.com/site/user-statistics', form_data) .then(data => { }) } function addGoogleSnippet(product_id) { postData('https://apps.editorify.com/review/get-schema-info?store_name='+Shopify.shop+'&product_id='+product_id, new FormData) .then(result => { if(result && result.success) { let aggregateRating = { "@type":"AggregateRating", ratingValue:result.total_rate, ratingCount:result.reviewsCount, "reviewCount":result.reviewsCount, } if ($('script[type="application/ld+json"]').length > 0) { $('script[type="application/ld+json"]').each(function() { if($(this).text().indexOf('"@type": "Product"') > -1) { var schemaScript = JSON.parse($(this).text()); if (schemaScript) { schemaScript.aggregateRating = aggregateRating; $(this).text(JSON.stringify(schemaScript)); } return false; } }); } } }) }