
{"id":98042,"date":"2026-10-27T07:29:42","date_gmt":"2026-10-27T06:29:42","guid":{"rendered":"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/"},"modified":"2026-10-27T07:29:42","modified_gmt":"2026-10-27T06:29:42","slug":"tour-booking","status":"publish","type":"page","link":"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/","title":{"rendered":"Tour Booking"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"98042\" class=\"elementor elementor-98042\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ab702701 e-con-full e-con\" data-id=\"ab702701\" data-element_type=\"container\" data-settings=\"{&quot;content_width&quot;:&quot;full&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ab702702 elementor-widget elementor-widget-html\" data-id=\"ab702702\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<iframe id=\"ab-tour-booking-test\" title=\"AlbanianBus tour booking\" allow=\"geolocation\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"display:block;width:100%;height:1500px;border:0\" srcdoc=\"&lt;!doctype html&gt;&lt;html lang=&quot;en&quot;&gt;&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width,initial-scale=1&quot;&gt;&lt;meta name=&quot;robots&quot; content=&quot;noindex,nofollow&quot;&gt;&lt;title&gt;AlbanianBus \u00b7 Tour booking&lt;\/title&gt;&lt;style&gt;\n*{box-sizing:border-box}body{margin:0;background:#f5f2fa;color:#291e3d;font:16px\/1.5 system-ui,sans-serif}main{max-width:980px;margin:auto;padding:25px 16px 50px}h1{font-size:clamp(26px,5vw,38px);line-height:1.15;margin:8px 0}h2{font-size:22px;margin:0 0 16px}.top{display:flex;align-items:center;justify-content:space-between;gap:15px}.tag{font-size:12px;font-weight:800;letter-spacing:.08em;color:#703da5}.test{padding:12px 16px;background:#fff0d8;border-radius:12px;margin:20px 0;font-size:14px}.layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.8fr);gap:20px;align-items:start}.card{background:white;border:1px solid #e1d6ec;border-radius:18px;padding:22px;min-width:0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.categories{grid-template-columns:repeat(3,minmax(0,1fr))}label{display:grid;gap:6px;font-size:14px;font-weight:650;margin-bottom:14px}input,select,button{font:inherit;border-radius:10px;padding:12px;width:100%;min-width:0}input,select{border:1px solid #cab8db;background:white;color:#291e3d}button{border:0;background:#703da5;color:white;font-weight:700;cursor:pointer;min-height:46px}button:disabled{opacity:.5;cursor:wait}.outline{background:white;color:#703da5;border:1px solid #cab8db}.small{font-size:13px;color:#71657f}.note{background:#f5f2fa;border-radius:12px;padding:12px;margin:12px 0}.price{font-size:36px;font-weight:800;color:#703da5}.line{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #eee}.line span:last-child{text-align:right;overflow-wrap:anywhere}#pickupMap{height:235px;border-radius:12px;margin:12px 0;z-index:1}#error{color:#9a303a;background:#fff0ef;padding:12px;border-radius:10px;margin:10px 0}#error:empty{display:none}.tick{display:flex;align-items:flex-start;gap:10px}.tick input{width:18px;margin-top:4px}.buttons{display:flex;gap:10px;margin-top:15px}#checkout{min-width:0;width:100%;overflow:hidden}#checkout iframe{min-width:0!important;width:100%!important;max-width:100%!important}.hide,[hidden]{display:none!important}gmp-place-autocomplete{width:100%;margin-bottom:14px}a{color:#703da5}@media(max-width:760px){main{padding:18px 10px 35px}.layout,.grid{grid-template-columns:1fr}.grid.categories{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.categories label{font-size:12px;line-height:1.4;min-width:0}.categories input{padding:10px 6px;min-height:44px}.card{padding:18px}.top{align-items:flex-start}#pickupMap{height:210px}.buttons{flex-direction:column}#paymentCard{padding:12px 0}#paymentCard h2,#paymentCard&gt;p{padding:0 16px}}.departures{border:0;padding:0;margin:0 0 14px;min-width:0}.departures legend{font-size:14px;font-weight:650;margin-bottom:8px}.departure-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.departure-choice{display:flex;align-items:center;gap:7px;margin:0;padding:12px 8px;border:1px solid #cab8db;border-radius:12px;cursor:pointer;min-width:0}.departure-choice:has(input:checked){background:#f0e7fa;border:2px solid #703da5;padding:11px 7px}.departure-choice:focus-within{outline:2px solid #703da5;outline-offset:3px}.departure-choice input{width:17px;height:17px;padding:0;margin:0;flex:0 0 17px;accent-color:#703da5}.departure-choice span{display:grid;gap:3px}.departure-choice small{font-size:13px;color:#71657f}.departure-choice strong{font-size:14px}@media(max-width:360px){.departure-options{gap:5px}.departure-choice{padding:10px 5px;gap:4px}.departure-choice:has(input:checked){padding:9px 4px}.departure-choice strong{font-size:13px}}&lt;\/style&gt;&lt;link rel=&quot;stylesheet&quot; href=&quot;https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.css&quot;&gt;&lt;\/head&gt;&lt;body&gt;&lt;main&gt;\n&lt;div class=&quot;top&quot;&gt;&lt;div&gt;&lt;div class=&quot;tag&quot;&gt;ALBANIANBUS \u00b7 TOURS&lt;\/div&gt;&lt;h1 id=&quot;tourHeading&quot;&gt;Book your tour&lt;\/h1&gt;&lt;p class=&quot;small&quot; id=&quot;priceIntro&quot;&gt;Choose your tour date and payment option&lt;\/p&gt;&lt;\/div&gt;&lt;a href=&quot;https:\/\/albanianbus.com\/wordpress\/index.php\/berat-unesco-day-tour\/&quot; id=&quot;tourDetailsLink&quot; style=&quot;font-size:13px&quot;&gt;Tour details \u2197&lt;\/a&gt;&lt;\/div&gt;\n&lt;div class=&quot;test&quot;&gt;&lt;strong&gt;TEST BOOKING&lt;\/strong&gt; \u00b7 This page does not charge real money or reserve a real tour. No real reservation is created.&lt;\/div&gt;\n&lt;div id=&quot;error&quot; role=&quot;alert&quot;&gt;&lt;\/div&gt;&lt;div class=&quot;layout&quot;&gt;&lt;section class=&quot;card&quot; id=&quot;formCard&quot;&gt;&lt;form id=&quot;bookingForm&quot;&gt;\n&lt;h2&gt;\u2460 Your tour&lt;\/h2&gt;&lt;div class=&quot;grid&quot;&gt;&lt;label&gt;Date&lt;input id=&quot;tourDate&quot; type=&quot;date&quot; required&gt;&lt;\/label&gt;&lt;\/div&gt;&lt;div class=&quot;grid categories&quot;&gt;&lt;label&gt;&lt;span id=&quot;adultLabel&quot;&gt;Adults&lt;\/span&gt;&lt;input id=&quot;adults&quot; type=&quot;number&quot; min=&quot;0&quot; max=&quot;55&quot; value=&quot;2&quot; required&gt;&lt;\/label&gt;&lt;label&gt;&lt;span id=&quot;childLabel&quot;&gt;Children&lt;\/span&gt;&lt;input id=&quot;children&quot; type=&quot;number&quot; min=&quot;0&quot; max=&quot;55&quot; value=&quot;0&quot; required&gt;&lt;\/label&gt;&lt;label&gt;&lt;span id=&quot;infantLabel&quot;&gt;Infants&lt;\/span&gt;&lt;input id=&quot;infants&quot; type=&quot;number&quot; min=&quot;0&quot; max=&quot;55&quot; value=&quot;0&quot; required&gt;&lt;\/label&gt;&lt;\/div&gt;\n&lt;fieldset class=&quot;departures&quot;&gt;&lt;legend&gt;Departure \/ pickup area&lt;\/legend&gt;&lt;div class=&quot;departure-options&quot;&gt;&lt;label class=&quot;departure-choice&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;city&quot; value=&quot;Tirana&quot; checked required&gt;&lt;span&gt;&lt;strong&gt;Tirana&lt;\/strong&gt;&lt;small data-pickup-city=&quot;Tirana&quot;&gt;07:30&lt;\/small&gt;&lt;\/span&gt;&lt;\/label&gt;&lt;label class=&quot;departure-choice&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;city&quot; value=&quot;Durres&quot;  required&gt;&lt;span&gt;&lt;strong&gt;Durr\u00ebs&lt;\/strong&gt;&lt;small data-pickup-city=&quot;Durres&quot;&gt;08:00&lt;\/small&gt;&lt;\/span&gt;&lt;\/label&gt;&lt;label class=&quot;departure-choice&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;city&quot; value=&quot;Golem&quot;  required&gt;&lt;span&gt;&lt;strong&gt;Golem&lt;\/strong&gt;&lt;small data-pickup-city=&quot;Golem&quot;&gt;08:15&lt;\/small&gt;&lt;\/span&gt;&lt;\/label&gt;&lt;\/div&gt;&lt;\/fieldset&gt;&lt;p class=&quot;note&quot; id=&quot;pickupNote&quot;&gt;Pickup at 07:30 \u00b7 Albania local time&lt;\/p&gt;\n&lt;div id=&quot;audioLanguageSection&quot; hidden&gt;&lt;label&gt;Audio guide language&lt;select id=&quot;audioLanguage&quot;&gt;&lt;\/select&gt;&lt;\/label&gt;&lt;p class=&quot;small&quot;&gt;Choose your audio-guide language. This is separate from the live guide\u2019s spoken language.&lt;\/p&gt;&lt;\/div&gt;&lt;h2&gt;\u2461 Your accommodation location&lt;\/h2&gt;&lt;p class=&quot;small&quot;&gt;Mark where you\u2019re staying. We\u2019ll confirm your exact pickup point and time before departure.&lt;\/p&gt;&lt;label&gt;Hotel \/ Airbnb name (optional)&lt;input id=&quot;hotel&quot; maxlength=&quot;200&quot; placeholder=&quot;Hotel, Airbnb or apartment name&quot;&gt;&lt;\/label&gt;&lt;label&gt;Address, landmark or entrance instructions&lt;input id=&quot;address&quot; maxlength=&quot;400&quot; placeholder=&quot;Enter an address or confirm a map pin&quot;&gt;&lt;\/label&gt;&lt;button type=&quot;button&quot; id=&quot;openMap&quot; class=&quot;outline&quot;&gt;\ud83d\udccd Choose on map&lt;\/button&gt;&lt;div id=&quot;mapPanel&quot; hidden&gt;&lt;p class=&quot;small&quot;&gt;Tap the map or drag the purple pin to your accommodation.&lt;\/p&gt;&lt;div id=&quot;pickupMap&quot; aria-label=&quot;Accommodation location map&quot;&gt;&lt;\/div&gt;&lt;div class=&quot;buttons&quot;&gt;&lt;button type=&quot;button&quot; id=&quot;locateMe&quot; class=&quot;outline&quot;&gt;Use my current location&lt;\/button&gt;&lt;button type=&quot;button&quot; id=&quot;confirmPin&quot;&gt;Confirm this location&lt;\/button&gt;&lt;\/div&gt;&lt;p class=&quot;small&quot;&gt;Use current location only if you are at your accommodation. Map tiles are provided by OpenStreetMap.&lt;\/p&gt;&lt;\/div&gt;&lt;p id=&quot;pinStatus&quot; class=&quot;small&quot; role=&quot;status&quot; aria-live=&quot;polite&quot;&gt;No map pin selected. You can also enter an address above.&lt;\/p&gt;&lt;button type=&quot;button&quot; id=&quot;clearPin&quot; class=&quot;outline&quot; hidden&gt;Remove map pin&lt;\/button&gt;\n&lt;h2 style=&quot;margin-top:24px&quot;&gt;\u2462 Lead traveller&lt;\/h2&gt;&lt;label&gt;Full name&lt;input id=&quot;name&quot; autocomplete=&quot;name&quot; maxlength=&quot;200&quot; required&gt;&lt;\/label&gt;&lt;div class=&quot;grid&quot;&gt;&lt;label&gt;Email&lt;input id=&quot;email&quot; type=&quot;email&quot; autocomplete=&quot;email&quot; maxlength=&quot;200&quot; required&gt;&lt;\/label&gt;&lt;label&gt;Phone \/ WhatsApp&lt;input id=&quot;phone&quot; type=&quot;tel&quot; autocomplete=&quot;tel&quot; maxlength=&quot;30&quot; placeholder=&quot;+ country code&quot; required&gt;&lt;\/label&gt;&lt;\/div&gt;\n&lt;label&gt;Payment option&lt;select id=&quot;paymentOption&quot;&gt;&lt;option value=&quot;full&quot;&gt;Pay in full&lt;\/option&gt;&lt;option value=&quot;deposit&quot;&gt;Pay 20% deposit&lt;\/option&gt;&lt;\/select&gt;&lt;\/label&gt;&lt;p id=&quot;paymentBreakdown&quot; class=&quot;small&quot;&gt;&lt;\/p&gt;&lt;details style=&quot;margin:16px 0&quot;&gt;&lt;summary style=&quot;cursor:pointer;color:#703da5&quot;&gt;Cancellation &amp; refund policy&lt;\/summary&gt;&lt;p id=&quot;tourTermsText&quot; class=&quot;small&quot;&gt;&lt;\/p&gt;&lt;\/details&gt;&lt;label class=&quot;tick&quot;&gt;&lt;input id=&quot;acceptPolicy&quot; type=&quot;checkbox&quot; required&gt;&lt;span&gt;I have read and accept the cancellation and refund policy.&lt;\/span&gt;&lt;\/label&gt;&lt;label class=&quot;tick&quot;&gt;&lt;input id=&quot;accept&quot; type=&quot;checkbox&quot; required&gt;&lt;span&gt;I understand this is a test booking and no real tour will be reserved.&lt;\/span&gt;&lt;\/label&gt;&lt;button id=&quot;reviewButton&quot; type=&quot;submit&quot; disabled&gt;Review test booking \u2192&lt;\/button&gt;&lt;\/form&gt;&lt;\/section&gt;\n&lt;aside class=&quot;card&quot; id=&quot;summaryCard&quot;&gt;&lt;div class=&quot;tag&quot; id=&quot;summaryTourName&quot;&gt;YOUR TOUR&lt;\/div&gt;&lt;h2 style=&quot;margin-top:10px&quot;&gt;Your booking&lt;\/h2&gt;&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Date&lt;\/span&gt;&lt;span id=&quot;summaryDate&quot;&gt;Choose a date&lt;\/span&gt;&lt;\/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Departure&lt;\/span&gt;&lt;span id=&quot;summaryCity&quot;&gt;Tirana&lt;\/span&gt;&lt;\/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Pickup time&lt;\/span&gt;&lt;span id=&quot;summaryTime&quot;&gt;07:30&lt;\/span&gt;&lt;\/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Travellers&lt;\/span&gt;&lt;span id=&quot;summaryPax&quot;&gt;2 travellers&lt;\/span&gt;&lt;\/div&gt;&lt;div id=&quot;categorySummary&quot;&gt;&lt;\/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Accommodation&lt;\/span&gt;&lt;span id=&quot;summaryHotel&quot;&gt;Enter your hotel&lt;\/span&gt;&lt;\/div&gt;&lt;p class=&quot;small&quot; style=&quot;margin:18px 0 0&quot;&gt;Total \u00b7 EUR&lt;\/p&gt;&lt;div class=&quot;price&quot; id=&quot;total&quot;&gt;\u20ac60&lt;\/div&gt;&lt;p class=&quot;small&quot;&gt;Full payment is required when booking. This checkout is in test mode; no real payment is taken.&lt;\/p&gt;&lt;\/aside&gt;&lt;\/div&gt;\n&lt;section id=&quot;reviewCard&quot; class=&quot;card&quot; hidden style=&quot;margin-top:20px&quot;&gt;&lt;h2&gt;Review your test booking&lt;\/h2&gt;&lt;div id=&quot;reviewDetails&quot;&gt;&lt;\/div&gt;&lt;p class=&quot;test&quot;&gt;No real charge or reservation. Test checkout uses your existing Stripe test connection.&lt;\/p&gt;&lt;div class=&quot;buttons&quot;&gt;&lt;button id=&quot;editBooking&quot; class=&quot;outline&quot;&gt;Edit details&lt;\/button&gt;&lt;button id=&quot;payButton&quot;&gt;Continue to test card payment \u2192&lt;\/button&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section id=&quot;paymentCard&quot; class=&quot;card&quot; hidden style=&quot;margin-top:20px&quot;&gt;&lt;h2&gt;Stripe test payment&lt;\/h2&gt;&lt;p class=&quot;small&quot;&gt;Use a Stripe test card only. No real payment is taken.&lt;\/p&gt;&lt;div id=&quot;checkout&quot;&gt;&lt;\/div&gt;&lt;div class=&quot;buttons&quot;&gt;&lt;button id=&quot;refreshPayment&quot; class=&quot;outline&quot;&gt;Check payment status&lt;\/button&gt;&lt;\/div&gt;&lt;\/section&gt;\n&lt;section id=&quot;success&quot; class=&quot;card&quot; hidden style=&quot;margin-top:20px&quot;&gt;&lt;\/section&gt;\n&lt;\/main&gt;&lt;script&gt;\n(()=&gt;{\nconst $=id=&gt;document.getElementById(id),API='https:\/\/eyhphryauiihzmnmcqlk.supabase.co\/functions\/v1\/tour-booking\/';\nconst tourId=Number(new URL(parent.location.href).searchParams.get('tour_id')||1);\n\nlet map=null,marker=null,pin=null,pinConfirmed=false;\nlet config=null,draft=null,booking=null,checkout=null,poll=null,requestId=crypto.randomUUID();\nlet token=sessionStorage.getItem('ab-tour-test-token');if(!token){token=crypto.randomUUID()+crypto.randomUUID();sessionStorage.setItem('ab-tour-test-token',token)}\nconst fmt=n=&gt;new Intl.NumberFormat('en-IE',{style:'currency',currency:'EUR'}).format(n\/100),esc=s=&gt;String(s??'').replace(\/[&amp;&lt;&gt;&quot;']\/g,c=&gt;({'&amp;':'&amp;amp;','&lt;':'&amp;lt;','&gt;':'&amp;gt;','&quot;':'&amp;quot;',&quot;'&quot;:'&amp;#39;'}[c]));\nfunction error(s){$('error').textContent=s||'';if(s)$('error').scrollIntoView({behavior:'smooth',block:'center'})}\nasync function api(action,data){const r=await fetch(API+action+'?tour_id='+encodeURIComponent(tourId),{method:data?'POST':'GET',headers:{'Content-Type':'application\/json',Authorization:'Bearer '+token},body:data?JSON.stringify(data):undefined});const j=await r.json();if(!r.ok)throw Error(j.error||'Please try again');return j}\nfunction scrollTo(id){try{const frame=parent.document.getElementById('ab-tour-booking-test');if(frame){parent.scrollTo({top:Math.max(0,frame.getBoundingClientRect().top+parent.scrollY+$(id).getBoundingClientRect().top+window.scrollY-110),behavior:'smooth'});return}}catch{}$(id).scrollIntoView({behavior:'smooth',block:'start'})}\nfunction dateOpen(date){return !!date&amp;&amp;(!config.available_from||date&gt;=config.available_from)&amp;&amp;(!config.available_until||date&lt;=config.available_until)&amp;&amp;(config.operating_days||[0,1,2,3,4,5,6]).includes(new Date(date+'T12:00:00Z').getUTCDay())&amp;&amp;!(config.closed_dates||[]).includes(date);}\n$('tourDate').addEventListener('change',()=&gt;{$('tourDate').setCustomValidity(config&amp;&amp;!dateOpen($('tourDate').value)?'This tour does not operate on that date. Choose another date.':'');$('tourDate').reportValidity();});\nfunction counts(){return {adults:Number($('adults').value),children:Number($('children').value),infants:Number($('infants').value)}}\nfunction quoteCounts(d){const counts={adult:d.adults,child:d.children,infant:d.infants};const lines=config.ticket_categories.map(c=&gt;({...c,quantity:counts[c.key]||0})).filter(c=&gt;c.quantity&gt;0);return {lines,passengers:d.adults+d.children+d.infants,total_cents:lines.reduce((n,c)=&gt;n+c.quantity*c.price_cents,0)}}\nfunction summary(){if(!config)return;const city=document.querySelector('input[name=&quot;city&quot;]:checked').value,q=quoteCounts(counts());$('summaryCity').textContent=city==='Durres'?'Durr\u00ebs':city;$('summaryTime').textContent=config.pickup_times[city];$('summaryDate').textContent=$('tourDate').value||'Choose a date';$('summaryPax').textContent=q.passengers+' total';$('categorySummary').innerHTML=q.lines.map(c=&gt;'&lt;div class=&quot;line&quot;&gt;&lt;span&gt;'+esc(c.label)+' \u00d7 '+c.quantity+'&lt;\/span&gt;&lt;span&gt;'+(c.price_cents===0?'Free':fmt(c.quantity*c.price_cents))+'&lt;\/span&gt;&lt;\/div&gt;').join('');$('summaryHotel').textContent=$('hotel').value||$('address').value||(pinConfirmed?'Map pin confirmed':'Choose your accommodation');$('total').textContent=fmt(q.total_cents);const due=$('paymentOption').value==='deposit'?Math.ceil(q.total_cents\/5):q.total_cents;$('paymentBreakdown').textContent='Pay now: '+fmt(due)+' \u00b7 Balance before departure: '+fmt(q.total_cents-due);$('pickupNote').textContent='Pickup at '+config.pickup_times[city]+' \u00b7 Albania local time';}\nfunction script(src){return new Promise((resolve,reject)=&gt;{const s=document.createElement('script');s.src=src;s.onload=resolve;s.onerror=()=&gt;reject(Error('Could not load payment form. Please try again.'));document.head.append(s)})}\nfunction details(d){return '&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Pay now&lt;\/span&gt;&lt;strong&gt;'+fmt(d.payment_option==='deposit'?Math.ceil(quoteCounts(d).total_cents\/5):quoteCounts(d).total_cents)+'&lt;\/strong&gt;&lt;\/div&gt;'+ (d.audio_language?'&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Audio guide&lt;\/span&gt;&lt;span&gt;'+esc(config.audio_languages.find(l=&gt;l.code===d.audio_language)?.label||d.audio_language)+'&lt;\/span&gt;&lt;\/div&gt;':'')+'&lt;div class=&quot;line&quot;&gt;&lt;span&gt;'+esc(config.tour_name)+'&lt;\/span&gt;&lt;strong&gt;'+fmt(quoteCounts(d).total_cents)+'&lt;\/strong&gt;&lt;\/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Date&lt;\/span&gt;&lt;span&gt;'+esc(d.service_date)+'&lt;\/span&gt;&lt;\/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Pickup&lt;\/span&gt;&lt;span&gt;'+esc(d.pickup_city)+' \u00b7 '+esc(config.pickup_times[d.pickup_city])+' (Albania time)&lt;\/span&gt;&lt;\/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Hotel&lt;\/span&gt;&lt;span&gt;'+esc(d.hotel_name)+'&lt;br&gt;'+esc(d.hotel_address)+(d.latitude!=null?'&lt;br&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener&quot; href=&quot;https:\/\/www.google.com\/maps?q='+d.latitude+','+d.longitude+'&quot;&gt;View confirmed map pin \u2197&lt;\/a&gt;':'')+'&lt;\/span&gt;&lt;\/div&gt;&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Travellers&lt;\/span&gt;&lt;span&gt;'+d.passengers+'&lt;\/span&gt;&lt;\/div&gt;'+quoteCounts(d).lines.map(c=&gt;'&lt;div class=&quot;line&quot;&gt;&lt;span&gt;'+esc(c.label)+' \u00d7 '+c.quantity+'&lt;\/span&gt;&lt;span&gt;'+(c.price_cents===0?'Free':fmt(c.quantity*c.price_cents))+'&lt;\/span&gt;&lt;\/div&gt;').join('')+'&lt;div class=&quot;line&quot;&gt;&lt;span&gt;Lead traveller&lt;\/span&gt;&lt;span&gt;'+esc(d.customer_name)+'&lt;br&gt;'+esc(d.customer_email)+'&lt;\/span&gt;&lt;\/div&gt;'}\n$('bookingForm').onsubmit=e=&gt;{e.preventDefault();if(!config)return;error('');const q=quoteCounts(counts());if(q.passengers&lt;1||q.passengers&gt;55||q.total_cents&lt;=0){error('Choose 1\u201355 travellers, including at least one adult or child.');return;}if(!$('tourDate').reportValidity())return;if(!dateOpen($('tourDate').value)){error('This tour does not operate on that date. Please choose another date.');return;}if(pin&amp;&amp;!pinConfirmed){error('Confirm your map pin or remove it before continuing.');return;}if(!$('address').value.trim()&amp;&amp;!pinConfirmed){error('Enter your accommodation address or confirm a map pin.');return;}draft={payment_option:$('paymentOption').value,settings_updated_at:config.settings_updated_at,audio_language:$('audioLanguage').value||null,request_id:requestId,service_date:$('tourDate').value,...counts(),passengers:quoteCounts(counts()).passengers,pickup_city:document.querySelector('input[name=&quot;city&quot;]:checked').value,hotel_name:$('hotel').value.trim(),latitude:pinConfirmed?pin.lat:null,longitude:pinConfirmed?pin.lng:null,hotel_address:$('address').value.trim(),customer_name:$('name').value.trim(),customer_email:$('email').value.trim(),customer_phone:$('phone').value.trim(),accept_terms:$('acceptPolicy').checked,terms_version:config.terms_version,accept_test:$('accept').checked};$('reviewDetails').innerHTML=details(draft);$('reviewCard').hidden=false;scrollTo('reviewCard')};\n$('editBooking').onclick=()=&gt;{if(booking){error('A test booking has already been created. Reload to start a new test.');return}$('reviewCard').hidden=true;scrollTo('formCard')};\nasync function checkPayment(){if(!booking)return;try{const j=await api('status',{id:booking.id});booking=j.booking;if(booking.status==='paid_test'){clearInterval(poll);if(checkout){checkout.destroy();checkout=null}$('paymentCard').hidden=true;$('reviewCard').hidden=true;$('success').hidden=false;$('success').innerHTML='&lt;h2&gt;\u2713 Stripe test payment verified&lt;\/h2&gt;&lt;p&gt;Reference: &lt;strong&gt;'+esc(booking.reference)+'&lt;\/strong&gt;&lt;\/p&gt;&lt;p&gt;'+esc(booking.pickup_city)+' \u00b7 '+esc(booking.service_date)+' \u00b7 '+esc(booking.pickup_time.slice(0,5))+' (Albania time)&lt;\/p&gt;&lt;p&gt;This is a test record only. No real tour is reserved.&lt;\/p&gt;'+(j.ticket_url?'&lt;p&gt;&lt;a class=&quot;button&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;'+esc(j.ticket_url)+'&quot;&gt;\ud83c\udfab Open QR ticket&lt;\/a&gt;&lt;\/p&gt;&lt;p&gt;'+esc(j.email_status==='sent'?'Your test ticket has been emailed.':j.email_status==='blocked_test'?'Test email delivery is limited to our owner\u2019s addresses. Your QR ticket is available above.':'If the ticket email does not arrive, contact our team. Your QR ticket is available above.')+'&lt;\/p&gt;':'');scrollTo('success')}}catch(e){error(e.message)}}\n$('payButton').onclick=async()=&gt;{error('');$('payButton').disabled=true;try{if(!booking)booking=await api('create',draft);const j=await api('payment',{id:booking.id});if(j.booking)booking=j.booking;if(!j.client_secret){await checkPayment();return}if(!window.Stripe)await script('https:\/\/js.stripe.com\/v3\/');if(checkout)checkout.destroy();$('paymentCard').hidden=false;checkout=await Stripe(j.publishable_key).initEmbeddedCheckout({clientSecret:j.client_secret,onComplete:checkPayment});checkout.mount('#checkout');clearInterval(poll);let tries=0;poll=setInterval(()=&gt;{if(++tries&gt;80){clearInterval(poll);return}checkPayment()},4000);scrollTo('paymentCard')}catch(e){error(e.message)}finally{$('payButton').disabled=false}};\n\nconst cityCenters={Tirana:[41.3275,19.8187],Durres:[41.3236,19.454],Golem:[41.247,19.523],Shkoder:[42.0693,19.5033]};\nfunction invalidatePin(){pinConfirmed=false;$('pinStatus').textContent='Pin moved \u2014 confirm this location to save it.';$('confirmPin').textContent='Confirm this location';$('clearPin').hidden=false;summary();}\nfunction choosePin(lat,lng){if(lat&lt;39||lat&gt;43||lng&lt;18||lng&gt;22){$('pinStatus').textContent='Choose your accommodation in Albania.';return;}pin={lat:Number(lat.toFixed(6)),lng:Number(lng.toFixed(6))};marker.setLatLng([pin.lat,pin.lng]);invalidatePin();}\n$('openMap').onclick=async()=&gt;{try{$('mapPanel').hidden=false;if(!map){if(!window.L)await script('https:\/\/unpkg.com\/leaflet@1.9.4\/dist\/leaflet.js');const center=(cityCenters[document.querySelector('input[name=&quot;city&quot;]:checked').value]||[41.3275,19.8187]);map=L.map('pickupMap',{scrollWheelZoom:false}).setView(center,14);L.tileLayer('https:\/\/tile.openstreetmap.org\/{z}\/{x}\/{y}.png',{maxZoom:19,attribution:'&amp;copy; &lt;a href=&quot;https:\/\/www.openstreetmap.org\/copyright&quot; target=&quot;_blank&quot;&gt;OpenStreetMap&lt;\/a&gt; contributors'}).addTo(map);const icon=L.divIcon({className:'ab-map-marker',html:'&lt;span style=&quot;display:block;width:24px;height:24px;border:3px solid white;border-radius:50%;background:#703da5;box-shadow:0 2px 7px #555&quot;&gt;&lt;\/span&gt;',iconSize:[24,24],iconAnchor:[12,12]});marker=L.marker(center,{draggable:true,icon}).addTo(map);marker.on('dragend',()=&gt;{const p=marker.getLatLng();choosePin(p.lat,p.lng)});map.on('click',e=&gt;choosePin(e.latlng.lat,e.latlng.lng));}map.invalidateSize();}catch{$('pinStatus').textContent='The map could not load. Please enter your address instead.';}};\n$('confirmPin').onclick=()=&gt;{if(!pin){$('pinStatus').textContent='Tap the map at your accommodation first.';return;}pinConfirmed=true;$('pinStatus').textContent='\u2713 Location confirmed: '+pin.lat.toFixed(5)+', '+pin.lng.toFixed(5);$('confirmPin').textContent='\u2713 Location confirmed';summary();};\n$('clearPin').onclick=()=&gt;{pin=null;pinConfirmed=false;$('clearPin').hidden=true;$('pinStatus').textContent='Map pin removed. Enter an address or choose a new pin.';summary();};\n$('locateMe').onclick=()=&gt;{if(!navigator.geolocation){$('pinStatus').textContent='Location is unavailable. Tap the map instead.';return;}$('pinStatus').textContent='Finding your location\u2026';navigator.geolocation.getCurrentPosition(pos=&gt;{const {latitude,longitude}=pos.coords;choosePin(latitude,longitude);if(pin)map.setView([pin.lat,pin.lng],17);},()=&gt;{$('pinStatus').textContent='Location was unavailable or permission was declined. Tap the map instead.';},{enableHighAccuracy:true,timeout:12000,maximumAge:0});};\ndocument.querySelectorAll('input[name=&quot;city&quot;]').forEach(input=&gt;input.addEventListener('change',()=&gt;{pin=null;pinConfirmed=false;$('pinStatus').textContent='Departure changed. Choose your accommodation in this area.';$('clearPin').hidden=true;if(map){const center=(cityCenters[input.value]||[41.3275,19.8187]);map.setView(center,14);marker.setLatLng(center);}summary();}));\n\n$('refreshPayment').onclick=checkPayment;\n$('paymentOption').addEventListener('change',summary);\nfor(const id of ['tourDate','adults','children','infants','hotel','address'])$(id).addEventListener('input',summary);\ndocument.querySelectorAll('input[name=&quot;city&quot;]').forEach(input=&gt;input.addEventListener('change',summary));\n(async()=&gt;{try{config=await api('config');$('tourTermsText').textContent=config.terms;if(!config.payments_ready)throw Error('Secure payments are temporarily unavailable. Please contact our team.');\nif(!$('acceptPolicy')){const box=document.createElement('div');box.innerHTML='&lt;details style=&quot;margin:16px 0&quot;&gt;&lt;summary&gt;Cancellation &amp;amp; refund policy&lt;\/summary&gt;&lt;p id=&quot;tourTermsText&quot; class=&quot;small&quot;&gt;&lt;\/p&gt;&lt;\/details&gt;&lt;label class=&quot;tick&quot;&gt;&lt;input id=&quot;acceptPolicy&quot; type=&quot;checkbox&quot; required&gt;&lt;span&gt;I have read and accept the cancellation and refund policy.&lt;\/span&gt;&lt;\/label&gt;';$('accept').closest('label').before(box);}\n$('tourTermsText').textContent=config.terms;\nconst originalApi=api;\napi=async function(action,data){if(action==='create'){if(!$('acceptPolicy').checked)throw Error('Please accept the cancellation and refund policy.');data={...data,accept_terms:true,terms_version:config.terms_version};}return originalApi(action,data);};\ncheckPayment=async function(){if(!booking)return;try{const j=await api('status',{id:booking.id});booking=j.booking;if(booking.status!==(booking.test_mode?'paid_test':'paid'))return;clearInterval(poll);if(checkout){checkout.destroy();checkout=null;}$('paymentCard').hidden=true;$('reviewCard').hidden=true;$('success').hidden=false;$('success').innerHTML='&lt;h2&gt;\u2713 '+(booking.test_mode?'Test payment verified':'Your tour is confirmed')+'&lt;\/h2&gt;&lt;p&gt;Reference: &lt;strong&gt;'+esc(booking.reference)+'&lt;\/strong&gt;&lt;\/p&gt;&lt;p&gt;'+esc(booking.pickup_city)+' \u00b7 '+esc(booking.service_date)+' \u00b7 '+esc(booking.pickup_time.slice(0,5))+' (Albania time)&lt;\/p&gt;&lt;p&gt;'+(booking.test_mode?'Test record only. No real tour is reserved.':'Payment received: '+fmt(booking.amount_due_cents)+'. Remaining balance: '+fmt(booking.balance_cents)+'. Your booking is confirmed.')+'&lt;\/p&gt;'+(j.ticket_url?'&lt;p&gt;&lt;a class=&quot;button&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;'+esc(j.ticket_url)+'&quot;&gt;\ud83c\udfab Open QR ticket&lt;\/a&gt;&lt;\/p&gt;&lt;p&gt;'+(j.email_status==='sent'?'Your ticket has been emailed.':'Your QR ticket is available above. Contact our team if the email does not arrive.')+'&lt;\/p&gt;':'');scrollTo('success');}catch(e){error(e.message);}};\n$('refreshPayment').onclick=checkPayment;\nif(!config.test_mode){\n$('accept').required=false;$('accept').checked=false;$('accept').closest('label').hidden=true;\ndocument.querySelectorAll('.test').forEach(el=&gt;{el.textContent='Secure card payment \u00b7 Choose a 20% deposit or full payment.';});\nconst labels={'No real charge or reservation. Test checkout uses your existing Stripe test connection.':'Review your details and the amount due before continuing.','Review test booking \u2192':'Review booking \u2192','Review your test booking':'Review your booking','Continue to test card payment \u2192':'Continue to secure payment \u2192','Stripe test payment':'Secure card payment','Use a Stripe test card only. No real payment is taken.':'Pay securely by card. Your booking is confirmed after payment is verified.','Full payment is required when booking. This checkout is in test mode; no real payment is taken.':'Choose full payment or a 20% deposit. The balance must be paid before departure.'};\nconst walker=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT);let node;while(node=walker.nextNode()){if(['SCRIPT','STYLE'].includes(node.parentElement?.tagName))continue;const replacement=labels[node.textContent.trim()];if(replacement)node.textContent=replacement;}\n$('editBooking').onclick=()=&gt;{if(booking){error('A booking has already been created. Reload to start a new booking.');return;}$('reviewCard').hidden=true;scrollTo('formCard');};\n}$('tourDate').min=new Intl.DateTimeFormat('en-CA',{timeZone:'Europe\/Tirane'}).format(new Date());document.querySelectorAll('[data-pickup-city]').forEach(el=&gt;el.textContent=config.pickup_times[el.dataset.pickupCity]);$('audioLanguageSection').hidden=!config.audio_languages?.length;$('audioLanguage').required=!!config.audio_languages?.length;$('audioLanguage').innerHTML=(config.audio_languages||[]).map(l=&gt;'&lt;option value=&quot;'+esc(l.code)+'&quot;&gt;'+esc(l.label)+'&lt;\/option&gt;').join('');\n$('tourHeading').textContent=config.tour_name;$('summaryTourName').textContent=config.tour_name;\n$('priceIntro').textContent=config.ticket_categories.map(c=&gt;c.label+' '+(c.price_cents?fmt(c.price_cents):'Free')).join(' \u00b7 ');\nfor(const c of config.ticket_categories){const label=$(c.key+'Label');if(label)label.textContent=c.label+' \u00b7 '+(c.max_age==null?c.min_age+'+':c.min_age+'\u2013'+c.max_age)+' yrs \u00b7 '+(c.price_cents?fmt(c.price_cents):'Free');}\nif(tourId!==1)$('tourDetailsLink').hidden=true;\ndocument.querySelector('.departure-options').innerHTML=Object.entries(config.pickup_times).map(([city,time],i)=&gt;'&lt;label class=&quot;departure-choice&quot;&gt;&lt;input type=&quot;radio&quot; name=&quot;city&quot; value=&quot;'+esc(city)+'&quot; '+(i===0?'checked':'')+' required&gt;&lt;span&gt;&lt;strong&gt;'+esc(city==='Durres'?'Durr\u00ebs':city)+'&lt;\/strong&gt;&lt;small&gt;'+esc(time)+'&lt;\/small&gt;&lt;\/span&gt;&lt;\/label&gt;').join('');\ndocument.querySelectorAll('input[name=&quot;city&quot;]').forEach(input=&gt;input.addEventListener('change',()=&gt;{pin=null;pinConfirmed=false;$('clearPin').hidden=true;$('pinStatus').textContent='Choose your accommodation in this area.';if(map){const center=cityCenters[input.value]||[41.3275,19.8187];map.setView(center,14);marker.setLatLng(center);}summary();}));\nif(config.available_from&amp;&amp;config.available_from&gt;$('tourDate').min)$('tourDate').min=config.available_from;if(config.available_until)$('tourDate').max=config.available_until;summary();$('reviewButton').disabled=false;}catch(e){error(e.message)}})();\n})();\n&lt;\/script&gt;&lt;script&gt;(()=&gt;{const resize=()=&gt;{try{const frame=parent.document.getElementById('ab-tour-booking-test');if(frame)frame.style.height=Math.ceil(document.body.getBoundingClientRect().height+30)+'px';}catch{}};new ResizeObserver(resize).observe(document.body);window.addEventListener('load',resize);})();&lt;\/script&gt;&lt;\/body&gt;&lt;\/html&gt;\n\n\"><\/iframe>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-98042","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tour Booking - Albanian Bus<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tour Booking - Albanian Bus\" \/>\n<meta property=\"og:url\" content=\"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/\" \/>\n<meta property=\"og:site_name\" content=\"Albanian Bus\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/\",\"url\":\"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/\",\"name\":\"Tour Booking - Albanian Bus\",\"isPartOf\":{\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#website\"},\"datePublished\":\"2026-10-27T06:29:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/albanianbus.com\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tour Booking\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#website\",\"url\":\"https:\/\/albanianbus.com\/wordpress\/\",\"name\":\"Bus Tirana to Ksamil\",\"description\":\"Bus Service in Albania\",\"publisher\":{\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#organization\"},\"alternateName\":\"Bus Tirana to Saranda\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/albanianbus.com\/wordpress\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#organization\",\"name\":\"Albanianbus\",\"alternateName\":\"Albanian Riviera Bus\",\"url\":\"https:\/\/albanianbus.com\/wordpress\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/albanianbus.com\/wordpress\/wp-content\/uploads\/2022\/11\/cropped-ALBANIANBUS-tirana-saranda-1.png\",\"contentUrl\":\"https:\/\/albanianbus.com\/wordpress\/wp-content\/uploads\/2022\/11\/cropped-ALBANIANBUS-tirana-saranda-1.png\",\"width\":728,\"height\":543,\"caption\":\"Albanianbus\"},\"image\":{\"@id\":\"https:\/\/albanianbus.com\/wordpress\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tour Booking - Albanian Bus","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/","og_locale":"en_US","og_type":"article","og_title":"Tour Booking - Albanian Bus","og_url":"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/","og_site_name":"Albanian Bus","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/","url":"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/","name":"Tour Booking - Albanian Bus","isPartOf":{"@id":"https:\/\/albanianbus.com\/wordpress\/#website"},"datePublished":"2026-10-27T06:29:42+00:00","breadcrumb":{"@id":"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/albanianbus.com\/wordpress\/index.php\/tour-booking\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/albanianbus.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"Tour Booking"}]},{"@type":"WebSite","@id":"https:\/\/albanianbus.com\/wordpress\/#website","url":"https:\/\/albanianbus.com\/wordpress\/","name":"Bus Tirana to Ksamil","description":"Bus Service in Albania","publisher":{"@id":"https:\/\/albanianbus.com\/wordpress\/#organization"},"alternateName":"Bus Tirana to Saranda","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/albanianbus.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/albanianbus.com\/wordpress\/#organization","name":"Albanianbus","alternateName":"Albanian Riviera Bus","url":"https:\/\/albanianbus.com\/wordpress\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/albanianbus.com\/wordpress\/#\/schema\/logo\/image\/","url":"https:\/\/albanianbus.com\/wordpress\/wp-content\/uploads\/2022\/11\/cropped-ALBANIANBUS-tirana-saranda-1.png","contentUrl":"https:\/\/albanianbus.com\/wordpress\/wp-content\/uploads\/2022\/11\/cropped-ALBANIANBUS-tirana-saranda-1.png","width":728,"height":543,"caption":"Albanianbus"},"image":{"@id":"https:\/\/albanianbus.com\/wordpress\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/98042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=98042"}],"version-history":[{"count":1,"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/98042\/revisions"}],"predecessor-version":[{"id":98044,"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/pages\/98042\/revisions\/98044"}],"wp:attachment":[{"href":"https:\/\/albanianbus.com\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=98042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}