{"id":7913,"date":"2026-05-06T15:28:49","date_gmt":"2026-05-06T15:28:49","guid":{"rendered":"https:\/\/journeygroup.bg\/?page_id=7913"},"modified":"2026-05-06T15:49:02","modified_gmt":"2026-05-06T15:49:02","slug":"vaucher","status":"publish","type":"page","link":"https:\/\/journeygroup.bg\/en\/vaucher\/","title":{"rendered":"Gift voucher"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"7913\" class=\"elementor elementor-7913\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3efcb16 e-flex e-con-boxed e-con e-parent\" data-id=\"3efcb16\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-17bd3bd elementor-widget elementor-widget-theme-post-title elementor-page-title elementor-widget-heading\" data-id=\"17bd3bd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"theme-post-title.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Gift voucher<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-16e1c56 elementor-widget elementor-widget-shortcode\" data-id=\"16e1c56\" 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=\"custom-breadcrumbs\"><a href=\"https:\/\/journeygroup.bg\/en\">Home<\/a><\/div><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bb297c6 e-flex e-con-boxed e-con e-parent\" data-id=\"bb297c6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3cb0b83 elementor-widget elementor-widget-text-editor\" data-id=\"3cb0b83\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2>Do you want to surprise a loved one with an unforgettable trip?<\/h2><p>With Journey Group, you can give the gift of emotion, adventure, and memories that last forever.<\/p><p>We offer various options for gift vouchers for excursions and trips.<\/p><p>For the voucher to be valid, the amount of the selected package must be paid. After confirmation, you will receive the voucher by email in electronic format.<\/p><p>The voucher is sent digitally and can be easily printed at any bookstore or copy center, as well as sent directly online as a special surprise.<\/p><p>The voucher can be customized according to your requirements and include:<\/p><p>\u2013 Recipient&#039;s name (in Cyrillic or Latin)<br \/>\u2013 Season \/ validity period (2026, 2027, etc.)<br \/>\u2013 Journey Group logo and brand<br \/>\u2013 The selected travel package \/ destination<br \/>\u2013 Personal wish from the giver<br \/>\u2013 The occasion for the gift<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8728a1f e-con-full e-flex e-con e-child\" data-id=\"8728a1f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-234e73d elementor-widget elementor-widget-html\" data-id=\"234e73d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"jg-voucher-form-wrap\" id=\"jg-vf-6a0398434f82c\">\n<style>\n#jg-vf-6a0398434f82c { max-width: 680px; margin: 0 auto; font-family: Arial, sans-serif; }\n#jg-vf-6a0398434f82c .jvf-section { background: #fff; border: 1px solid #e5e5e5; border-radius: 12px; padding: 28px; margin-bottom: 20px; }\n#jg-vf-6a0398434f82c .jvf-title { font-size: 1.1rem; font-weight: 800; margin-bottom: 18px; padding-bottom: 12px; border-bottom: 2px solid #f0f0f0; }\n#jg-vf-6a0398434f82c .jvf-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }\n#jg-vf-6a0398434f82c .jvf-field { margin-bottom: 14px; }\n#jg-vf-6a0398434f82c .jvf-label { display: block; font-size: .82rem; font-weight: 700; margin-bottom: 5px; color: #444; }\n#jg-vf-6a0398434f82c .jvf-input,\n#jg-vf-6a0398434f82c .jvf-select,\n#jg-vf-6a0398434f82c .jvf-textarea { width: 100%; padding: 10px 14px; border: 1px solid #ddd; border-radius: 8px; font-size: .9rem; box-sizing: border-box; }\n#jg-vf-6a0398434f82c .jvf-input:focus,\n#jg-vf-6a0398434f82c .jvf-select:focus,\n#jg-vf-6a0398434f82c .jvf-textarea:focus { border-color: #111; outline: none; }\n#jg-vf-6a0398434f82c .jvf-amount-display { font-size: 1.8rem; font-weight: 900; color: #111; text-align: center; padding: 14px; background: #f8f8f8; border-radius: 8px; margin-bottom: 14px; display: none; }\n#jg-vf-6a0398434f82c .jvf-card-wrap { padding: 12px 14px; border: 1px solid #ddd; border-radius: 8px; background: #fff; min-height: 44px; margin-bottom: 14px; }\n#jg-vf-6a0398434f82c .jvf-submit { width: 100%; padding: 16px; background: #111; color: #fff; border: none; border-radius: 8px; font-size: 1rem; font-weight: 700; cursor: pointer; }\n#jg-vf-6a0398434f82c .jvf-submit:hover { background: #333; }\n#jg-vf-6a0398434f82c .jvf-submit:disabled { background: #bbb; cursor: not-allowed; }\n#jg-vf-6a0398434f82c .jvf-error { color: #c00; font-size: .85rem; margin-top: 6px; }\n#jg-vf-6a0398434f82c .jvf-success { text-align: center; padding: 40px 20px; display: none; }\n#jg-vf-6a0398434f82c .jvf-success .jvf-icon { font-size: 3rem; margin-bottom: 12px; }\n@media (max-width: 600px) { #jg-vf-6a0398434f82c .jvf-grid-2 { grid-template-columns: 1fr; } }\n<\/style>\n\n<div id=\"jg-vf-6a0398434f82c-form\">\n\n    <!-- Package -->\n    <div class=\"jvf-section\">\n        <div class=\"jvf-title\">\ud83c\udf81 Gift voucher<\/div>\n        <div class=\"jvf-field\">\n            <label class=\"jvf-label\">Choose a package \/ Amount<\/label>\n            <select id=\"jg-vf-6a0398434f82c-package\" class=\"jvf-select\">\n                                <option value=\"\">\u2014 Choose a package \u2014<\/option>\n                                <option value=\"custom\">Personal voucher (free amount)<\/option>\n                                <option value=\"200\">\u20ac200 \u2014 Weekend adventure<\/option>\n                                <option value=\"500\">\u20ac500 \u2014 Trip for two<\/option>\n                                <option value=\"1000\">\u20ac1,000 \u2014 An unforgettable trip<\/option>\n                                <option value=\"1500\">\u20ac1,500 \u2014 Luxury trip<\/option>\n                            <\/select>\n        <\/div>\n        <div id=\"jg-vf-6a0398434f82c-custom-wrap\" style=\"display:none;\">\n            <div class=\"jvf-field\">\n                <label class=\"jvf-label\">Amount (EUR)<\/label>\n                <input type=\"number\" id=\"jg-vf-6a0398434f82c-custom-amount\" class=\"jvf-input\" min=\"50\" step=\"10\" placeholder=\"200\">\n            <\/div>\n        <\/div>\n        <div class=\"jvf-amount-display\" id=\"jg-vf-6a0398434f82c-amount-display\"><\/div>\n    <\/div>\n\n    <!-- Voucher details -->\n    <div class=\"jvf-section\">\n        <div class=\"jvf-title\">Voucher details<\/div>\n        <div class=\"jvf-grid-2\">\n            <div class=\"jvf-field\">\n                <label class=\"jvf-label\">Recipient name<\/label>\n                <input type=\"text\" id=\"jg-vf-6a0398434f82c-recipient\" class=\"jvf-input\">\n            <\/div>\n            <div class=\"jvf-field\">\n                <label class=\"jvf-label\">Giving (from)<\/label>\n                <input type=\"text\" id=\"jg-vf-6a0398434f82c-sender\" class=\"jvf-input\">\n            <\/div>\n        <\/div>\n        <div class=\"jvf-grid-2\">\n            <div class=\"jvf-field\">\n                <label class=\"jvf-label\">Occasion<\/label>\n                <input type=\"text\" id=\"jg-vf-6a0398434f82c-occasion\" class=\"jvf-input\" placeholder=\"Birthday, Anniversary...\">\n            <\/div>\n            <div class=\"jvf-field\">\n                <label class=\"jvf-label\">Validity period<\/label>\n                <input type=\"text\" id=\"jg-vf-6a0398434f82c-period\" class=\"jvf-input\" placeholder=\"2026, 2026\u20132027\">\n            <\/div>\n        <\/div>\n        <div class=\"jvf-field\">\n            <label class=\"jvf-label\">Destination \/ Package (optional)<\/label>\n            <input type=\"text\" id=\"jg-vf-6a0398434f82c-dest\" class=\"jvf-input\">\n        <\/div>\n        <div class=\"jvf-field\">\n            <label class=\"jvf-label\">Personal wish<\/label>\n            <textarea id=\"jg-vf-6a0398434f82c-message\" class=\"jvf-textarea\" rows=\"3\"><\/textarea>\n        <\/div>\n    <\/div>\n\n    <!-- Contact -->\n    <div class=\"jvf-section\">\n        <div class=\"jvf-title\">Your data<\/div>\n        <div class=\"jvf-grid-2\">\n            <div class=\"jvf-field\">\n                <label class=\"jvf-label\">Email (to send the voucher)<\/label>\n                <input type=\"email\" id=\"jg-vf-6a0398434f82c-email\" class=\"jvf-input\">\n            <\/div>\n            <div class=\"jvf-field\">\n                <label class=\"jvf-label\">Phone<\/label>\n                <input type=\"text\" id=\"jg-vf-6a0398434f82c-phone\" class=\"jvf-input\">\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Payment -->\n    <div class=\"jvf-section\">\n        <div class=\"jvf-title\">Payment by card<\/div>\n                <div class=\"jvf-card-wrap\" id=\"jg-vf-6a0398434f82c-card-element\"><\/div>\n        <div class=\"jvf-error\" id=\"jg-vf-6a0398434f82c-card-error\"><\/div>\n        <button class=\"jvf-submit\" id=\"jg-vf-6a0398434f82c-pay-btn\" style=\"margin-top:12px;\" disabled>Send<\/button>\n                <div class=\"jvf-error\" id=\"jg-vf-6a0398434f82c-pay-error\" style=\"margin-top:8px;\"><\/div>\n    <\/div>\n<\/div>\n\n<div class=\"jvf-section jvf-success\" id=\"jg-vf-6a0398434f82c-success\">\n    <div class=\"jvf-icon\">\ud83c\udf89<\/div>\n    <h3>The voucher has been sent!<\/h3>\n    <p style=\"margin-top:10px;\">Check your email for your gift voucher.<\/p>\n<\/div>\n\n<script>\n(function(){\n    var uid       = 'jg-vf-6a0398434f82c';\n    var ajaxUrl   = 'https:\/\/journeygroup.bg\/wp-admin\/admin-ajax.php';\n    var nonce     = '08563f2978';\n    var stripeKey = 'pk_test_51Mvgr5H0GtL4ij0h5ixhTNEd6na5YZW5S7lNsDXO5MCKdX34brM2wNpIlIm9anZdCauVFN4Qp2zhy1v4ASnj4JDu00kiUO5xDi';\n    var stripe, cardElement, clientSecret;\n\n    var pkgSel     = document.getElementById(uid+'-package');\n    var customWrap = document.getElementById(uid+'-custom-wrap');\n    var amtDisplay = document.getElementById(uid+'-amount-display');\n    var payBtn     = document.getElementById(uid+'-pay-btn');\n\n    function getCurrentAmount() {\n        var pkg = pkgSel.value;\n        if (pkg === 'custom') return parseFloat(document.getElementById(uid+'-custom-amount').value) || 0;\n        return parseFloat(pkg) || 0;\n    }\n\n    function showAmount(amt) {\n        if (amt > 0) {\n            amtDisplay.textContent = amt.toFixed(2).replace('.',',') + ' \u20ac';\n            amtDisplay.style.display = 'block';\n        } else {\n            amtDisplay.style.display = 'none';\n        }\n    }\n\n    \/\/ Init Stripe card element immediately (avoid slow load on select)\n    function mountCard() {\n        if (!stripeKey || stripe) return;\n        stripe = Stripe(stripeKey);\n        var elements = stripe.elements();\n        cardElement = elements.create('card', {\n            hidePostalCode: true,\n            style: { base: { fontSize: '16px', fontFamily: 'Arial,sans-serif', color: '#111' } }\n        });\n        cardElement.mount('#'+uid+'-card-element');\n        cardElement.on('change', function(e){\n            document.getElementById(uid+'-card-error').textContent = e.error ? e.error.message : '';\n            payBtn.disabled = !e.complete || !clientSecret;\n        });\n    }\n    \/\/ Wait for Stripe.js to be ready before mounting\n    if (stripeKey) {\n        function tryMountCard() {\n            if (typeof Stripe !== 'undefined') {\n                mountCard();\n            } else {\n                setTimeout(tryMountCard, 100);\n            }\n        }\n        tryMountCard();\n    }\n\n    function createIntent(amt) {\n        if (!amt || amt < 1) return;\n        payBtn.disabled = true;\n        fetch(ajaxUrl, {\n            method: 'POST',\n            headers: { 'Content-Type': 'application\/x-www-form-urlencoded' },\n            body: 'action=jg_create_voucher_intent&nonce='+encodeURIComponent(nonce)+'&amount='+encodeURIComponent(amt)\n        })\n        .then(function(r){ return r.json(); })\n        .then(function(res){\n            if (!res.success) {\n                document.getElementById(uid+'-card-error').textContent = res.data || '\u0413\u0440\u0435\u0448\u043a\u0430 \u043f\u0440\u0438 PaymentIntent';\n                return;\n            }\n            clientSecret = res.data.client_secret;\n            \/\/ Enable pay button only if card is complete\n            if (cardElement) {\n                payBtn.disabled = false; \/\/ will be re-disabled by card change event if incomplete\n            }\n        })\n        .catch(function(e){ document.getElementById(uid+'-card-error').textContent = '\u0413\u0440\u0435\u0448\u043a\u0430: ' + e.message; });\n    }\n\n    \/\/ Package change\n    pkgSel.addEventListener('change', function(){\n        var val = this.value;\n        customWrap.style.display = val === 'custom' ? '' : 'none';\n        if (!val) { showAmount(0); payBtn.disabled = true; clientSecret = null; return; }\n        var amt = val === 'custom' ? 0 : parseFloat(val);\n        showAmount(amt);\n        if (amt >= 1) createIntent(amt);\n        else if (!stripeKey) payBtn.disabled = false;\n    });\n\n    \/\/ Custom amount\n    document.getElementById(uid+'-custom-amount').addEventListener('input', function(){\n        var amt = parseFloat(this.value) || 0;\n        showAmount(amt);\n        if (amt >= 50) createIntent(amt);\n    });\n\n    \/\/ Pay\n    payBtn.addEventListener('click', function(){\n        if (!stripe || !clientSecret) { alert('\u041c\u043e\u043b\u044f \u0438\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u043f\u0430\u043a\u0435\u0442 \u0438 \u0432\u044a\u0432\u0435\u0434\u0435\u0442\u0435 \u0434\u0430\u043d\u043d\u0438 \u0437\u0430 \u043a\u0430\u0440\u0442\u0430.'); return; }\n        var btn = this; btn.disabled = true; btn.textContent = '\u23f3 \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430...';\n        stripe.confirmCardPayment(clientSecret, {\n            payment_method: { card: cardElement }\n        }).then(function(result){\n            if (result.error) {\n                document.getElementById(uid+'-card-error').textContent = result.error.message;\n                btn.disabled = false; btn.textContent = '\u0418\u0437\u043f\u0440\u0430\u0442\u0438';\n            } else if (result.paymentIntent && result.paymentIntent.status === 'succeeded') {\n                var pkg = pkgSel.value;\n                var amt = pkg === 'custom' ? document.getElementById(uid+'-custom-amount').value : pkg;\n                var body = 'action=jg_purchase_voucher&nonce='+nonce\n                    +'&language=bg'\n                    +'&amount_eur='+encodeURIComponent(amt)\n                    +'&recipient_name='+encodeURIComponent(document.getElementById(uid+'-recipient').value)\n                    +'&sender_name='+encodeURIComponent(document.getElementById(uid+'-sender').value)\n                    +'&occasion='+encodeURIComponent(document.getElementById(uid+'-occasion').value)\n                    +'&period='+encodeURIComponent(document.getElementById(uid+'-period').value)\n                    +'&destination='+encodeURIComponent(document.getElementById(uid+'-dest').value)\n                    +'&message='+encodeURIComponent(document.getElementById(uid+'-message').value)\n                    +'&client_email='+encodeURIComponent(document.getElementById(uid+'-email').value)\n                    +'&phone='+encodeURIComponent(document.getElementById(uid+'-phone').value)\n                    +'&stripe_id='+encodeURIComponent(result.paymentIntent.id);\n                fetch(ajaxUrl, {method:'POST', headers:{'Content-Type':'application\/x-www-form-urlencoded'}, body:body})\n                .then(function(r){ return r.json(); }).then(function(){\n                    document.getElementById(uid+'-form').style.display = 'none';\n                    document.getElementById(uid+'-success').style.display = 'block';\n                });\n            }\n        });\n    });\n\n    \/\/ Stripe.js loaded globally via wp_enqueue_script\n})();\n<\/script>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>\u0418\u0441\u043a\u0430\u0442\u0435 \u0434\u0430 \u0438\u0437\u043d\u0435\u043d\u0430\u0434\u0430\u0442\u0435 \u043b\u044e\u0431\u0438\u043c \u0447\u043e\u0432\u0435\u043a \u0441 \u043d\u0435\u0437\u0430\u0431\u0440\u0430\u0432\u0438\u043c\u043e \u043f\u044a\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0435? \u0421 Journey Group \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u043e\u0434\u0430\u0440\u0438\u0442\u0435 \u0435\u043c\u043e\u0446\u0438\u044f, \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u0441\u043f\u043e\u043c\u0435\u043d\u0438, \u043a\u043e\u0438\u0442\u043e \u043e\u0441\u0442\u0430\u0432\u0430\u0442 \u0437\u0430\u0432\u0438\u043d\u0430\u0433\u0438. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u043c\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u0438 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0438 \u0437\u0430 \u043f\u043e\u0434\u0430\u0440\u044a\u0447\u043d\u0438 \u0432\u0430\u0443\u0447\u0435\u0440\u0438 \u0437\u0430 \u0435\u043a\u0441\u043a\u0443\u0440\u0437\u0438\u0438 \u0438 \u043f\u044a\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f. \u0417\u0430 \u0434\u0430 \u0431\u044a\u0434\u0435 \u0432\u0430\u0443\u0447\u0435\u0440\u044a\u0442 \u0432\u0430\u043b\u0438\u0434\u0435\u043d, \u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u0430 \u0431\u044a\u0434\u0435 \u0432\u043d\u0435\u0441\u0435\u043d\u0430 \u0441\u0443\u043c\u0430 \u043d\u0430 \u0438\u0437\u0431\u0440\u0430\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442. \u0421\u043b\u0435\u0434 \u043f\u043e\u0442\u0432\u044a\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0449\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0432\u0430\u0443\u0447\u0435\u0440\u0430 \u043f\u043e \u0438\u043c\u0435\u0439\u043b \u0432 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0435\u043d \u0444\u043e\u0440\u043c\u0430\u0442. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-7913","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/journeygroup.bg\/en\/wp-json\/wp\/v2\/pages\/7913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/journeygroup.bg\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/journeygroup.bg\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/journeygroup.bg\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/journeygroup.bg\/en\/wp-json\/wp\/v2\/comments?post=7913"}],"version-history":[{"count":17,"href":"https:\/\/journeygroup.bg\/en\/wp-json\/wp\/v2\/pages\/7913\/revisions"}],"predecessor-version":[{"id":7933,"href":"https:\/\/journeygroup.bg\/en\/wp-json\/wp\/v2\/pages\/7913\/revisions\/7933"}],"wp:attachment":[{"href":"https:\/\/journeygroup.bg\/en\/wp-json\/wp\/v2\/media?parent=7913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}