Offering premium passenger transfers to and from Slovenia, Italy, Austria, Hungary, and Croatia.
At WeTransferEU, we proudly offer comfortable, reliable, and cost-effective transfer services across Slovenia, Italy, Austria, Hungary, and Croatia. Whether you're traveling for business, leisure, or airport connections, we ensure a smooth and stress-free journey to your destination. With our commitment to punctuality, safety, and customer satisfaction, you can count on us to make every ride a pleasant experience.
Get a Quote
Offering premium passenger transfers to and from Slovenia, Italy, Austria, Hungary, and Croatia.
At WeTransferEU, we proudly offer comfortable, reliable, and cost-effective transfer services across Slovenia, Italy, Austria, Hungary, and Croatia. Whether you're traveling for business, leisure, or airport connections, we ensure a smooth and stress-free journey to your destination. With our commitment to punctuality, safety, and customer satisfaction, you can count on us to make every ride a pleasant experience.
Get a Quote
Offering premium passenger transfers to and from Slovenia, Italy, Austria, Hungary, and Croatia.
At WeTransferEU, we proudly offer comfortable, reliable, and cost-effective transfer services across Slovenia, Italy, Austria, Hungary, and Croatia. Whether you're traveling for business, leisure, or airport connections, we ensure a smooth and stress-free journey to your destination. With our commitment to punctuality, safety, and customer satisfaction, you can count on us to make every ride a pleasant experience.
Get a Quote
Offering premium passenger transfers to and from Slovenia, Italy, Austria, Hungary, and Croatia.
At WeTransferEU, we proudly offer comfortable, reliable, and cost-effective transfer services across Slovenia, Italy, Austria, Hungary, and Croatia. Whether you're traveling for business, leisure, or airport connections, we ensure a smooth and stress-free journey to your destination. With our commitment to punctuality, safety, and customer satisfaction, you can count on us to make every ride a pleasant experience.
Get a Quote

Get a free quote

Click on the map to select a location.

Click on the map to select a location.

