{"id":255,"date":"2026-08-29T14:43:43","date_gmt":"2026-08-29T14:43:43","guid":{"rendered":"https:\/\/kamakhyatravels.com\/shopping\/?page_id=255"},"modified":"2026-08-29T14:45:13","modified_gmt":"2026-08-29T14:45:13","slug":"package-booking","status":"publish","type":"page","link":"https:\/\/kamakhyatravels.com\/shopping\/package-booking\/","title":{"rendered":"Package Booking"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"255\" class=\"elementor elementor-255\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ab80fe3 e-con e-atomic-element e-flexbox-base e-596f3e5 \" data-id=\"ab80fe3\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"ab80fe3\">\n    <div class=\"elementor-element elementor-element-a6b0057 e-con e-atomic-element e-flexbox-base e-5bfdcaa \" data-id=\"a6b0057\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"a6b0057\">\n    \n<\/div>\n<div class=\"elementor-element elementor-element-011b516 e-con e-atomic-element e-flexbox-base e-54dc2a7 \" data-id=\"011b516\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"011b516\">\n    \t\t<div class=\"elementor-element elementor-element-87ad85e elementor-widget elementor-widget-shortcode\" data-id=\"87ad85e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">        <div class=\"kt-form\">\n            <h2>Package Booking Form<\/h2>\n            <p>Enter the details below. A valid paid Registration ID is required.<\/p>\n\n            <form id=\"kt-book-form\">\n\n                <div class=\"kt-row\">\n                    <div class=\"kt-field\">\n                        <label>Name <span style=\"color:#e34242\">*<\/span><\/label>\n                        <input type=\"text\" name=\"name\" id=\"kt-p-name\" required placeholder=\"Customer full name\">\n                    <\/div>\n\n                    <div class=\"kt-field\">\n                        <label>Email <span style=\"color:#e34242\">*<\/span><\/label>\n                        <input type=\"email\" name=\"email\" id=\"kt-p-email\" required placeholder=\"Customer email\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"kt-row\">\n                    <div class=\"kt-field\">\n                        <label>Phone <span style=\"color:#e34242\">*<\/span><\/label>\n                        <input type=\"tel\" name=\"phone\" id=\"kt-p-phone\" required placeholder=\"Customer phone\">\n                    <\/div>\n\n                    <div class=\"kt-field\">\n                        <label>Registration ID <span style=\"color:#e34242\">*<\/span><\/label>\n                        <input type=\"text\" name=\"registration_id\" id=\"kt-p-reg\" required placeholder=\"Enter Registration ID\">\n                        <div id=\"kt-p-lookup\" class=\"kt-lookup\"><\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"kt-field\">\n                    <label>Choose Package <span style=\"color:#e34242\">*<\/span><\/label>\n                    <select name=\"package_id\" id=\"kt-p-package\" required>\n                        <option value=\"\">Select Package<\/option>\n                                                    <option value=\"guwahati-a\">\n                                Guwahati Package-A                            <\/option>\n                                                    <option value=\"guwahati-b\">\n                                Guwahati Package-B                            <\/option>\n                                                    <option value=\"package-c\">\n                                Package-C - Guwahati, Sivasagar &amp; Kaziranga                            <\/option>\n                                                    <option value=\"package-d\">\n                                Package-D - Meghalaya                            <\/option>\n                                                    <option value=\"package-e\">\n                                Package-E - Hajo &amp; Sualkuchi                            <\/option>\n                                                    <option value=\"package-f\">\n                                Package-F - Marigaon &amp; Mayong                            <\/option>\n                                                <option value=\"other\">Other<\/option>\n                    <\/select>\n                <\/div>\n\n                <div class=\"kt-field\">\n                    <label>Payment Amount (Manual) <span style=\"color:#e34242\">*<\/span><\/label>\n                    <input type=\"number\" name=\"manual_amount\" id=\"kt-p-amount\" min=\"1\" step=\"0.01\" required placeholder=\"Enter payment amount in INR\">\n                    <div class=\"kt-note\">Payment amount must be entered manually. It will not be filled automatically from the package.<\/div>\n                <\/div>\n\n                <div class=\"kt-row\">\n                    <div class=\"kt-field\">\n                        <label>Number of Adults <span style=\"color:#e34242\">*<\/span><\/label>\n                        <input type=\"number\" name=\"adults\" min=\"1\" value=\"1\" required>\n                    <\/div>\n\n                    <div class=\"kt-field\">\n                        <label>Number of Children (Below 8 Years)<\/label>\n                        <input type=\"number\" name=\"children\" min=\"0\" value=\"0\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"kt-row\">\n                    <div class=\"kt-field\">\n                        <label>Pickup \/ From Where <span style=\"color:#e34242\">*<\/span><\/label>\n                        <input type=\"text\" name=\"pickup\" required placeholder=\"Pickup location\">\n                    <\/div>\n\n                    <div class=\"kt-field\">\n                        <label>Destination <span style=\"color:#e34242\">*<\/span><\/label>\n                        <input type=\"text\" name=\"destination\" required placeholder=\"Destination\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"kt-row\">\n                    <div class=\"kt-field\">\n                        <label>Hotel Booking<\/label>\n                        <select name=\"hotel\">\n                            <option value=\"No\">No<\/option>\n                            <option value=\"Yes\">Yes<\/option>\n                        <\/select>\n                    <\/div>\n\n                    <div class=\"kt-field\">\n                        <label>Vehicle Booking<\/label>\n                        <select name=\"vehicle\">\n                            <option value=\"No\">No<\/option>\n                            <option value=\"Yes\">Yes<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"kt-field\">\n                    <label>Other Booking Requirements<\/label>\n                    <textarea name=\"requirements\" placeholder=\"Please mention any other requirements...\"><\/textarea>\n                <\/div>\n\n                <div class=\"kt-box\">\n                    <div class=\"kt-note\">\n                        Cancellation\/refund is subject to the Terms &amp; Conditions.\n                    <\/div>\n                <\/div>\n\n                <label class=\"kt-terms\">\n                    <input type=\"checkbox\" name=\"terms\" value=\"1\" required>\n                    <span>\n                        I agree to the\n                        <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/kamakhyatravels.com\/terms_conditions_kt.html\">\n                            Terms &amp; Conditions\n                        <\/a>.\n                    <\/span>\n                <\/label>\n\n                <button class=\"kt-button\" id=\"kt-p-pay\" type=\"submit\">\n                    Proceed to Pay\n                <\/button>\n\n                <div id=\"kt-p-msg\" class=\"kt-msg\"><\/div>\n            <\/form>\n        <\/div>\n\n        <script>\n        document.addEventListener('DOMContentLoaded',function(){\n\n            const ajax = 'https:\/\/kamakhyatravels.com\/shopping\/wp-admin\/admin-ajax.php';\n            const nonce = '1e9dddadb1';\n\n            const form = document.getElementById('kt-book-form');\n            const btn = document.getElementById('kt-p-pay');\n            const msg = document.getElementById('kt-p-msg');\n\n            const reg = document.getElementById('kt-p-reg');\n            const lookup = document.getElementById('kt-p-lookup');\n            const packageSelect = document.getElementById('kt-p-package');\n\n            let validRegistration = false;\n            let timer = null;\n\n            function errorMessage(text){\n                msg.textContent = text;\n                msg.className = 'kt-msg error';\n                btn.disabled = false;\n                btn.textContent = 'Proceed to Pay';\n            }\n\n            reg.addEventListener('input',function(){\n\n                clearTimeout(timer);\n                validRegistration = false;\n\n                lookup.textContent = '';\n\n                const value = this.value.trim();\n\n                if(value.length < 8) return;\n\n                lookup.textContent = 'Checking Registration ID...';\n                lookup.className = 'kt-lookup';\n\n                timer = setTimeout(function(){\n\n                    const d = new FormData();\n                    d.append('action','kt_lookup_registration');\n                    d.append('nonce',nonce);\n                    d.append('registration_id',value);\n\n                    fetch(ajax,{method:'POST',body:d,credentials:'same-origin'})\n                    .then(r=>r.json())\n                    .then(res=>{\n\n                        if(!res.success){\n                            throw new Error(res.data?.message || 'Registration ID not found.');\n                        }\n\n                        document.getElementById('kt-p-name').value = res.data.customer.name || '';\n                        document.getElementById('kt-p-email').value = res.data.customer.email || '';\n                        document.getElementById('kt-p-phone').value = res.data.customer.phone || '';\n\n                        validRegistration = true;\n\n                        lookup.textContent = 'Registration ID verified \u2713';\n                        lookup.className = 'kt-lookup kt-ok';\n\n                    })\n                    .catch(err=>{\n\n                        validRegistration = false;\n                        lookup.textContent = err.message;\n                        lookup.className = 'kt-lookup kt-bad';\n\n                    });\n\n                },350);\n            });\n\n            form.addEventListener('submit',function(e){\n\n                e.preventDefault();\n\n                if(!validRegistration){\n                    errorMessage('Please enter a valid paid Registration ID.');\n                    return;\n                }\n\n                if(!form.checkValidity()){\n                    form.reportValidity();\n                    return;\n                }\n\n                if(!packageSelect.value){\n                    errorMessage('Please choose a package.');\n                    return;\n                }\n\n                const amount = parseFloat(document.getElementById('kt-p-amount').value);\n\n                if(!amount || amount <= 0){\n                    errorMessage('Please enter the payment amount manually.');\n                    return;\n                }\n\n                btn.disabled = true;\n                btn.textContent = 'Creating secure payment...';\n                msg.className = 'kt-msg';\n\n                const d = new FormData(form);\n                d.append('action','kt_create_package_order');\n                d.append('nonce',nonce);\n\n                fetch(ajax,{method:'POST',body:d,credentials:'same-origin'})\n                .then(r=>r.json())\n                .then(res=>{\n\n                    if(!res.success){\n                        throw new Error(res.data?.message || 'Unable to create payment.');\n                    }\n\n                    const v = res.data;\n\n                    const rzp = new Razorpay({\n                        key: v.key_id,\n                        amount: v.amount,\n                        currency: 'INR',\n                        name: 'Kamakhya Travels',\n                        description: v.description,\n                        order_id: v.order_id,\n\n                        prefill: {\n                            name: v.customer.name,\n                            email: v.customer.email,\n                            contact: v.customer.contact\n                        },\n\n                        notes: {\n                            booking_id: v.booking_id,\n                            registration_id: v.registration_id\n                        },\n\n                        theme: {\n                            color: '#e34242'\n                        },\n\n                        handler: function(payment){\n\n                            btn.textContent = 'Verifying payment...';\n\n                            const verify = new FormData();\n\n                            verify.append('action','kt_verify_payment');\n                            verify.append('nonce',nonce);\n                            verify.append('kind','package');\n                            verify.append('record_id',v.record_id);\n                            verify.append('razorpay_order_id',payment.razorpay_order_id);\n                            verify.append('razorpay_payment_id',payment.razorpay_payment_id);\n                            verify.append('razorpay_signature',payment.razorpay_signature);\n\n                            fetch(ajax,{\n                                method:'POST',\n                                body:verify,\n                                credentials:'same-origin'\n                            })\n                            .then(r=>r.json())\n                            .then(result=>{\n\n                                if(!result.success){\n                                    throw new Error(result.data?.message || 'Payment verification failed.');\n                                }\n\n                                window.location.href = result.data.redirect;\n\n                            })\n                            .catch(err=>errorMessage(err.message));\n                        },\n\n                        modal:{\n                            ondismiss:function(){\n                                btn.disabled = false;\n                                btn.textContent = 'Proceed to Pay';\n                            }\n                        }\n                    });\n\n                    rzp.on('payment.failed',function(response){\n                        errorMessage(\n                            response.error?.description || 'Payment failed.'\n                        );\n                    });\n\n                    rzp.open();\n\n                })\n                .catch(err=>errorMessage(err.message));\n            });\n        });\n        <\/script>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-057c3f4 e-con e-atomic-element e-flexbox-base e-7ce90c0 \" data-id=\"057c3f4\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"057c3f4\">\n    \n<\/div>\n\n<\/div>\n\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":"","meta":{"footnotes":""},"class_list":["post-255","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/kamakhyatravels.com\/shopping\/wp-json\/wp\/v2\/pages\/255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kamakhyatravels.com\/shopping\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kamakhyatravels.com\/shopping\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kamakhyatravels.com\/shopping\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kamakhyatravels.com\/shopping\/wp-json\/wp\/v2\/comments?post=255"}],"version-history":[{"count":3,"href":"https:\/\/kamakhyatravels.com\/shopping\/wp-json\/wp\/v2\/pages\/255\/revisions"}],"predecessor-version":[{"id":261,"href":"https:\/\/kamakhyatravels.com\/shopping\/wp-json\/wp\/v2\/pages\/255\/revisions\/261"}],"wp:attachment":[{"href":"https:\/\/kamakhyatravels.com\/shopping\/wp-json\/wp\/v2\/media?parent=255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}