{"id":4249,"date":"2025-11-24T16:33:04","date_gmt":"2025-11-24T15:33:04","guid":{"rendered":"https:\/\/teetimespain.com\/?page_id=4249"},"modified":"2026-01-09T13:42:29","modified_gmt":"2026-01-09T12:42:29","slug":"paradordeelsalergolf","status":"publish","type":"page","link":"https:\/\/teetimespain.com\/es\/paradordeelsalergolf\/","title":{"rendered":"Parador de El Saler Golf"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"4249\" class=\"elementor elementor-4249\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2128ffb e-flex e-con-boxed e-con e-parent\" data-id=\"2128ffb\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6769650 elementor-widget elementor-widget-html\" data-id=\"6769650\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section style=\"font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;background:#f7f7f7;margin:0;padding:0\">\r\n\r\n<style>\r\n\/* --- GRID PAQUETE FLEXIBLE --- *\/\r\n.paquete-flex{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 4px 8px rgba(0,0,0,0.1);padding:1.5rem;}\r\n.paquete-flex h3{color:#006400;margin-top:0}\r\n\r\n\/* --- HERO CON CAROUSEL (VERSI\u00d3N ALMERIMAR) --- *\/\r\n.hero{\r\n  position:relative;\r\n  height:380px;\r\n  overflow:hidden;\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n  color:white;\r\n  border-radius:10px;\r\n  margin:1rem 5%;\r\n  box-shadow:0 6px 15px rgba(0,0,0,0.2);\r\n}\r\n\r\n.hero-slider{\r\n  position:absolute;\r\n  inset:0;\r\n  width:100%;\r\n  height:100%;\r\n  border-radius:10px;\r\n  overflow:hidden;\r\n}\r\n\r\n.hero-slider .slide{\r\n  position:absolute;\r\n  inset:0;\r\n  background-size:cover;\r\n  background-position:center;\r\n  opacity:0;\r\n  transition:opacity 1.2s ease-in-out;\r\n  border-radius:10px;\r\n}\r\n\r\n.hero-slider .slide.active{\r\n  opacity:1;\r\n}\r\n\r\n.arrow{\r\n  position:absolute;\r\n  top:50%;\r\n  transform:translateY(-50%);\r\n  background:none!important;\r\n  border:none!important;\r\n  color:white;\r\n  font-size:2.8rem;\r\n  cursor:pointer;\r\n  z-index:5;\r\n  padding:0;\r\n  line-height:1;\r\n}\r\n\r\n.arrow:hover,\r\n.arrow:focus,\r\n.arrow:active{\r\n  background:none!important;\r\n  border:none!important;\r\n  outline:none!important;\r\n  box-shadow:none!important;\r\n  color:white!important;\r\n}\r\n\r\n.arrow.prev{left:25px;}\r\n.arrow.next{right:25px;}\r\n\r\n\r\n\/* POPUP *\/\r\n.popup{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.6);overflow-y:auto;padding:2rem 0;}\r\n.popup-contenido{background:#fff;padding:2rem;border-radius:10px;max-width:750px;width:90%;margin:auto;position:relative;box-shadow:0 4px 20px rgba(0,0,0,0.3);}\r\n.cerrar-popup{position:absolute;top:10px;right:15px;font-size:1.5rem;color:#006400;cursor:pointer;}\r\n.popup form{display:grid;grid-template-columns:1fr 1fr;gap:1rem 2rem;}\r\n@media(max-width:600px){.popup form{grid-template-columns:1fr}}\r\n.popup input,.popup select,.popup textarea{width:100%;padding:.5rem;margin-top:.3rem;border:1px solid #ccc;border-radius:5px;}\r\n.resumen-box{grid-column:span 2;background:#eef8ee;border:1px solid #b6e0b6;border-radius:8px;padding:1rem;margin-top:1rem;color:#004d00;font-weight:500;}\r\n.popup button{grid-column:span 2;background:#009933;color:#fff;border:none;padding:.7rem 1.4rem;border-radius:5px;cursor:pointer;font-weight:bold;margin-top:1rem}\r\n.popup button:hover{background:#007a29;}\r\n<\/style>\r\n\r\n<!-- HERO -->\r\n<header class=\"hero\">\r\n  <div class=\"hero-slider\">\r\n\r\n    <div class=\"slide active\" style=\"background-image:url('https:\/\/teetimespain.com\/wp-content\/uploads\/2025\/12\/parador-saler-3.webp')\"><\/div>\r\n    <div class=\"slide\" style=\"background-image:url('https:\/\/teetimespain.com\/wp-content\/uploads\/2025\/12\/parador-saler-6.webp')\"><\/div>\r\n    <div class=\"slide\" style=\"background-image:url('https:\/\/teetimespain.com\/wp-content\/uploads\/2025\/12\/parador-saler-2.jpg')\"><\/div>\r\n    <div class=\"slide\" style=\"background-image:url('https:\/\/teetimespain.com\/wp-content\/uploads\/2025\/12\/parador-saler-1.webp')\"><\/div>\r\n    <div class=\"slide\" style=\"background-image:url('https:\/\/teetimespain.com\/wp-content\/uploads\/2025\/12\/parador-saler-4.jpg')\"><\/div>\r\n    <div class=\"slide\" style=\"background-image:url('https:\/\/teetimespain.com\/wp-content\/uploads\/2025\/12\/parador-saler-5.jpg')\"><\/div>\r\n    <div class=\"slide\" style=\"background-image:url('https:\/\/teetimespain.com\/wp-content\/uploads\/2025\/12\/parador-saler-10.jpg')\"><\/div>\r\n    <div class=\"slide\" style=\"background-image:url('https:\/\/teetimespain.com\/wp-content\/uploads\/2025\/12\/parador-saler-7.webp')\"><\/div>\r\n    <div class=\"slide\" style=\"background-image:url('https:\/\/teetimespain.com\/wp-content\/uploads\/2025\/12\/parador-saler-8.jpg')\"><\/div>\r\n    <div class=\"slide\" style=\"background-image:url('https:\/\/teetimespain.com\/wp-content\/uploads\/2025\/12\/parador-saler-9.webp')\"><\/div>\r\n\r\n  <\/div>\r\n\r\n  <button class=\"arrow prev\" aria-label=\"Previous slide\">\u276e<\/button>\r\n  <button class=\"arrow next\" aria-label=\"Next slide\">\u276f<\/button>\r\n<\/header>\r\n\r\n\r\n<main style=\"padding:2rem 5%\">\r\n\r\n  <a href=\"\/es\/hoteles\/\" style=\"display:inline-block;text-decoration:none;background:#004d00;color:#fff;padding:.6rem 1.2rem;border-radius:5px;margin-bottom:1.5rem\">\u2190 Volver a lista de hoteles<\/a>\r\n\r\n  <div class=\"intro-box\" style=\"background:#fff;border-left:6px solid #009933;padding:1.4rem;margin-bottom:2rem\">\r\n    El <strong style=\"color:#800000;\">PARADOR EL SALER<\/strong> es un enclave excepcional para quienes valoran el golf, la naturaleza y el relax. Situado junto a su emblem\u00e1tico campo de 18 hoyos, considerado uno de los mejores de Europa, combina un dise\u00f1o moderno con un entorno \u00fanico entre dunas y bosques de pinos. Sus amplias habitaciones, sus vistas al Mediterr\u00e1neo y su ambiente sereno crean el escenario perfecto para relajarse tras un d\u00eda de juego. Un destino que armoniza deporte, paisaje y puro confort.\r\n\r\n  <\/div>\r\n\r\n  <div class=\"paquete-flex\">\r\n    <h3>Paquete de golf flexible \u2013 Parador El Saler<\/h3>\r\n    <p>Crea tu propia escapada de golf: elige noches y d\u00edas de golf en El Saler Golf.<\/p>\r\n    <button id=\"btnFlexible\" style=\"background:#009933;color:#fff;padding:.6rem 1.2rem;border-radius:5px;border:none;cursor:pointer;\">Reserva ahora<\/button>\r\n  <\/div>\r\n\r\n<\/main>\r\n\r\n<!-- POPUP -->\r\n<div id=\"popupReserva\" class=\"popup\">\r\n  <div class=\"popup-contenido\">\r\n    <span class=\"cerrar-popup\">\u00d7<\/span>\r\n    <h3>Formulario de Reserva<\/h3>\r\n\r\n    <form action=\"\">\r\n\r\n      <div>\r\n        <label>Nombre Completo<\/label><input type=\"text\" required>\r\n        <label>Correo Electr\u00f3nico<\/label><input type=\"email\" required>\r\n        <label>Telefono<\/label><input type=\"tel\" required>\r\n\r\n        <label>Fecha de llegada<\/label>\r\n        <input type=\"date\" id=\"fechaLlegada\" required>\r\n\r\n        <p id=\"temporadaTexto\" style=\"font-size:.9rem;color:#004d00\"><\/p>\r\n      <\/div>\r\n\r\n      <div>\r\n\r\n        <label>Numero de hu\u00e9spedes<\/label>\r\n        <select id=\"guests\"><\/select>\r\n\r\n        <label>Numero de habitaciones<\/label>\r\n        <select id=\"numRooms\"><\/select>\r\n\r\n        <label>Golfistas<\/label>\r\n        <select id=\"golfers\"><\/select>\r\n\r\n        <label>No golfistas<\/label>\r\n        <select id=\"nongolfers\"><\/select>\r\n\r\n        <label>Noches<\/label>\r\n        <input type=\"number\" id=\"noches\" min=\"1\" value=\"1\">\r\n\r\n        <label>D\u00edas de Golf(M\u00e1ximo = Noches)<\/label>\r\n        <select id=\"numGF\"><\/select>\r\n\r\n        <label>Tipo pensi\u00f3n<\/label>\r\n        <select id=\"boardType\">\r\n          <option value=\"bb\">Breakfast only<\/option>\r\n          <option value=\"hb\">Half board<\/option>\r\n        <\/select>\r\n\r\n      <\/div>\r\n\r\n      <div style=\"grid-column:span 2\">\r\n        <label>Comentarios adicionales<\/label>\r\n        <textarea rows=\"3\"><\/textarea>\r\n      <\/div>\r\n\r\n      <div id=\"resumenPrecio\" class=\"resumen-box\">\r\n        Select arrival date to calculate prices.\r\n      <\/div>\r\n\r\n      <button type=\"submit\">Enviar Reserva<\/button>\r\n    <input type=\"hidden\" name=\"trp-form-language\" value=\"es\"\/><\/form>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", ()=>{\r\n\r\n\/* ===============================\r\n       SEASONS & PRICES\r\n=============================== *\/\r\nconst seasons = {\r\n  winter:{ golfer:{ bb_gf:175,hb_gf:215,bb:155,hb:195 }, nogolfer:{ bb:135,hb:175 }, single:105 },\r\n  summer:{ golfer:{ bb_gf:190,hb_gf:225,bb:170,hb:210 }, nogolfer:{ bb:145,hb:185 }, single:115 },\r\n  golf:{ golfer:{ bb_gf:245,hb_gf:270,bb:220,hb:260 }, nogolfer:{ bb:175,hb:220 }, single:135 }\r\n};\r\n\r\nfunction getSeason(dateStr){\r\n  const d=new Date(dateStr),m=d.getMonth()+1,day=d.getDate();\r\n  if(m===12||m===1||m===2) return \"winter\";\r\n  if(m===7||m===8) return \"summer\";\r\n  if((m===3&&day>=29)||(m===4&&day<=5)) return \"summer\";\r\n  return \"golf\";\r\n}\r\n\r\n\/* =============================\r\n      ELEMENTOS\r\n============================= *\/\r\nconst popup=document.getElementById(\"popupReserva\");\r\nconst cerrar=document.querySelector(\".cerrar-popup\");\r\nconst btnOpen=document.getElementById(\"btnFlexible\");\r\n\r\nconst fechaLlegada=document.getElementById(\"fechaLlegada\");\r\nconst guestsSelect=document.getElementById(\"guests\");\r\nconst roomsSelect=document.getElementById(\"numRooms\");\r\nconst golfersSelect=document.getElementById(\"golfers\");\r\nconst nongolfersSelect=document.getElementById(\"nongolfers\");\r\nconst nochesInput=document.getElementById(\"noches\");\r\nconst gfSelect=document.getElementById(\"numGF\");\r\nconst boardType=document.getElementById(\"boardType\");\r\nconst resumen=document.getElementById(\"resumenPrecio\");\r\nconst formulario=popup.querySelector(\"form\");\r\nconst comentariosInput=document.querySelector('textarea');\r\n\r\n\/* =============================\r\n      POPUP\r\n============================= *\/\r\nbtnOpen.onclick=e=>{\r\n  e.preventDefault();\r\n  popup.style.display=\"flex\";\r\n  document.body.classList.add(\"no-scroll\");\r\n};\r\ncerrar.onclick=()=>{popup.style.display=\"none\";document.body.classList.remove(\"no-scroll\");};\r\n\r\n\/* =============================\r\n      FECHA MIN\r\n============================= *\/\r\nconst hoy=new Date();\r\nhoy.setDate(hoy.getDate()+15);\r\nfechaLlegada.min=hoy.toISOString().split(\"T\")[0];\r\n\r\n\/* =============================\r\n      INIT GUESTS\r\n============================= *\/\r\nfunction fillSelect(sel,max){\r\n  sel.innerHTML=\"\";\r\n  for(let i=0;i<=max;i++) sel.innerHTML+=`<option value=\"${i}\">${i}<\/option>`;\r\n}\r\nfillSelect(guestsSelect,20);\r\n\r\n\/* =============================\r\n   GUESTS \u2192 ROOMS \/ GOLFERS\r\n============================= *\/\r\nguestsSelect.onchange=()=>{\r\n  const guests=parseInt(guestsSelect.value)||0;\r\n  if(!guests) return;\r\n\r\n  const minRooms=Math.ceil(guests\/2);\r\n  roomsSelect.innerHTML=\"\";\r\n  for(let i=minRooms;i<=guests;i++) roomsSelect.innerHTML+=`<option value=\"${i}\">${i}<\/option>`;\r\n  roomsSelect.value=minRooms;\r\n\r\n  const minGolfers=Math.ceil(guests\/2);\r\n  golfersSelect.innerHTML=\"\";\r\n  for(let i=minGolfers;i<=guests;i++) golfersSelect.innerHTML+=`<option value=\"${i}\">${i}<\/option>`;\r\n  golfersSelect.value=minGolfers;\r\n\r\n  actualizarNonGolfers();\r\n  calcularPrecio();\r\n};\r\n\r\n\/* =============================\r\n   GOLFERS \u2192 NON-GOLFERS (AUTO)\r\n============================= *\/\r\nfunction actualizarNonGolfers(){\r\n  const guests=parseInt(guestsSelect.value)||0;\r\n  const golfers=parseInt(golfersSelect.value)||0;\r\n  const nongolf=guests-golfers;\r\n\r\n  nongolfersSelect.innerHTML=`<option value=\"${nongolf}\">${nongolf}<\/option>`;\r\n  nongolfersSelect.value=nongolf;\r\n  nongolfersSelect.disabled=true;\r\n}\r\n\r\ngolfersSelect.onchange=()=>{\r\n  actualizarNonGolfers();\r\n  calcularPrecio();\r\n};\r\n\r\nroomsSelect.onchange=calcularPrecio;\r\nnochesInput.onchange=()=>{fillSelect(gfSelect,parseInt(nochesInput.value)||0);calcularPrecio();}\r\ngfSelect.onchange=calcularPrecio;\r\nboardType.onchange=calcularPrecio;\r\nfechaLlegada.onchange=calcularPrecio;\r\ncomentariosInput?.addEventListener(\"input\",calcularPrecio);\r\n\r\n\/* =============================\r\n      CALCULAR PRECIO\r\n============================= *\/\r\nfunction calcularPrecio(){\r\n\r\n  const llegada=fechaLlegada.value;\r\n  const noches=parseInt(nochesInput.value)||0;\r\n  const guests=parseInt(guestsSelect.value)||0;\r\n  const golfers=parseInt(golfersSelect.value)||0;\r\n  const nongolf=guests-golfers;\r\n  const rooms=parseInt(roomsSelect.value)||0;\r\n  const gfDays=parseInt(gfSelect.value)||0;\r\n  const board=boardType.value;\r\n\r\n  if(!llegada||!noches||!guests) return;\r\n\r\n  const season=getSeason(llegada);\r\n  const S=seasons[season];\r\n\r\n  const p_gf=S.golfer[board+\"_gf\"];\r\n  const p_no_gf=S.golfer[board];\r\n  const p_nogolf=S.nogolfer[board];\r\n  const p_single=S.single;\r\n\r\n  const nochesGF=gfDays;\r\n  const nochesNoGF=noches-gfDays;\r\n\r\n  const totalGolfers=golfers*(nochesGF*p_gf+nochesNoGF*p_no_gf);\r\n  const totalNoGolf=nongolf*(noches*p_nogolf);\r\n\r\n  let ocupacion=new Array(rooms).fill(1);\r\n  let restantes=guests-rooms;\r\n  for(let i=0;i<rooms&&restantes>0;i++){ocupacion[i]++;restantes--;}\r\n  const singles=ocupacion.filter(n=>n===1).length;\r\n  const costeSingle=singles*p_single*noches;\r\n\r\n  const total=totalGolfers+totalNoGolf+costeSingle;\r\n\r\n  const precioGolfer=(totalGolfers\/golfers)||0;\r\n  const precioNoGolfer=(totalNoGolf\/(nongolf||1))||0;\r\n\r\n  const checkOut=new Date(llegada);\r\n  checkOut.setDate(checkOut.getDate()+noches);\r\n\r\n  let comentariosHTML=\"\";\r\n  if(comentariosInput && comentariosInput.value.trim()){\r\n    comentariosHTML=`<br><br>\ud83d\udcdd <strong>Comments<\/strong><br>${comentariosInput.value.trim()}`;\r\n  }\r\n\r\n  resumen.innerHTML=`\r\n  <strong>Parador El Saler \u2013 Flexible Golf Stay<\/strong><br><br>\r\n\r\n  \ud83c\udfe8 <strong>Stay<\/strong><br>\r\n  \u2022 Check-in: ${llegada}<br>\r\n  \u2022 Check-out: ${checkOut.toISOString().split(\"T\")[0]}<br>\r\n  \u2022 Nights: ${noches}<br>\r\n  \u2022 Guests: ${guests} (${golfers} golfers \/ ${nongolf} non-golfers)<br><br>\r\n\r\n  \u26f3 <strong>Golf<\/strong><br>\r\n  \u2022 Campo de Golf El Saler<br>\r\n  \u2022 Golf days: ${gfDays}<br><br>\r\n\r\n  \ud83d\udcb0 <strong>Price breakdown<\/strong><br>\r\n  \u2022 Golfers: ${golfers} \u00d7 ${precioGolfer.toFixed(2)} \u20ac = ${totalGolfers.toFixed(2)} \u20ac<br>\r\n  \u2022 Non-golfers: ${nongolf} \u00d7 ${precioNoGolfer.toFixed(2)} \u20ac = ${totalNoGolf.toFixed(2)} \u20ac<br>\r\n  \u2022 Single supplement: ${costeSingle.toFixed(2)} \u20ac<br><br>\r\n\r\n  <strong style=\"color:#006400;font-size:1.2rem\">TOTAL: ${total.toFixed(2)} \u20ac<\/strong>\r\n  ${comentariosHTML}\r\n  `;\r\n}\r\n\r\n\/* =============================\r\n      ADD TO CART\r\n============================= *\/\r\nformulario.onsubmit=e=>{\r\n  e.preventDefault();\r\n  const KEY=\"ttCartItems\";\r\n  const arr=JSON.parse(localStorage.getItem(KEY)||\"[]\");\r\n  const total=parseFloat(resumen.innerText.match(\/TOTAL:\\s*([\\d\\.]+)\/)[1]);\r\n\r\n  arr.push({\r\n    tipo: \"hotel\",  \r\n    id:crypto.randomUUID(),\r\n    campo:{id:\"parador-el-saler\",nombre:\"Parador El Saler \u2013 Flexible Golf Stay\"},\r\n    fecha:fechaLlegada.value,\r\n    jugadores:guestsSelect.value,\r\n    total,\r\n    totalTexto:total.toFixed(2)+\" \u20ac\",\r\n    detalles:`<div>${resumen.innerHTML}<\/div>`,\r\n    agregadoEn:Date.now()\r\n  });\r\n\r\n  localStorage.setItem(KEY,JSON.stringify(arr));\r\n  cerrar.click();\r\n  window.location.assign(\"\/carrito\/\");\r\n};\r\n\r\n});\r\n<\/script>\r\n\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>\u276e \u276f \u2190 Back to hotels list The PARADOR EL SALER is an exceptional enclave for those who value golf, nature and relaxation. Located next to its iconic 18-hole course, considered one of the best in Europe, it combines modern design with a unique setting among dunes and pine forests. Its spacious rooms, views of [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[27],"tags":[],"class_list":["post-4249","page","type-page","status-publish","hentry","category-hotelesssssssssssss"],"_links":{"self":[{"href":"https:\/\/teetimespain.com\/es\/wp-json\/wp\/v2\/pages\/4249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/teetimespain.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/teetimespain.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/teetimespain.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/teetimespain.com\/es\/wp-json\/wp\/v2\/comments?post=4249"}],"version-history":[{"count":130,"href":"https:\/\/teetimespain.com\/es\/wp-json\/wp\/v2\/pages\/4249\/revisions"}],"predecessor-version":[{"id":5113,"href":"https:\/\/teetimespain.com\/es\/wp-json\/wp\/v2\/pages\/4249\/revisions\/5113"}],"wp:attachment":[{"href":"https:\/\/teetimespain.com\/es\/wp-json\/wp\/v2\/media?parent=4249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/teetimespain.com\/es\/wp-json\/wp\/v2\/categories?post=4249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/teetimespain.com\/es\/wp-json\/wp\/v2\/tags?post=4249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}