{"id":7969,"date":"2023-07-19T18:52:13","date_gmt":"2023-07-19T11:52:13","guid":{"rendered":"https:\/\/sandyhillspa.com\/?page_id=7969"},"modified":"2026-04-29T19:28:00","modified_gmt":"2026-04-29T12:28:00","slug":"reservation","status":"publish","type":"page","link":"https:\/\/sandyhillspa.com\/zh-tw\/reservation\/","title":{"rendered":"\u7dda\u4e0a\u9810\u7d04"},"content":{"rendered":"\n\n\n<!-- Event snippet for L\u01b0\u1ee3t \u0111\u1eb7t l\u1ecbch h\u1eb9n (1) conversion page -->\n<script>\n  gtag('event', 'conversion', {\n      'send_to': 'AW-17634914493\/oCAXCPTH4oocEL3h_dhB',\n      'value': 1.0,\n      'currency': 'VND'\n  });\n<\/script>\n\n\n\n<style>\n\/* Nh\u1eadp ph\u00f4ng ch\u1eef Lato v\u00e0 h\u1ed7 tr\u1ee3 ti\u1ebfng Trung Ph\u1ed3n th\u1ec3 *\/\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Lato:wght@400;700&display=swap');\n\n.sh-booking-wrapper {\n  max-width: 600px;\n  margin: 40px auto;\n  padding: 30px 20px;\n  background-color: #F9F6F0; \/* M\u00e0u be c\u00e1t s\u00e1ng *\/\n  border-radius: 20px;\n  box-shadow: 0 10px 30px rgba(29, 92, 79, 0.08);\n  font-family: 'Lato', \"\u5fae\u8edf\u6b63\u9ed1\u9ad4\", \"Microsoft JhengHei\", sans-serif;\n  color: #1d5c4f;\n  text-align: center;\n}\n\n.sh-booking-title {\n  font-size: 1.8em;\n  font-weight: normal; \/* Tu\u00e2n th\u1ee7 quy t\u1eafc kh\u00f4ng in \u0111\u1eadm *\/\n  margin-top: 0;\n  margin-bottom: 12px;\n  letter-spacing: 0.5px;\n}\n\n\/* Ki\u1ec3u d\u00e1ng cho huy hi\u1ec7u tr\u1ea1ng th\u00e1i Online\/Offline *\/\n.sh-status-badge {\n  display: inline-flex;\n  align-items: center;\n  gap: 6px;\n  padding: 6px 12px;\n  border-radius: 20px;\n  font-size: 0.85em;\n  font-weight: normal;\n  letter-spacing: 0.5px;\n  margin-bottom: 15px;\n  transition: all 0.3s ease;\n}\n\n.sh-status-badge.online {\n  background-color: #E8F5E9;\n  color: #2E7D32;\n}\n\n.sh-status-badge.offline {\n  background-color: #FFEBEE;\n  color: #C62828;\n}\n\n.sh-status-dot {\n  width: 8px;\n  height: 8px;\n  border-radius: 50%;\n}\n\n.sh-status-badge.online .sh-status-dot {\n  background-color: #4CAF50;\n  box-shadow: 0 0 0 0 rgba(76, 175, 80, 0.7);\n  animation: pulse-green 2s infinite;\n}\n\n.sh-status-badge.offline .sh-status-dot {\n  background-color: #F44336;\n}\n\n@keyframes pulse-green {\n  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(76, 175, 80, 0.7); }\n  70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(76, 175, 80, 0); }\n  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(76, 175, 80, 0); }\n}\n\n.sh-booking-subtitle {\n  font-size: 0.95em;\n  color: #557a71;\n  margin-bottom: 30px;\n  line-height: 1.5;\n  transition: opacity 0.3s ease;\n}\n\n.sh-contact-grid {\n  display: flex;\n  flex-direction: column;\n  gap: 16px;\n  margin-bottom: 25px;\n}\n\n.sh-action-card {\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: 16px 20px;\n  background: #ffffff;\n  border-radius: 16px;\n  text-decoration: none;\n  color: #1d5c4f;\n  transition: all 0.3s ease;\n  border: 1px solid transparent;\n  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.04);\n}\n\n.sh-action-card:hover, .sh-action-card:active {\n  transform: translateY(-3px);\n  box-shadow: 0 8px 25px rgba(29, 92, 79, 0.15);\n  border-color: rgba(29, 92, 79, 0.2);\n}\n\n.sh-card-left {\n  display: flex;\n  align-items: center;\n  gap: 15px;\n  text-align: left;\n}\n\n.sh-img-box {\n  width: 44px;\n  height: 44px;\n  border-radius: 12px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  overflow: hidden; \n  background-color: #f4f4f4;\n}\n\n.sh-img-box img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n\n.sh-channel-info {\n  display: flex;\n  flex-direction: column;\n}\n\n.sh-channel-name {\n  font-weight: normal;\n  font-size: 1.1em;\n}\n\n.sh-channel-desc {\n  font-size: 0.8em;\n  color: #666;\n  margin-top: 2px;\n}\n\n.sh-action-btn {\n  font-size: 0.9em;\n  font-weight: normal;\n  padding: 8px 16px;\n  border-radius: 20px;\n  background-color: #1d5c4f;\n  color: #ffffff;\n  transition: background-color 0.2s;\n}\n\n.sh-action-card.line .sh-action-btn {\n  background-color: #00C300; \/* M\u00e0u chu\u1ea9n LINE *\/\n  color: #ffffff;\n}\n\n.sh-form-notice {\n  font-size: 0.85em;\n  color: #888;\n  position: relative;\n  display: inline-block;\n  padding: 0 20px;\n  letter-spacing: 1px;\n}\n\n.sh-form-notice::before,\n.sh-form-notice::after {\n  content: \"\";\n  position: absolute;\n  top: 50%;\n  width: 40px;\n  height: 1px;\n  background-color: #e0d8c9;\n}\n\n.sh-form-notice::before { right: 100%; }\n.sh-form-notice::after { left: 100%; }\n\n@media (min-width: 600px) {\n  .sh-contact-grid { flex-direction: row; }\n  .sh-action-card {\n    flex: 1;\n    flex-direction: column;\n    text-align: center;\n    padding: 25px 20px;\n    gap: 15px;\n  }\n  .sh-card-left {\n    flex-direction: column;\n    gap: 12px;\n    text-align: center;\n  }\n}\n<\/style>\n\n<div class=\"sh-booking-wrapper\">\n  <h2 class=\"sh-booking-title\">\u9810\u7d04\u60a8\u7684 SPA \u9ad4\u9a57<\/h2>\n  \n  <div id=\"sh-op-status\" class=\"sh-status-badge\">\n    <span class=\"sh-status-dot\"><\/span>\n    <span class=\"sh-status-text\">\u7cfb\u7d71\u8b80\u53d6\u4e2d&#8230;<\/span>\n  <\/div>\n\n  <p id=\"sh-subtitle\" class=\"sh-booking-subtitle\"><\/p>\n\n  <div class=\"sh-contact-grid\">\n    \n    <a href=\"https:\/\/line.me\/R\/ti\/p\/@018skcgg\" target=\"_blank\" rel=\"noopener\" class=\"sh-action-card line\" aria-label=\"\u900f\u904e LINE \u9810\u7d04\">\n      <div class=\"sh-card-left\">\n        <div class=\"sh-img-box\">\n          <img decoding=\"async\" src=\"https:\/\/sandyhillspa.com\/wp-content\/uploads\/2025\/12\/LOGO-LINE-2.webp\" alt=\"LINE \u5716\u793a\" title=\"\">\n        <\/div>\n        <div class=\"sh-channel-info\">\n          <span class=\"sh-channel-name\">LINE<\/span>\n          <span class=\"sh-channel-desc\">\u4e2d\u6587\u5ba2\u670d\u652f\u63f4<\/span>\n        <\/div>\n      <\/div>\n      <span class=\"sh-action-btn\">\u52a0\u5165\u597d\u53cb<\/span>\n    <\/a>\n\n    <a href=\"https:\/\/wa.me\/84359575607\" target=\"_blank\" rel=\"noopener\" class=\"sh-action-card whatsapp\" aria-label=\"\u900f\u904e WhatsApp \u9810\u7d04\">\n      <div class=\"sh-card-left\">\n        <div class=\"sh-img-box\">\n          <img decoding=\"async\" src=\"https:\/\/sandyhillspa.com\/wp-content\/uploads\/2026\/04\/WhatsApp.svg\" alt=\"WhatsApp \u5716\u793a\" title=\"\">\n        <\/div>\n        <div class=\"sh-channel-info\">\n          <span class=\"sh-channel-name\">WhatsApp<\/span>\n          <span class=\"sh-channel-desc\">\u570b\u969b\u65c5\u5ba2\u5c08\u7dda<\/span>\n        <\/div>\n      <\/div>\n      <span class=\"sh-action-btn\">\u7acb\u5373\u806f\u7e6b<\/span>\n    <\/a>\n\n  <\/div>\n  \n  <div class=\"sh-form-notice\">\n    \u6216\u586b\u5beb\u7dda\u4e0a\u9810\u7d04\u8868\u55ae\n  <\/div>\n<\/div>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n  function checkSpaOperatingHours() {\n    var vnTimeOptions = { timeZone: \"Asia\/Ho_Chi_Minh\", hour: 'numeric', hour12: false };\n    var formatter = new Intl.DateTimeFormat([], vnTimeOptions);\n    var vnHour = parseInt(formatter.format(new Date()), 10);\n\n    var statusBadge = document.getElementById(\"sh-op-status\");\n    var statusText = statusBadge.querySelector(\".sh-status-text\");\n    var subtitle = document.getElementById(\"sh-subtitle\");\n\n    \/\/ Gi\u1edd l\u00e0m vi\u1ec7c: 6:00 - 21:00\n    if (vnHour >= 6 && vnHour < 21) {\n      statusBadge.className = \"sh-status-badge online\";\n      statusText.textContent = \"\u7dda\u4e0a\u5ba2\u670d - \u96a8\u6642\u70ba\u60a8\u670d\u52d9\";\n      subtitle.innerHTML = \"\u900f\u904e LINE \u6216 WhatsApp \u806f\u7e6b\u6211\u5011\uff0c10 \u5206\u9418\u5167\u5feb\u901f\u56de\u8986\uff0c<br>\u6216\u586b\u5beb\u4e0b\u65b9\u7684\u7dda\u4e0a\u9810\u7d04\u8868\u55ae\u3002\";\n    } else {\n      statusBadge.className = \"sh-status-badge offline\";\n      statusText.textContent = \"\u96e2\u7dda\u72c0\u614b - \u660e\u65e5\u65e9\u4e0a 6:00 \u6062\u5fa9\u670d\u52d9\";\n      subtitle.innerHTML = \"\u76ee\u524d\u975e\u71df\u696d\u6642\u9593\u3002\u8acb\u7559\u8a00\u6216\u586b\u5beb\u9810\u7d04\u8868\u55ae\uff0c<br>\u6211\u5011\u5c07\u65bc\u8d8a\u5357\u6642\u9593\u65e9\u4e0a 6:00 \u4e0a\u73ed\u5f8c\u7acb\u5373\u56de\u8986\u60a8\u3002\";\n    }\n  }\n\n  checkSpaOperatingHours();\n  setInterval(checkSpaOperatingHours, 60000);\n});\n<\/script>\n\n\n\n\n\t<script type=\"text\/javascript\">\n        var ajaxurl = 'https:\/\/sandyhillspa.com\/wp-admin\/admin-ajax.php';\n    <\/script>\n\n    <style>.rtb-booking-form form button { background-color: #3f645a !important; border-color: #3f645a !important; padding: 13px 28px !important; }.rtb-booking-form form button { color: #ffffff !important; }<\/style>\n    \n<div class=\"rtb-booking-form\">\n\t\n\t\n\t<form method=\"POST\" action=\"https:\/\/sandyhillspa.com\/reservation\/\" class=\"rtb-booking-form-form\">\n\t\t<input type=\"hidden\" name=\"action\" value=\"booking_request\">\n\n\t\t\n\t\t\n\t\t\t\t<fieldset class=\"reservation\">\n\n\t\t\t\t\t\t<legend >\n\t\t\t\tBook an appointment\t\t\t<\/legend>\n\t\t\t\n\t\t\t\n\t<div class=\"rtb-text date\">\n\t\t\t\t<label for=\"rtb-date\">\n\t\t\tDate\t\t<\/label>\n\t\t<input type=\"text\" name=\"rtb-date\" id=\"rtb-date\" value=\"\" required aria-required=\"true\">\n\t<\/div>\n\n\t\n\t<div class=\"rtb-text time\">\n\t\t\t\t<label for=\"rtb-time\">\n\t\t\tTime\t\t<\/label>\n\t\t<input type=\"text\" name=\"rtb-time\" id=\"rtb-time\" value=\"\" required aria-required=\"true\">\n\t<\/div>\n\n\t\n\t<div class=\"rtb-select party\">\n\t\t\t\t<label for=\"rtb-party\">\n\t\t\tParty\t\t<\/label>\n\t\t<select name=\"rtb-party\" id=\"rtb-party\" required aria-required=\"true\" >\n\t\t\t\t\t\t\t\t\t<option value=\"1\" >1<\/option>\n\t\t\t\t\t\t<option value=\"2\" >2<\/option>\n\t\t\t\t\t\t<option value=\"3\" >3<\/option>\n\t\t\t\t\t\t<option value=\"4\" >4<\/option>\n\t\t\t\t\t\t<option value=\"5\" >5<\/option>\n\t\t\t\t\t\t<option value=\"6\" >6<\/option>\n\t\t\t\t\t\t<option value=\"7\" >7<\/option>\n\t\t\t\t\t\t<option value=\"8\" >8<\/option>\n\t\t\t\t\t\t<option value=\"9\" >9<\/option>\n\t\t\t\t\t\t<option value=\"10\" >10<\/option>\n\t\t\t\t\t\t<option value=\"11\" >11<\/option>\n\t\t\t\t\t\t<option value=\"12\" >12<\/option>\n\t\t\t\t\t\t<option value=\"13\" >13<\/option>\n\t\t\t\t\t\t<option value=\"14\" >14<\/option>\n\t\t\t\t\t\t<option value=\"15\" >15<\/option>\n\t\t\t\t\t\t<option value=\"16\" >16<\/option>\n\t\t\t\t\t\t<option value=\"17\" >17<\/option>\n\t\t\t\t\t\t<option value=\"18\" >18<\/option>\n\t\t\t\t\t\t<option value=\"19\" >19<\/option>\n\t\t\t\t\t\t<option value=\"20\" >20<\/option>\n\t\t\t\t\t<\/select>\n\t<\/div>\n\n\t\t\t<\/fieldset>\n\t\t\t\t<fieldset class=\"rtb-contact\">\n\n\t\t\t\t\t\t<legend >\n\t\t\t\tContact Details\t\t\t<\/legend>\n\t\t\t\n\t\t\t\n\t<div class=\"rtb-text name\">\n\t\t\t\t<label for=\"rtb-name\">\n\t\t\tName\t\t<\/label>\n\t\t<input type=\"text\" name=\"rtb-name\" id=\"rtb-name\" value=\"\" required aria-required=\"true\">\n\t<\/div>\n\n\t\n\t<div class=\"rtb-text email\">\n\t\t\t\t<label for=\"rtb-email\">\n\t\t\tEmail\t\t<\/label>\n\t\t<input type=\"email\" name=\"rtb-email\" id=\"rtb-email\" value=\"\" required aria-required=\"true\">\n\t<\/div>\n\n\t\n\t<div class=\"rtb-text service-request-ex-thai-massage-90mins\">\n\t\t\t\t<label for=\"rtb-service-request-ex-thai-massage-90mins\">\n\t\t\tService request (Ex: Thai massage 90mins)\t\t<\/label>\n\t\t<input type=\"text\" name=\"rtb-service-request-ex-thai-massage-90mins\" id=\"rtb-service-request-ex-thai-massage-90mins\" value=\"\" required aria-required=\"true\">\n\t<\/div>\n\n\t\n\t<div class=\"rtb-checkbox choose-one-promotion\">\n\t\t\t\t<label>\n\t\t\tChoose one promotion\t\t<\/label>\n\t\t\t\t<label>\n\t\t\t<input type=\"checkbox\" name=\"rtb-choose-one-promotion[]\" id=\"rtb-choose-one-promotion-0\" value=\"0\">\n\t\t\tNo pick up\/drop off\t\t<\/label>\n\t\t\t\t<label>\n\t\t\t<input type=\"checkbox\" name=\"rtb-choose-one-promotion[]\" id=\"rtb-choose-one-promotion-1\" value=\"1\">\n\t\t\tPick up\/drop off\t\t<\/label>\n\t\t\t<\/div>\n\n\t\n\t<div class=\"rtb-text whatsapp-or-kakaotalk\">\n\t\t\t\t<label for=\"rtb-whatsapp-or-kakaotalk\">\n\t\t\tFor pick-up\/drop-off, please share WhatsApp or KakaoTalk ID\t\t<\/label>\n\t\t<input type=\"text\" name=\"rtb-whatsapp-or-kakaotalk\" id=\"rtb-whatsapp-or-kakaotalk\" value=\"\">\n\t<\/div>\n\n\t\t\t<\/fieldset>\n\t\t\n\t\t\n\t\t<fieldset class=\"rtb-form-footer\">\n\t\t\t<div id='rtb_recaptcha'><\/div>\n\t\t\t\n\t\t\t<div class=\"rtb-form-submit\"><button type=\"submit\">Request Booking<\/button><\/div>\t\t<\/fieldset>\n\n\n\t<\/form>\n\t<\/div>\n\n\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7969","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/sandyhillspa.com\/zh-tw\/wp-json\/wp\/v2\/pages\/7969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sandyhillspa.com\/zh-tw\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sandyhillspa.com\/zh-tw\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sandyhillspa.com\/zh-tw\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sandyhillspa.com\/zh-tw\/wp-json\/wp\/v2\/comments?post=7969"}],"version-history":[{"count":4,"href":"https:\/\/sandyhillspa.com\/zh-tw\/wp-json\/wp\/v2\/pages\/7969\/revisions"}],"predecessor-version":[{"id":8020,"href":"https:\/\/sandyhillspa.com\/zh-tw\/wp-json\/wp\/v2\/pages\/7969\/revisions\/8020"}],"wp:attachment":[{"href":"https:\/\/sandyhillspa.com\/zh-tw\/wp-json\/wp\/v2\/media?parent=7969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}