Total Cost : €
"}; console.log(formData); var closeModalBtn = document.getElementById("closeModalBtn"); $(".openModalBtn").click(function () { const locationType = $(this).data("location-type"); $("#mapModal").css({ display: "flex" }); initMap(locationType, this); }) $(".closeModalBtn").click(function () { $("#mapModal").css({ display: "none" }); }) $(window).click(function (event) { if ($(event.target).is('#mapModal')) { $('#mapModal').css('display', 'none'); } }); $("#backToCalculator").click(function () { $("#paymentArea").hide(); $("#cost-calculator").show(); }) $(".save_address").click(function () { $('#addressInput').val(''); $("#mapModal").hide(); }) $("#calculate-cost-form").on("submit",async function (event) { event.preventDefault(); // const weightInput = document.getElementById("sc_weight").value; // const errorMessage = document.getElementById("error-message"); // const weight = parseFloat(weightInput); // if (isNaN(weight)) { // errorMessage.textContent = "Please enter a valid weight."; // errorMessage.style.display = "block"; // event.preventDefault(); // return; // } else if (weight > 1200) { // errorMessage.textContent = "Overload: The weight exceeds 1.2 tons!"; // errorMessage.style.display = "block"; // return; // } // Serialize the form data let sizeAndWeight = $("#calculate-cost-form").serializeArray(); let formContainer = $(this).closest('.form-container'); let fromLocationLng = formContainer.find('.from-location').attr('lng'); let fromLocationLat = formContainer.find('.from-location').attr('lat'); let toLocationLng = formContainer.find('.to-location').attr('lng'); let toLocationLat = formContainer.find('.to-location').attr('lat'); if (!fromLocationLng || !fromLocationLat) { alert("Please select Pickup Location"); return; } if (!toLocationLng || !toLocationLat) { alert("Please select Drop Location"); return; } let selectedValue = document.getElementById("vehicle").value; console.log(selectedValue, 'selectedValue', typeof selectedValue); const dieselPricePerLiter = selectedValue === 'standard' ? Number(formData.dieselPricePerLiterStVan) || 0 : Number(formData.dieselPricePerLiter) || 0; const fuelConsumptionPer100Km = selectedValue === 'standard' ? Number(formData.fuel_Consumption_Per_st_van ) || 0 : Number(formData.fuel_Consumption_Per) || 0; // const dieselPricePerLiter = Number(formData.dieselPricePerLiter) || 0; // const fuelConsumptionPer100Km = Number(formData.fuel_Consumption_Per) || 0; const driverHourlyRate = Number(formData.driver_Hourly_Rate) || 0; const foodCostPer4Hours = Number(formData.foodCostPer4Hours) || 0; let countryFrom = await getCountryName(fromLocationLat, fromLocationLng); let countryTo = await getCountryName(toLocationLat, toLocationLng); let austriaToll = 0; if (countryFrom === 'Austria' || countryTo === 'Austria') { austriaToll = Number(formData.austriaToll) || 0; } console.log("Austria toll fee:", austriaToll); const croatiaToll = Number(formData.croatiaToll) || 0; const overnightStayThreshold = Number(formData.overnightStayThreshold) || 0; const overnightStayCost = Number(formData.overnightStayCost) || 0; const profitMargin = Number(formData.profitMargin) || 0; let garageLat = formData.latitude; let garageLng = formData.longitude; let kmCharges = formData.km_charges; let kmChargesPickupToDrop = formData.km_charges_pickup_to_drop; let garageToFrom = await getTravelTime(garageLat, garageLng, fromLocationLat, fromLocationLng); let FromtoTo = await getTravelTime(fromLocationLat, fromLocationLng, toLocationLat, toLocationLng); let TotoGarage = await getTravelTime(toLocationLat, toLocationLng, garageLat, garageLng); console.log("garageToFrom : ",garageToFrom); console.log("FromtoTo : ",FromtoTo); console.log("TotoGarage : ",TotoGarage); let travelTime = garageToFrom + FromtoTo + TotoGarage; travelTime = (travelTime / 60) / 60; console.log("travelTime before : ",travelTime); // Round to the nearest 30 minutes (0.5 hours) travelTime = Math.ceil(travelTime * 2) / 2; travelTime += 0.5; // let city = await getCityName(toLocationLat, toLocationLng); console.log("travelTime : ",travelTime); let croatiaTollFee = 0; if(countryFrom === 'Croatia' || countryTo === 'Croatia'){ const croatiaTollCities = formData.city_toll_tax; croatiaTollFee = 5; } let cityFrom = await getCityName(fromLocationLat, fromLocationLng); let cityTo = await getCityName(toLocationLat, toLocationLng); console.log("countryFrom : ",countryFrom); console.log("countryTo : ",countryTo); let additionalCost = 0; // Check if either cityFrom or cityTo contains "Ljubljana Arpt (LJU)" if ((cityFrom.toLowerCase().includes("ljubljana arpt (lju)") && !cityTo.toLowerCase().includes("ljubljana arpt (lju)")) || (cityTo.toLowerCase().includes("ljubljana arpt (lju)") && !cityFrom.toLowerCase().includes("ljubljana arpt (lju)"))) { additionalCost = 12; } const driverCost = travelTime * driverHourlyRate; const foodCost = travelTime >= 4 ? Math.ceil(travelTime / 4) * foodCostPer4Hours : 0; console.log("driver and foodcost : ",driverCost, foodCost); const overnightCost = travelTime > overnightStayThreshold ? overnightStayCost : 0; // Calculate distance for each segment let distanceGarageToFrom = calculateDistance(garageLat, garageLng, fromLocationLat, fromLocationLng); let distanceFromToTo = calculateDistance(fromLocationLat, fromLocationLng, toLocationLat, toLocationLng); let distanceToToGarage = calculateDistance(toLocationLat, toLocationLng, garageLat, garageLng); calculateDistance(garageLat, garageLng, fromLocationLat, fromLocationLng, (err, distanceGarageToFrom) => { if (err) return console.error(err); calculateDistance(fromLocationLat, fromLocationLng, toLocationLat, toLocationLng, (err, distanceFromToTo) => { if (err) return console.error(err); calculateDistance(toLocationLat, toLocationLng, garageLat, garageLng, (err, distanceToToGarage) => { if (err) return console.error(err); // Log distances console.log(distanceGarageToFrom, 'distanceGarageToFrom'); console.log(distanceFromToTo, 'distanceFromToTo'); console.log(distanceToToGarage, 'distanceToToGarage'); // Calculate the cost for each segment let costGarageToFrom = distanceGarageToFrom * kmCharges; let costFromToTo = distanceFromToTo * kmChargesPickupToDrop; let costToToGarage = distanceToToGarage * kmCharges; // Total distance and cost let totalDistance = distanceGarageToFrom + distanceFromToTo + distanceToToGarage; const fuelCost = (totalDistance / 100) * fuelConsumptionPer100Km * dieselPricePerLiter; console.log("fuelCost:", fuelCost, typeof fuelCost); console.log("driverCost:", driverCost, typeof driverCost); console.log("foodCost:", foodCost, typeof foodCost); console.log("austriaToll:", austriaToll, typeof austriaToll); console.log("croatiaTollFee:", croatiaTollFee, typeof croatiaTollFee); console.log("overnightCost:", overnightCost, typeof overnightCost); let baseCost = fuelCost + driverCost + foodCost + austriaToll + croatiaTollFee + overnightCost + additionalCost; // console.log(selectedValue , ' selectedValue van with basecost'); console.log("baseCost : ",baseCost); console.log("additionalCost : ",additionalCost); if (selectedValue === 'van') { baseCost *= 1.10; console.log(baseCost , ' selectedValue van baseCost'); } let totalCost = (baseCost + (baseCost * (profitMargin / 100))); console.log(`totalDistance: ${Math.round(totalDistance)} km`); console.log(`totalCost: ${totalCost} cost`); // Additional cost calculations sizeAndWeight.forEach((field) => { let fieldValue = parseFloat(field.value.trim()); let fieldName = field.name; if (fieldValue && formData[fieldName]) { totalCost += fieldValue * parseFloat(formData[fieldName]); } }); totalCost = totalCost.toFixed(2); $("#totalCost").text(totalCost); $("#paymentArea").css('display', 'flex'); $("#cost-calculator").hide(); // Disable payment button if Stripe API key is missing if (!formData.stripe_api_secret_key) { $('#make_payment').attr('disabled', 'disabled'); $('#make_payment').css({ 'background-color': '#888c88' }); } }); }); }); }); function calculateTravelTime(lat1, lon1, lat2, lon2, mode = 'DRIVING') { return new Promise((resolve, reject) => { const origin = new google.maps.LatLng(lat1, lon1); const destination = new google.maps.LatLng(lat2, lon2); const service = new google.maps.DistanceMatrixService(); service.getDistanceMatrix( { origins: [origin], destinations: [destination], travelMode: mode, }, (response, status) => { if (status === 'OK' && response.rows[0].elements[0].duration) { const durationInSeconds = response.rows[0].elements[0].duration.value; resolve(durationInSeconds); // Convert to minutes } else { reject(new Error('Error with Distance Matrix: ' + status)); } } ); }); } async function getTravelTime(fromLocationLat, fromLocationLng, toLocationLat, toLocationLng) { try { let travelTime = await calculateTravelTime(fromLocationLat, fromLocationLng, toLocationLat, toLocationLng); return travelTime; } catch (error) { console.error("Error calculating travel time:", error); return { travelTime: 0, driverCost: 0 }; } } async function getCityName(lat, lng) { return new Promise((resolve, reject) => { const geocoder = new google.maps.Geocoder(); const latlng = { lat: parseFloat(lat), lng: parseFloat(lng) }; geocoder.geocode({ location: latlng }, (results, status) => { if (status === "OK") { if (results[0]) { let city = null; let airport = false; // Flag to check if it's an airport location for (const component of results[0].address_components) { if (component.types.includes("locality")) { city = component.long_name; } // Check for airport or administrative area if available if (component.types.includes("airport")) { airport = true; } } // If city is not found but it's an airport, return "Ljubljana Arpt (LJU)" if (!city && airport) { city = "Ljubljana Arpt (LJU)"; } resolve(city || "City not found"); } else { reject("No results found"); } } else { reject("Geocoder failed due to: " + status); } }); }); } $('#make_order').click(function (e) { e.preventDefault(); // Prevent form submission let isValid = true; $('.error-message').remove(); const name = $('input[name="name"]').val().trim(); if (name === '') { isValid = false; $('input[name="name"]').after('Name is required.'); } const phone = $('input[name="phone"]').val().trim(); const phonePattern = /^[0-9]{10}$/; if (!phonePattern.test(phone)) { isValid = false; $('input[name="phone"]').after('Enter a valid 10-digit phone number.'); } const email = $('input[name="email"]').val().trim(); const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailPattern.test(email)) { isValid = false; $('input[name="email"]').after('Enter a valid email address.'); } const message = $('textarea[name="message"]').val().trim(); if (message === '') { isValid = false; $('textarea[name="message"]').after('Message is required.'); } const bookingDate = document.getElementById('booking-date').value.trim(); const passengers = document.getElementById('passengers').value.trim(); const luggage = document.getElementById('luggage').value.trim(); const vehicleType = document.getElementById('vehicle').value.trim(); if(isValid){ const data = { action: 'make_order_ajax', security: '2bf289711e', name: name, phone: phone, email: email, message: message, bookingDate: bookingDate, passengers: passengers, luggage: luggage, vehicleType:vehicleType, }; $.post('https://wetransfereu.com/wp-admin/admin-ajax.php',data, function (response) { if(response.success){ console.log(response.data); window.location.href = "https://wetransfereu.com/order-success/"; }else{ alert(response.data.message) } }).fail(function () { alert('An error occurred while processing your request.'); }); } }); $('#make_payment').click(function (e) { let isValid = true; $('.error-message').remove(); const name = $('input[name="name"]').val().trim(); if (name === '') { isValid = false; $('input[name="name"]').after('Name is required.'); } const phone = $('input[name="phone"]').val().trim(); const phonePattern = /^[0-9]{10}$/; if (!phonePattern.test(phone)) { isValid = false; $('input[name="phone"]').after('Enter a valid 10-digit phone number.'); } const email = $('input[name="email"]').val().trim(); const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailPattern.test(email)) { isValid = false; $('input[name="email"]').after('Enter a valid email address.'); } const message = $('textarea[name="message"]').val().trim(); if (message === '') { isValid = false; $('textarea[name="message"]').after('Message is required.'); } const bookingDate = document.getElementById('booking-date').value.trim(); const passengers = document.getElementById('passengers').value.trim(); const luggage = document.getElementById('luggage').value.trim(); const vehicleType = document.getElementById('vehicle').value.trim(); if(isValid){ const data = { action: 'make_payment_ajax', security: '8f513dbfae', name: name, phone: phone, email: email, message: message, bookingDate: bookingDate, passengers: passengers, luggage: luggage, vehicleType:vehicleType, amount: $("#totalCost").text() ? $("#totalCost").text() : 10000 }; $.post('https://wetransfereu.com/wp-admin/admin-ajax.php',data, function (response) { if(response.success){ window.location.href = response.data.url; }else{ alert(response.data.message) } }).fail(function () { alert('An error occurred while processing your request.'); }); } }); }); // old code spherical distance calculation // function calculateDistance(lat1, lon1, lat2, lon2) { // const point1 = new google.maps.LatLng(lat1, lon1); // const point2 = new google.maps.LatLng(lat2, lon2); // const distanceInMeters = google.maps.geometry.spherical.computeDistanceBetween(point1, point2); // const distanceInKilometers = distanceInMeters / 1000; // return distanceInKilometers; // } function calculateDistance(lat1, lon1, lat2, lon2, callback) { const origin = new google.maps.LatLng(lat1, lon1); const destination = new google.maps.LatLng(lat2, lon2); const service = new google.maps.DistanceMatrixService(); service.getDistanceMatrix( { origins: [origin], destinations: [destination], travelMode: 'DRIVING', }, (response, status) => { if (status === 'OK') { if (response.rows && response.rows[0] && response.rows[0].elements && response.rows[0].elements[0]) { const distanceInMeters = response.rows[0].elements[0].distance.value; // Distance in meters const distanceInKilometers = distanceInMeters / 1000; // Convert to kilometers callback(null, distanceInKilometers); // Return the result via callback } else { callback(new Error('Invalid response structure'), null); } } else { callback(new Error('Error with Distance Matrix: ' + status), null); } } ); } document.addEventListener("DOMContentLoaded", function () { const luggageInput = document.getElementById("luggage"); const increaseBtn = document.getElementById("increaseLuggage"); const decreaseBtn = document.getElementById("decreaseLuggage"); increaseBtn.addEventListener("click", () => { let value = parseInt(luggageInput.value) || 0; if (value < 20) luggageInput.value = value + 1; }); decreaseBtn.addEventListener("click", () => { let value = parseInt(luggageInput.value) || 0; if (value > 0) luggageInput.value = value - 1; }); }); async function getCountryName(lat, lng) { return new Promise((resolve, reject) => { const geocoder = new google.maps.Geocoder(); const latlng = { lat: parseFloat(lat), lng: parseFloat(lng) }; geocoder.geocode({ location: latlng }, (results, status) => { if (status === "OK") { if (results[0]) { let country = null; for (const component of results[0].address_components) { if (component.types.includes("country")) { country = component.long_name; break; } } resolve(country || "Country not found"); } else { reject("No results found"); } } else { reject("Geocoder failed due to: " + status); } }); }); }

