{"id":27962,"date":"2025-10-28T17:55:46","date_gmt":"2025-10-28T14:55:46","guid":{"rendered":"https:\/\/yamaha.ee\/?page_id=27962"},"modified":"2026-05-18T18:11:52","modified_gmt":"2026-05-18T15:11:52","slug":"test-drive-booking-rus","status":"publish","type":"page","link":"https:\/\/yamaha.ee\/ru\/test-drive-booking-rus\/","title":{"rendered":"Test Drive Booking RUS"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"27962\" class=\"elementor elementor-27962\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9babc9e e-con-full e-flex e-con e-parent\" data-id=\"9babc9e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-81b6ab3 elementor-widget elementor-widget-heading\" data-id=\"81b6ab3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Book a Test Drive<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac44c3d elementor-widget elementor-widget-shortcode\" data-id=\"ac44c3d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><form id=\"bookingForm\" class=\"elementor-form\" style=\"max-width:600px; margin:auto;\">\n\t\t\t\n\n    <label>Test Day<\/label>\n    <select id=\"booking_testday\" name=\"booking_testday\" required>\n        <option value=\"\">Select Test Day<\/option>\n        <option value=\"30449\" \n\t\t\tdata-title=\"\u0422\u0435\u0441\u0442-\u0434\u0435\u043d\u044c Yamaha Off-Road 2027 \u043d\u0430 \u043a\u0440\u043e\u0441\u0441\u043e\u0432\u043e\u0439 \u0442\u0440\u0430\u0441\u0441\u0435 \u041c\u0430\u0430\u0440\u0434\u0443\"\n\t\t\tdata-date=\"2026-10-16\"\n\t\t\tdata-datestr=\"16.10.2026\"\n\t\t\tdata-location=\"\u041a\u0440\u043e\u0441\u0441\u043e\u0432\u0430\u044f \u0442\u0440\u0430\u0441\u0441\u0430 \u041c\u0430\u0430\u0440\u0434\u0443\"\n\t\t\tdata-desc=\"\u0422\u0435\u0441\u0442-\u0434\u0435\u043d\u044c Yamaha Off-Road 2027 \u043f\u0440\u043e\u0439\u0434\u0435\u0442 &lt;strong&gt;16 \u043e\u043a\u0442\u044f\u0431\u0440\u044f&lt;\/strong&gt; \u043d\u0430 \u043a\u0440\u043e\u0441\u0441\u043e\u0432\u043e\u0439 \u0442\u0440\u0430\u0441\u0441\u0435 \u041c\u0430\u0430\u0440\u0434\u0443 \u0441 &lt;strong&gt;11:00 \u0434\u043e 16:00&lt;\/strong&gt;. \u0411\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043c\u043e\u0434\u0435\u043b\u0438 2027 \u0433\u043e\u0434\u0430 &lt;strong&gt;YZ65&lt;\/strong&gt;, &lt;strong&gt;YZ85&lt;\/strong&gt; (\u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438), &lt;strong&gt;YZ125&lt;\/strong&gt;, &lt;strong&gt;YZ250F&lt;\/strong&gt; (\u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f) \u0438 &lt;strong&gt;YZ450F&lt;\/strong&gt;.&lt;br \/&gt;\r\n\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u043f\u043e\u0435\u0437\u0434\u043a\u0438 \u0432\u044b\u0431\u0435\u0440\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0438 \u0432\u0440\u0435\u043c\u044f.&lt;br \/&gt;\r\n\u0414\u043b\u044f \u0440\u0430\u0439\u0434\u0435\u0440\u043e\u0432 \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0433\u043e\u0440\u044f\u0447\u0438\u0439 \u0441\u0443\u043f!&lt;br \/&gt;\r\n&lt;br \/&gt;\r\n\u0412\u043e\u0437\u044c\u043c\u0438 \u0441 \u0441\u043e\u0431\u043e\u0439 \u0441\u0432\u043e\u044e \u044d\u043a\u0438\u043f\u0438\u0440\u043e\u0432\u043a\u0443.&lt;br \/&gt;\r\n\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043e\u0434\u043d\u043e\u0433\u043e \u0437\u0430\u0435\u0437\u0434\u0430 \u2014 &lt;strong&gt;10&lt;\/strong&gt; \u043c\u0438\u043d\u0443\u0442.&lt;br \/&gt;\r\n\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u0438\u0445\u043e\u0434\u0438 \u0437\u0430 &lt;strong&gt;15&lt;\/strong&gt; \u043c\u0438\u043d\u0443\u0442 \u0434\u043e \u0437\u0430\u0431\u0440\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438!&lt;br \/&gt;\r\n&lt;br \/&gt;\r\n\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f: Ott Kopti &lt;strong&gt;+372 55537333&lt;\/strong&gt; ott@yamaha.ee\"\n\t\t\tdata-image=\"https:\/\/yamaha.ee\/wp-content\/uploads\/2026\/10\/719202556_18440409388143538_1815959815332582398_n.jpg\">\u0422\u0435\u0441\u0442-\u0434\u0435\u043d\u044c Yamaha Off-Road 2027 \u043d\u0430 \u043a\u0440\u043e\u0441\u0441\u043e\u0432\u043e\u0439 \u0442\u0440\u0430\u0441\u0441\u0435 \u041c\u0430\u0430\u0440\u0434\u0443 (16.10.2026)<\/option>    <\/select>\n\t\t\t\n    <div id=\"testday_info\" style=\"display:none; margin-bottom:20px; border:1px solid #ddd; border-\nradius:8px; padding:15px;\">\n        <img decoding=\"async\" id=\"testday_image\" src=\"\" style=\"max-width:100%; border-radius:8px; margin-bottom:10px; display:none;\" \/>\t\t\t\t\n        <h3 id=\"testday_title\" style=\"margin:0 0 5px 0;\"><\/h3>\n        <p id=\"testday_date\" style=\"margin:0; font-weight:bold;\"><\/p>\n        <p id=\"testday_location\" style=\"margin:5px 0;\"><\/p>\n\t\t<div id=\"testday_description\" style=\"margin-top:10px; color:#555; font-size:clamp(16px, 2vw, 18px); line-height: 1.5; word-wrap: break-word;\">\n    \t<\/div>\n\t<\/div>\t\t\t\n\t\t\t\n    <label>Model<\/label>\n    <select id=\"booking_motorcycle\" name=\"booking_motorcycle\" required>\n        <option value=\"\">Select Model for test ride<\/option>\n    <\/select>\n    <label>Time Slot<\/label>\n    <select id=\"booking_time\" name=\"booking_time\" required>\n        <option value=\"\">Select Time Slot<\/option>\n    <\/select>\n    <label>Your Name<\/label>\n    <input type=\"text\" name=\"customer_name\" required \/>\n    <label>Email<\/label>\n    <input type=\"email\" name=\"customer_email\" required \/>\n    <label>Phone<\/label>\n    <input type=\"text\" name=\"customer_phone\" required \/>\n\t<label>Driving License Number<\/label>\n\t<input type=\"text\" name=\"driving_license_number\" \/>\t\t\n    <button type=\"submit\" style=\"margin-top:15px;\">Book Test Ride<\/button>\n<\/form>\n\n<div id=\"booking_message\" style=\"margin-top:15px;\"><\/div>\n\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    const testdaySelect = document.getElementById('booking_testday');\n    const motoSelect = document.getElementById('booking_motorcycle');\n    const timeSelect = document.getElementById('booking_time');\n    const infoBox = document.getElementById('testday_info');\n    const image = document.getElementById('testday_image');\n    const title = document.getElementById('testday_title');\n    const date = document.getElementById('testday_date');\n    const location = document.getElementById('testday_location');\n    const desc = document.getElementById('testday_description');\n    const message = document.getElementById('booking_message');\n\n\tfunction selectFirstTestDay() {\n\t\t\/\/ Select first real option (skip placeholder)\n\t\tif (testdaySelect.options.length > 1) {\n\t\t\ttestdaySelect.selectedIndex = 1;\n\n\t\t\t\/\/ Trigger change event automatically\n\t\t\ttestdaySelect.dispatchEvent(new Event('change'));\n\t\t}\n\t}\t\n\t\n    \/\/ When selecting a Test Day\n    testdaySelect.addEventListener('change', function() {\n        const selected = testdaySelect.options[testdaySelect.selectedIndex];\n        if (!selected.value) return;\n\t    title.textContent = selected.dataset.title;\n\t\n    \tdate.textContent = \"\ud83d\udcc5 \" + selected.dataset.datestr;\t\t\n        location.textContent = \"\ud83d\udccd \" + selected.dataset.location;\n        desc.innerHTML = selected.dataset.desc;\n\n        if (selected.dataset.image) {\n            image.src = selected.dataset.image;\n            image.style.display = 'block';\n        } else {\n            image.style.display = 'none';\n        }\n\n        infoBox.style.display = 'block';\n\n        \/\/ Load motorcycles\n        fetch('https:\/\/yamaha.ee\/wp-admin\/admin-ajax.php?action=get_motorcycles&testday_id=' + selected.value)\n        .then(r => r.json())\n        .then(data => {\n            motoSelect.innerHTML = '<option value=\"\">Select Model for test ride<\/option>';\n            data.forEach(m => {\n                motoSelect.innerHTML += `<option value=\"${m.id}\">${m.title}<\/option>`;\n            });\n        });\n    });\n\n    \/\/ Load available time slots\n    motoSelect.addEventListener('change', function() {\n        const testdayId = testdaySelect.value;\n        const motoId = motoSelect.value;\n        fetch('https:\/\/yamaha.ee\/wp-admin\/admin-ajax.php?action=get_timeslots&testday_id=' + testdayId + '&motorcycle_id=' + motoId)\n        .then(r => r.json())\n        .then(data => {\n            timeSelect.innerHTML = '<option value=\"\">Select Time Slot<\/option>';\n            data.forEach(slot => {\n                timeSelect.innerHTML += `<option value=\"${slot.value}\" ${slot.booked ? 'disabled' : ''}>${slot.label}${slot.booked ? ' (Booked)' : ''}<\/option>`;\n            });\n        });\n    });\n\n\t\/*\n    \/\/ Auto-select first Test Day\n    if (testdaySelect.options.length > 1) {\n        testdaySelect.selectedIndex = 1;\n        testdaySelect.dispatchEvent(new Event('change'));\n    }\n\t*\/\n\t\n    \/\/ Submit booking\n    document.getElementById('bookingForm').addEventListener('submit', function(e){\n        e.preventDefault();\n        const formData = new FormData(this);\n        fetch('https:\/\/yamaha.ee\/wp-admin\/admin-ajax.php?action=save_testday_booking', {\n            method: 'POST',\n            body: formData\n        })\n        .then(r => r.json())\n\n\t\t.then(res => {\n\t\t\tif(res.success) {\n\t\t\t\tconst selectedTestDay = testdaySelect.options[testdaySelect.selectedIndex].text;\n\t\t\t\tconst selectedMoto = motoSelect.options[motoSelect.selectedIndex]?.text || '';\n\t\t\t\tconst selectedTime = timeSelect.value;\n\n\t\t\t\t\/\/ Show message\n\t\t\t\tmessage.innerHTML = `\n\t\t\t\t\t${res.data.message}<\/strong><br>\n\t\t\t\t\tTest Day: <strong>${selectedTestDay}<\/strong><br>\n\t\t\t\t\tModel for test ride: <strong>${selectedMoto}<\/strong><br>\n\t\t\t\t\tTime Slot: <strong>${selectedTime}<\/strong>\n\t\t\t\t`;\n\t\t\t\tmessage.style.display = 'block';\n\n\t\t\t\t\/\/ Hide message after 5 seconds\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tmessage.style.display = 'none';\n\t\t\t\t}, 5000); \/\/ 5000 ms = 5 seconds\n\n\t\t\t\t\/\/ Reset form and fields\n\t\t\t\te.target.reset();\n\t\t\t\t\/\/infoBox.style.display = 'none';\n\t\t\t\tmotoSelect.innerHTML = '<option value=\"\">Select Model for test ride<\/option>';\n\t\t\t\ttimeSelect.innerHTML = '<option value=\"\">Select Time Slot<\/option>';\n\t\t\t\t\/\/ Re-select first Test Day automatically\n\t\t\t\tselectFirstTestDay();\n\t\t\t} else {\n\t\t\t\tmessage.innerHTML = res.data?.message || 'Booking failed!';\n\t\t\t\tmessage.style.display = 'block';\n\t\t\t\tsetTimeout(() => message.style.display = 'none', 5000);\n\t\t\t}\n\t\t});\t\t\n\t\t\n    });\n\t\n\/\/ Auto-select first Test Day\t\nselectFirstTestDay();\t\n});\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Book a Test Drive<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-27962","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/yamaha.ee\/ru\/wp-json\/wp\/v2\/pages\/27962","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yamaha.ee\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/yamaha.ee\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/yamaha.ee\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yamaha.ee\/ru\/wp-json\/wp\/v2\/comments?post=27962"}],"version-history":[{"count":5,"href":"https:\/\/yamaha.ee\/ru\/wp-json\/wp\/v2\/pages\/27962\/revisions"}],"predecessor-version":[{"id":27967,"href":"https:\/\/yamaha.ee\/ru\/wp-json\/wp\/v2\/pages\/27962\/revisions\/27967"}],"wp:attachment":[{"href":"https:\/\/yamaha.ee\/ru\/wp-json\/wp\/v2\/media?parent=27962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}