رزرو قرار در ساحل Choengmon

از راحتی برای برنامه ریزی یکپارچه لذت ببرید.

سهولت و کارایی برنامه ریزی یک روز عالی آبگرم خود را تجربه کنید!

Choengmon Beach Branch

شعبه ساحل چونگمون

شما در حال رزرو برای شعبه ساحل چونگمون هستید.

نقشه گوگل را باز کنید شعبه دیگری را انتخاب کنید

ماساژ در سالن ما

از جلسه کامل خود در سالن Nakee لذت ببرید.

ماساژ در محل شما

در محل خود - خانه، هتل یا ویلا - نوازش کنید.

رزرو موجود است

از 10:00 AM تا 10:00 PM

خدمات خود را انتخاب کنید:
لطفا سرویس را اضافه کنید
    درمانگر خود را انتخاب کنید:
    لطفاً درمانگر را انتخاب کنید یا خالی بگذارید و به ما اجازه دهید یک درمانگر مناسب را طبق خدمات درخواستی شما تعیین کنیم.
      یا
      ⚠️ لطفاً حتماً درخواست رزرو را از طریق برنامه انتخابی خود برای ما ارسال کنید. ما رزرو شما را فقط از طریق واتس اپ یا لاین تایید می کنیم.
      ℹ️ یک پیام قالب‌بندی شده بر اساس انتخاب نوبت شما ایجاد می‌شود. می‌توانید آن را از طریق برنامه پیام‌رسان مورد نظر خود که در بالا ذکر شده است، ارسال کنید.
      '; $( window ).on( "resize", function() { on_resize(); }); on_resize(); attentionBoxShift(); $("#view_products,.choosed_products,#open_service-menu").on('click',function(){ $("#products_list_pop").show(300); $(".choosed_products").addClass('error'); setTimeout(function(){ $("body").addClass("product_chooser"); },300); }); $("#products_list_pop_close").on('click',function(){ $("#products_list_pop").hide(300); setTimeout(function(){ $("body").removeClass("product_chooser"); },20); }); $("#view_theropist,.choosed_theropist,#open_therapists,#open_therapists_br").on('click',function(){ $("#theropist_list_pop").show(300); if (ajax_runned == 0) { ajax_runned = 1; load_therapists_list(); } setTimeout(function(){ $("body").addClass("product_chooser"); },300); }); $(window).on('scroll', function () { if (ajax_runned != 0) return; ajax_runned = 1; load_therapists_list(); }); $("#theropist_list_pop_close").on('click',function(){ $("#theropist_list_pop").hide(300); setTimeout(function(){ $("body").removeClass("product_chooser"); },20); }); $(".service").each(function(){ var t = $(this); t.find("table tr").each(function(){ var tr = $(this); tr.append(""); }); }); $(".add_prod.btn").on('click',function(){ var t = $(this), p = t.parents('.service'), tr = t.parents('tr'); tr.addClass('active'); var tile = p.find(".prod-title h2").text(); if (lang != 'th') tile += ' ( '+p.data('en')+' )'; var pr = 0; if ( massage_type == 1 ) pr = tr.data('price'); else pr = tr.data('outside-price'); $(".choosed_products ul").append('
    • '+checkmark+tile+'
      '+' - '+tr.find('td:eq(0)').text() + ' ['+formatPrice(pr)+' ฿]' +'
    • '); if ($(".choosed_products ul li").length == 0 ) { $(".choosed_products .no-prod").show(); $("#products_list_pop_close").removeClass("selected"); } else { $(".choosed_products .no-prod").hide(); $("#products_list_pop_close").addClass("selected"); } calculate_totals_html(); attentionBoxShift(); }); $(".remove_prod.btn").on('click',function(){ var t = $(this), p = t.parents('.service'), tr = t.parents('tr'); tr.removeClass('active'); $(".choosed_products ul ."+p.attr('id')+".pid-"+tr.data('prod_id')).remove(); if ($(".choosed_products ul li").length == 0 ) { $(".choosed_products .no-prod").show(); $("#products_list_pop_close").removeClass("selected"); } else { $(".choosed_products .no-prod").hide(); $("#products_list_pop_close").addClass("selected"); } calculate_totals_html(); attentionBoxShift(); }); var ga4EventSent = false; $("#customername,#customerphone,#visitqty,#visit-date,#visit-time").on('keyup',function(){ $(this).removeClass('error'); if (ga4EventSent) return; ga4EventSent = true; gtag("event", "waBookingFormStart", { menu_item_name: "Start WhatsApp Booking Form", menu_item_url: "https://www.nakee.spa/fa/%d8%b1%d8%b2%d8%b1%d9%88-%d8%a2%d9%86%d9%84%d8%a7%db%8c%d9%86/%d8%b1%d8%b2%d8%b1%d9%88-%d9%82%d8%b1%d8%a7%d8%b1-%d8%af%d8%b1-%d8%b3%d8%a7%d8%ad%d9%84-choengmon/", }); }); $("#customername,#customerphone,#visitqty,#visit-date,#visit-time").on('change',function(){ attentionBoxShift(); }); $("#submit_req").on('click', function(){ var m = validate_message('whatsapp'); if (m == false) return; $("#submit_req_action").attr('href', 'https://api.whatsapp.com/send?phone=66990655880&&text='+m); document.getElementById("submit_req_action").click(); success_action(m); }); $("#submit_req_line").on('click', function(){ var m = validate_message('line'); if (m == false) return; $("#submit_req_action_line").attr('href', 'https://line.me/R/oaMessage/%40355kcqpj/?'+m); document.getElementById("submit_req_action_line").click(); success_action(m); }); $(".massage-type-selector .type-option").on('click', function(){ var t = $(this); $(".massage-type-selector .type-option").removeClass("selected"); $(this).addClass("selected"); if (massage_type == $(this).data('massagetype')) return; massage_type = $(this).data('massagetype'); if (massage_type == 2) { $(".home-massage").slideDown(400); $(".book_apointment .visitinfo").hide(); $(".top-booking-bar-menu,.book_apointment,.shop_massage_hours").slideUp(400); if (map_loaded == 0) { initMap(); map_loaded = 1; } } else { $(".home-massage").slideUp(400); $(".book_apointment .visitinfo").show(); $(".top-booking-bar-menu,.book_apointment,.shop_massage_hours").slideDown(400); } outside_price_update(); attentionBoxShift(); }); $(".massage-beds label").on('click', function(){ var t = $(this); $(".massage-beds label").removeClass('selected'); t.addClass('selected'); calculate_totals_html(); }); function success_action(m){ var params = "n=" + $("#customername").val(); if ($("#customerphone").length != 0) params += "&p=" + $("#customerphone").val(); $(".book_apointment").empty().append("
      Loading ...
      شما با موفقیت درخواست قرار ملاقات خود را ایجاد کردید!
      "); window.location.href="https://www.nakee.spa/fa/%d8%b1%d8%b2%d8%b1%d9%88-%d8%a8%d8%a7-%d8%aa%d8%b4%da%a9%d8%b1-%d8%a7%d8%b2-%d8%b4%d9%85%d8%a7/?"+params+"&msg="+m; } function load_therapists_list() { if ($("#theropist_list_pop .theropists").hasClass("loaded")) return; $.ajax({ url: 'https://www.nakee.spa/wp-admin/admin-ajax.php' , method: 'POST', dataType : "html", data: { action: 'booking_terapist_list', branch_id: 728 }, success: function(response) { $("#theropist_list_pop .theropists").addClass("loaded").empty().append(response); $(".theropists .theropist").on('click',function(){ var t = $(this); if (t.hasClass('vacation')) return; if (!t.hasClass('active')){ t.addClass('active'); $(".choosed_theropist ul").append('
    • '+checkmark+t.data('en')+'
    • '); } else { t.removeClass('active'); $('.prod-item.therop-'+t.attr('id')).remove(); } if ($(".choosed_theropist ul li").length == 0 ) $(".choosed_theropist .no-prod").show(); else $(".choosed_theropist .no-prod").hide(); attentionBoxShift(); }); }, error: function() { alert('There was an error with loading the therapists list.'); } }); } function validate_message(t){ var geusts = parseInt($("#visitqty").val()); if ($("#customername").val() == ''){ $("#customername").addClass('error'); $('html, body').animate({ scrollTop: $('#customername').offset().top-70 }, 200); setTimeout( () => { alert("نام الزامی است!"); },201); return false; } /* if ($("#customerphone").val() == ''){ $("#customerphone").addClass('error'); $('html, body').animate({ scrollTop: $('#customerphone').offset().top-70 }, 200); setTimeout( () => { alert("شماره تلفن الزامی است!"); },201); return false; } */ if ($("#visitqty").val() == '' || geusts < 1){ $("#visitqty").addClass('error'); $('html, body').animate({ scrollTop: $('#visitqty').offset().top-70 }, 200); setTimeout( () => { alert("لطفا تعداد مهمانان را انتخاب کنید!"); },201); return false; } if ($("#visit-date").val() == ''){ $("#visit-date").addClass('error'); $('html, body').animate({ scrollTop: $('#visit-date').offset().top-70 }, 200); setTimeout( () => { alert("لطفا داده های قرار خود را انتخاب کنید!"); },201); return false; } if ($("#visit-time").val() == ''){ $("#visit-time").addClass('error'); $('html, body').animate({ scrollTop: $('#visit-time').offset().top-70 }, 200); setTimeout( () => { alert("لطفا زمان قرار ملاقات خود را انتخاب کنید!"); },201); return false; } if (!timeValid) { setTimeout( () => { alert("لطفا مطمئن شوید که زمان قرار شما معتبر است!"); },201); return false; } if ($(".choosed_products li.prod-item").length == 0){ $(".choosed_products").addClass('error'); $('html, body').animate({ scrollTop: $('.products_choice').offset().top-70 }, 200); setTimeout( () => { alert("لطفا خدمات خود را انتخاب کنید!"); },201); return false; } var u = '',brek = '%0A'; switch (t){ case 'whatsapp': brek = '%0A'; break; case 'line': brek = '%0D%0A'; break; } u += encodeURIComponent('Booking Information:')+brek; u += encodeURIComponent('Massage '+(massage_type == 1 ? "AT OUR SHOP ("+$(".branch_indicator").data('name')+")" : "OUTSIDE AT YOUR LOCATION"))+brek; if (massage_type == 2) u += encodeURIComponent(($('input[name="massage-bed"]:checked').val() == '1' ? "Portable Massage Bed: Included" : "Portable Massage Bed: NOT Included"))+brek; u += brek+encodeURIComponent('Name: '+$("#customername").val())+brek; //u += encodeURIComponent('phone number: '+$("#customerphone").val())+brek; u += encodeURIComponent('Number of guests: '+$("#visitqty").val()+' '+(geusts <= 1 ? 'person' : 'persons'))+brek; u += encodeURIComponent('Preferred visit time: '+ $("#visit-date").val() + ' ' + $("#visit-time").val() )+brek; u += brek+encodeURIComponent('Required Service: ')+brek; /* $(".choosed_products li.prod-item").each(function(){ u += encodeURIComponent(' > '+$(this).text()+' ('++' ฿)')+brek; }); */ var tot = 0; $(".services tr.active").each(function(){ var tr=$(this), sp = $(this).parents('.service'), h2=sp.find('.prod-title h2'), pr = 0; if ( massage_type == 1 ) pr = $(this).data('price'); else pr = $(this).data('outside-price'); tot += parseInt(pr); var tile = h2.text(); if (lang != 'th') tile += ' ( '+sp.data('en')+' )'; u += encodeURIComponent('> '+tile)+brek; u += encodeURIComponent(' - '+tr.find('td:eq(0)').text() + ' ['+formatPrice(pr)+' ฿]')+brek; }); if (tot != 0) { if ($('input[name="massage-bed"]:checked').val() == '1') { u += brek+encodeURIComponent('Taxi Transport For Massage Bed: '+taxi+' ฿')+brek; tot += parseInt(taxi); } /* u += encodeURIComponent('------')+brek; u += encodeURIComponent('Total Price: '+formatPrice(tot)+' ฿')+brek; */ } if ($(".choosed_theropist li.prod-item").length > 0) { u += brek+encodeURIComponent('Required Therapist: ')+brek; $(".choosed_theropist li.prod-item").each(function(){ u += encodeURIComponent(' > '+$(this).text())+brek; }); } else { u += brek+encodeURIComponent('Chosen Therapist: You can choose for ')+(geusts <= 1 ? 'me' : 'us')+'.%0A'+brek; } if ($("#clientnote").val() != '') u += brek+encodeURIComponent('Additional Request: ')+brek+encodeURIComponent($("#clientnote").val())+brek; if (massage_type == 1) { u += brek+encodeURIComponent('📍 Branch Location: ')+brek+encodeURIComponent($(".branch_indicator").data('name')); u += brek+encodeURIComponent('🗺️ Google Maps: ')+encodeURIComponent($(".branch_indicator").data('maplink')); } else { u += brek+encodeURIComponent('📍 Your Location Map: '+$("#address_url").val())+brek; u += encodeURIComponent('Your Address: '+$("#visit-address").val())+brek; u += encodeURIComponent('Your Room/Flat Number: '+$("#visit-flat").val()); } return u; } $("#visit-address, #visit-flat").on('change click keyup', function(){ outside_service_validation(); attentionBoxShift(); }); $("#visit-date,#visit-date-o").on('change', function(){ const selectedDate = $(this).val(); const today = new Date(); const todayStr = today.toISOString().split('T')[0]; let targetTime; if (selectedDate === todayStr) { const nowPlus1Hr = new Date(today.getTime() + 60 * 60 * 1000); const hh = nowPlus1Hr.getHours().toString().padStart(2, '0'); const mm = nowPlus1Hr.getMinutes().toString().padStart(2, '0'); targetTime = `${hh}:${mm}`; } else { targetTime = '10:00'; } $('#'+$(this).attr('id').replace('date','time')).val(targetTime).attr('min', targetTime).attr('placeholder', targetTime); }); ['', '-o'].forEach(suffix => { $(`#visit-date${suffix}, #visit-time${suffix}`).on('change', function () { timeValid = 0; const date = $(`#visit-date${suffix}`).val(); const time = $(`#visit-time${suffix}`).val(); if (!date || !time) return; validateEnteredTime(suffix); if (suffix == '-o') { outside_service_validation(); attentionBoxShift(); } }); }); // Icon click triggers focus on sibling input $(".caln-icon, .time-icon").on('click', function () { $(this).parent().find('input').trigger('focus'); }); // Validate entered time function validateEnteredTime(suffix) { timeValid = 1; const timeField = $(`#visit-time${suffix}`); if (!isTimeInAllowedRange(suffix)) { timeField.addClass('error'); timeValid = 0; alert(suffix === '' ? "زمان ملاقات باید بین 10 صبح تا 10 شب باشد." : "زمان ملاقات باید بین 10 صبح تا 6 بعد از ظهر باشد."); } else if (!isVisitTimeValid(suffix)) { timeField.addClass('error'); timeValid = 0; alert("Appointment time should be minimum +30 minutes from now."); } if (timeValid) timeField.removeClass('error'); } // Check if time is +30 min from now (in Bangkok) function isVisitTimeValid(suffix) { const date = $(`#visit-date${suffix}`).val(); const time = $(`#visit-time${suffix}`).val(); if (!date || !time) return false; const selected = new Date(`${date}T${time}`); const now = new Date(); const nowBangkok = new Date(now.toLocaleString("en-US", { timeZone: "Asia/Bangkok" })); const nowPlus30 = new Date(nowBangkok.getTime() + 30 * 60 * 1000); return selected >= nowPlus30; } // Check if time is in range (10:00 to 22:00 or 18:00) function isTimeInAllowedRange(suffix) { const time = $(`#visit-time${suffix}`).val(); if (!time) return false; const [hh, mm] = time.split(':').map(Number); if (isNaN(hh) || isNaN(mm)) return false; const maxHour = suffix === '' ? 22 : 18; return hh >= 10 && (hh < maxHour || (hh === maxHour && mm === 0)); } // Set initial values // based on Bangkok time and cutoffs function getKohSamuiBookingTime(suffix) { const now = new Date(); const nowBangkok = new Date(now.toLocaleString("en-US", { timeZone: "Asia/Bangkok" })); const nowPlus30 = new Date(nowBangkok.getTime() + 30 * 60 * 1000); const nowPlus40 = new Date(nowBangkok.getTime() + 40 * 60 * 1000); const cutoff = new Date(nowBangkok); cutoff.setHours(suffix === '' ? 22 : 18, 0, 0, 0); let dateStr, timeStr, timeStr1; if (nowPlus30 > cutoff) { const tomorrow = new Date(nowBangkok); tomorrow.setDate(tomorrow.getDate() + 1); dateStr = tomorrow.toISOString().split('T')[0]; timeStr = '10:00'; timeStr1 = '10:00'; } else { dateStr = nowBangkok.toISOString().split('T')[0]; const hh = nowPlus30.getHours().toString().padStart(2, '0'); const mm = nowPlus30.getMinutes().toString().padStart(2, '0'); timeStr = `${hh}:${mm}`; const hh1 = nowPlus40.getHours().toString().padStart(2, '0'); const mm1 = nowPlus40.getMinutes().toString().padStart(2, '0'); timeStr1 = `${hh1}:${mm1}`; } $(`#visit-date${suffix}`).val(dateStr).attr('min', dateStr); $(`#visit-time${suffix}`).val(timeStr1).attr('min', timeStr); } // Initialize both sets getKohSamuiBookingTime(''); getKohSamuiBookingTime('-o'); setInterval(function(){ clock_nakee(); },1000); clock_nakee(); lightbox.option({ fadeDuration: 200, resizeDuration: 200, wrapAround: true }); });-->