Our Services

Service Areas We Cover

At WeTransferEU, we proudly provide transfer services across key destinations in Central and Southern Europe. Whether you're traveling for business, leisure, or airport connections, our coverage ensures you reach your destination comfortably and on time.

Slovenia

Ljubljana, Bled, Maribor and nearby cities

Italy

Venice, Trieste, Milan, and nearby regions

Austria

Vienna, Graz, Salzburg, and surrounding areas

Croatia

Dubrovnik, Rijeka, and nearby cities

zagreb airport transfer

About Us

At WeTransferEU, we specialize in providing safe, comfortable, and dependable transfer services across Slovenia, Italy, Austria, Hungary, and Croatia. Whether you’re traveling for business, leisure, or airport connections like taxi Ljubljana airport, Vienna airport taxi, or Zagreb airport transfer, our mission is to make your journey stress-free and enjoyable.

With a fleet of well-maintained vehicles and a team of professional, multilingual drivers, we ensure high-quality service at every step. From airport Ljubljana taxi pick-ups to airport transfers Venice Marco Polo and cross-border city rides, we go the extra mile to deliver exceptional travel experiences.

We’re committed to punctuality, comfort, transparency, and above all, your satisfaction.

satisfied client

Johann M.

WeTransferEU has transformed our travel experience. The service is fast, reliable, and completely hassle-free—exactly what we need!

Luca R.

Exceptional service! WeTransferEU ensures we reach our destinations on time and in total comfort. Their customer support is always helpful and professional.

Ana K.

I've been using WeTransferEU for months, and they have never let me down. Traveling has never been this easy and stress-free. Highly recommend!

Bálint T. Hungary 🇭🇺

WeTransferEU is always punctual and reliable. We are very satisfied with their service and happy to travel with them!

Matej S. Slovenia 🇸🇮

Fast, efficient, and hassle-free! WeTransferEU ensures we always arrive safely and comfortably at our destination.

We will contact

Get a call back