{"id":39,"date":"2026-01-23T22:02:29","date_gmt":"2026-01-23T22:02:29","guid":{"rendered":"https:\/\/wpasia.org\/2026\/?page_id=39"},"modified":"2026-01-23T22:02:29","modified_gmt":"2026-01-23T22:02:29","slug":"volunteer","status":"publish","type":"page","link":"https:\/\/wpasia.org\/2026\/volunteer\/","title":{"rendered":"Volunteer &#8211; Visa Letter"},"content":{"rendered":"        <style>\n            .visa-letter-form label {\n                display: block;\n                float: none;\n                font-weight: 700;\n                margin-bottom: 0.25em;\n            }\n\n            .visa-letter-form label em {\n                font-weight: normal;\n                font-size: 0.85em;\n            }\n\n            .visa-letter-form input,\n            .visa-letter-form select,\n            .visa-letter-form button {\n                border: 1px solid #8c8f94;\n                border-radius: 0;\n                box-sizing: border-box;\n                font: inherit;\n                padding: 0.50em;\n                width: 50%;\n                margin-bottom: 1.25em;\n            }\n\n            .visa-letter-form input[type=checkbox],\n            .visa-letter-form .form-check-label {\n                display: inline-block;\n                width: auto;\n                margin: 2em 0;\n            }\n\n            .visa-letter-form button {\n                cursor: pointer;\n            }\n        <\/style>\n        \n                <script>\n            function toggleFieldset() {\n            \n                const fieldsetArrival = document.getElementById(\"arrivalOnestop\");\n                const fieldArrival = document.getElementsByClassName(\"arrival1stop\");\n                const isArrivalChecked = document.getElementById(\"isArrivalOnestop\").checked;\n                if (isArrivalChecked) {\n                    fieldsetArrival.style.display = \"block\";\n                    fieldArrival.required = true;\n                    document.getElementById(\"arrivalStartIata\").textContent =  document.getElementsByName(\"travel_iata_start1\")[0].value;\n                    document.getElementById(\"arrivalEndIata\").textContent =  document.getElementsByName(\"travel_iata_start\")[0].value;\n                } else {\n                    fieldsetArrival.style.display = \"none\";\n                    fieldArrival.required = false;\n                }\n              \n                const fieldsetDeparture = document.getElementById(\"departureOnestop\");\n                const fieldDeparture = document.getElementsByClassName(\"departure1stop\");\n                const isDepartureChecked = document.getElementById(\"isDepartureOnestop\").checked;\n                if (isDepartureChecked) {\n                  fieldsetDeparture.style.display = \"block\";\n                  fieldDeparture.required = true;\n                  document.getElementById(\"departureStartIata\").textContent =  document.getElementsByName(\"travel_iata_end1\")[0].value;\n                  document.getElementById(\"departureEndIata\").textContent =  document.getElementsByName(\"travel_iata_end\")[0].value;\n                } else {\n                  fieldsetDeparture.style.display = \"none\";\n                  fieldDeparture.required = false;\n                }            \n              \n            }\n        <\/script>\n        \n                <div class=\"notice info notice-info\">\n                        <p>Only fill the form if you received a \"\n                volunteer\" confirmation eMail.\n            <\/p>\n                        <p>The event ticket needs to be attached to the visa letter, which is why it's crucial for the names on the event ticket, passport, and visa letter to be the same.<\/p>\n            <p>If you have more than one stop during your flight, please email us at <a href=\"mailto:asia-local@wordcamp.org?subject=eVisa%20Letter%20for%20WordCamp%20Asia%202026\">asia-local@wordcamp.org<\/a>.<\/p>        <\/div>\n        \n        <div id=\"form\" class=\"visa-letter\">\n            <form id=\"visa-form\" name=\"visa-form\" method=\"post\" action=\"https:\/\/wpasia.org\/2026\/volunteer\/\" class=\"visa-letter-form\">\n\n                                <div class=\"grunion-field-email-wrap grunion-field-wrap\">\n                    <label for=\"attendee_email\" class=\"grunion-field-label name\">\n                        Email <span>*<\/span> <em>\n                            Letter will be sent here                        <\/em>\n                    <\/label>\n                    <input type=\"email\" name=\"attendee_email\" class=\"email grunion-field\" required aria-required=\"true\" \/>\n                <\/div>\n                \n                <div class=\"grunion-field-name-wrap grunion-field-wrap\">\n                    <label for=\"attendee_first_name\" class=\"grunion-field-label name\">\n                        Given Name + Middle Name <span>*<\/span> <em>\n                            As mentioned on passport and event ticket (First Name)                        <\/em>\n                    <\/label>\n                    <input type=\"text\" name=\"attendee_first_name\" class=\"text grunion-field\" required aria-required=\"true\" \/>\n                <\/div>\n\n                <div class=\"grunion-field-name-wrap grunion-field-wrap\">\n                    <label for=\"attendee_last_name\" class=\"grunion-field-label name\">\n                        Surname <span>*<\/span> <em>\n                            As mentioned on passport and event ticket (Last Name)                        <\/em>\n                    <\/label>\n                    <input type=\"text\" name=\"attendee_last_name\" class=\"text grunion-field\" required aria-required=\"true\" \/>\n                <\/div>\n\n                <div class=\"grunion-field-date-wrap grunion-field-wrap\">\n                    <label for=\"attendee_date_birth\" class=\"grunion-field-label date\">\n                        Date of Birth <span>*<\/span> <em>\n                            As mentioned on passport                        <\/em>\n                    <\/label>\n                    <input type=\"date\" name=\"attendee_date_birth\"\n                        max=\"2024-04-09\"\n                        class=\"date grunion-field hasDatepicker\" required aria-required=\"true\" \/>\n                <\/div>\n\n                <div class=\"grunion-field-text-wrap grunion-field-wrap\">\n                    <label for=\"passport_country\" class=\"grunion-field-label text\">\n                        Passport Issuing Country <span>*<\/span>\n                    <\/label>\n                    <input type=\"text\" name=\"passport_country\" class=\"text grunion-field\" required aria-required=\"true\" \/>\n                <\/div>\n\n                <div class=\"grunion-field-text-wrap grunion-field-wrap\">\n                    <label for=\"passport_number\" class=\"grunion-field-label text\">\n                        Passport Number <span>*<\/span>\n                    <\/label>\n                    <input type=\"text\" name=\"passport_number\" class=\"text grunion-field\" required aria-required=\"true\" \/>\n                <\/div>\n\n                <div class=\"grunion-field-date-wrap grunion-field-wrap\">\n                    <label for=\"passport_date_end\" class=\"grunion-field-label date\">\n                        Passport Expiry Date <span>*<\/span>\n                    <\/label>\n                    <input type=\"date\" name=\"passport_date_end\"\n                        min=\"2026-09-03\"\n                        class=\"date grunion-field hasDatepicker\" required aria-required=\"true\" \/>\n                <\/div>\n\n                \n                    <div class=\"grunion-field-text-wrap grunion-field-wrap\">\n                        <label for=\"travel_accommodation\" class=\"grunion-field-label text\">\n                            Accommodation <span>*<\/span> <em>\n                                Hotel Name - Hotel Full Address                            <\/em>\n                        <\/label>\n                        <textarea name=\"travel_accommodation\" class=\"textarea text grunion-field\" required aria-required=\"true\" rows=\"4\" cols=\"47\"><\/textarea>\n                    <\/div>\n\n                    <h3>\n                        Flight Information                    <\/h3>\n\n                    <fieldset>\n                        \n                        <legend><h4>Arrival<\/h4><\/legend>\n                        \n                        <img decoding=\"async\" src=\"https:\/\/wpasia.org\/2026\/wp-content\/plugins\/visa-letter\/assets\/img\/wca24_boarding-pass_direct.png\" style=\"max-width:100%\" \/>\n                        \n                        <div class=\"grunion-field-name-wrap grunion-field-wrap\">\n                            <label for=\"travel_iata_start1\" class=\"grunion-field-label name\">\n                                Start Boarding Airport's IATA Code                            <\/label>\n                            <p class=\"dscription\"><em>Example:<\/em> Use \"<strong>TPE<\/strong>\" for Taoyuan International Airport<\/p>\n                            <input type=\"text\" name=\"travel_iata_start1\" class=\"text grunion-field\" pattern=\"[A-Za-z]{3}\" minlength=\"3\" maxlength=\"3\" \/>\n                        <\/div>\n                        \n                        <div class=\"grunion-field-date-wrap grunion-field-wrap\">\n                            <label for=\"travel_date_start1\" class=\"grunion-field-label date\">\n                                Start Boarding Date-Time <span>*<\/span>\n                            <\/label>\n                            <input type=\"datetime-local\" name=\"travel_date_start1\"\n                                max=\"2026-04-11\"\n                                min=\"2026-01-09\"\n                                class=\"date grunion-field hasDatepicker\" required aria-required=\"true\" \/>\n                        <\/div>\n\t\t\t\t\t\t\n                        <div class=\"grunion-field-name-wrap grunion-field-wrap\">\n                            <label for=\"travel_iata_start\" class=\"grunion-field-label name\">\n                                End Destination Airport's IATA Code                            <\/label>\n                            <p class=\"dscription\"><em>Example:<\/em> Use \"<strong>BOM<\/strong>\" for Chhatrapati Shivaji Maharaj International Airport<\/p>\n                            <input type=\"text\" name=\"travel_iata_start\" class=\"text grunion-field\" pattern=\"[A-Za-z]{3}\" minlength=\"3\" maxlength=\"3\" \/>\n                        <\/div>\n                        \n                        <div class=\"grunion-field-date-wrap grunion-field-wrap\">\n                            <label for=\"travel_date_start\" class=\"grunion-field-label date\">\n                                End Destination Date-Time <span>*<\/span>\n                            <\/label>\n                            <input type=\"datetime-local\" name=\"travel_date_start\"\n                                max=\"2026-04-11\"\n                                min=\"2026-01-09\"\n                                class=\"date grunion-field hasDatepicker\" required aria-required=\"true\" \/>\n                        <\/div>\n\n                        <div class=\"form-check\">\n                            <input type=\"checkbox\" class=\"form-check-input\" id=\"isArrivalOnestop\" name=\"isArrivalOnestop\" onclick=\"toggleFieldset()\" value=\"yes\" \/>\n                            <label class=\"form-check-label\" for=\"isArrivalOnestop\"><small>I have a Layover.<\/small><\/label>\n                        <\/div>\n                        \n                        <fieldset id=\"arrivalOnestop\" style=\"display: none;\">\n                            <legend>\n                                Arrival Layover<br>\n                                <small><em>Only if has an addtional Stop<\/em><\/small>\n                            <\/legend>\n                            \n                            <p><img decoding=\"async\" src=\"https:\/\/wpasia.org\/2026\/wp-content\/plugins\/visa-letter\/assets\/img\/wca24_boarding-pass_layover.png\" style=\"max-width:100%\" \/><\/p>\n        \n                            <p>If you have more than one stop during your flight, please email us at <a href=\"mailto:asia-local@wordcamp.org?subject=eVisa%20Letter%20for%20WordCamp%20Asia%202026\">asia-local@wordcamp.org<\/a>.<\/p>\n                            <div class=\"grunion-field-name-wrap grunion-field-wrap\">\n                                <label for=\"travel_iata_start_onestop\" class=\"grunion-field-label name\">\n                                    Layover Airport's IATA Code [One-Stop]                                <\/label>\n                                <p class=\"dscription\"><em>Example:<\/em> Use \"<strong>TPE<\/strong>\" for Taoyuan International Airport<\/p>\n                                <input type=\"text\" name=\"travel_iata_start_onestop\" class=\"text grunion-field arrival1stop\" pattern=\"[A-Za-z]{3}\" minlength=\"3\" maxlength=\"3\" \/>\n                            <\/div>\n        \n                            <div class=\"grunion-field-date-wrap grunion-field-wrap\">\n                                <label for=\"travel_date_start_onestop\" class=\"grunion-field-label date\">\n                                    Layover Landing Date-Time from  \"<span id=\"arrivalStartIata\"><\/span>\"\n                                <\/label>\n                                <input type=\"datetime-local\" name=\"travel_date_start_onestop\"\n                                    max=\"2026-04-11\"\n                                    min=\"2026-01-09\"\n                                    class=\"date grunion-field hasDatepicker arrival1stop\" \/>\n                            <\/div>\n        \n                            <div class=\"grunion-field-date-wrap grunion-field-wrap\">\n                                <label for=\"travel_date_start1_onestop\" class=\"grunion-field-label date\">\n                                    Layover Boarding Date-Time to  \"<span id=\"arrivalEndIata\"><\/span>\"\n                                <\/label>\n                                <input type=\"datetime-local\" name=\"travel_date_start1_onestop\"\n                                    max=\"2026-04-11\"\n                                    min=\"2026-01-09\"\n                                    class=\"date grunion-field hasDatepicker arrival1stop\" \/>\n                            <\/div>\n                        <\/fieldset>\n                        \n                    <\/fieldset>\n\n                    <fieldset>\n                        \n                        <legend><h4>Departure<\/h4><\/legend>\n                        \n                        <img decoding=\"async\" src=\"https:\/\/wpasia.org\/2026\/wp-content\/plugins\/visa-letter\/assets\/img\/wca24_boarding-pass_direct.png\" style=\"max-width:100%\" \/>\n                        \n                        <div class=\"grunion-field-name-wrap grunion-field-wrap\">\n                            <label for=\"travel_iata_end\" class=\"grunion-field-label name\">\n                                Start Boarding Airport's IATA Code                            <\/label>\n                            <p class=\"dscription\"><em>Example:<\/em> Use \"<strong>BOM<\/strong>\" for Chhatrapati Shivaji Maharaj International Airport<\/p>\n                            <input type=\"text\" name=\"travel_iata_end\" class=\"text grunion-field\" pattern=\"[A-Za-z]{3}\" minlength=\"3\" maxlength=\"3\" \/>\n                        <\/div>\n\t\t\t\t\n                        \n                        <div class=\"grunion-field-date-wrap grunion-field-wrap\">\n                            <label for=\"travel_date_end\" class=\"grunion-field-label date\">\n                                Start Boarding Date-Time <span>*<\/span>\n                            <\/label>\n                            <input type=\"datetime-local\" name=\"travel_date_end\"\n                                max=\"2026-04-11\"\n                                min=\"2026-01-11\"\n                                class=\"date grunion-field hasDatepicker\" required aria-required=\"true\" \/>\n                        <\/div>\n                        \n                        <div class=\"grunion-field-name-wrap grunion-field-wrap\">\n                            <label for=\"travel_iata_end1\" class=\"grunion-field-label name\">\n                                End Destination Airport's IATA Code                            <\/label>\n                            <p class=\"dscription\"><em>Example:<\/em> Use \"<strong>TPE<\/strong>\" for Taoyuan International Airport<\/p>\n                            <input type=\"text\" name=\"travel_iata_end1\" class=\"text grunion-field\" pattern=\"[A-Za-z]{3}\" minlength=\"3\" maxlength=\"3\" \/>\n                        <\/div>\n                        \n                        <div class=\"grunion-field-date-wrap grunion-field-wrap\">\n                            <label for=\"travel_date_end1\" class=\"grunion-field-label date\">\n                                End Destination Date-Time <span>*<\/span>\n                            <\/label>\n                            <input type=\"datetime-local\" name=\"travel_date_end1\"\n                                max=\"2026-04-11\"\n                                min=\"2026-01-11\"\n                                class=\"date grunion-field hasDatepicker\" required aria-required=\"true\" \/>\n                        <\/div>\n\n                        <div class=\"form-check\">\n                            <input type=\"checkbox\" class=\"form-check-input\" id=\"isDepartureOnestop\" name=\"isDepartureOnestop\" onclick=\"toggleFieldset()\" value=\"yes\" \/>\n                            <label class=\"form-check-label\" for=\"isDepartureOnestop\"><small>I have a Layover.<\/small><\/label>\n                        <\/div>\n                        \n                        <fieldset id=\"departureOnestop\" style=\"display: none;\">\n                            <legend>\n                                Departure Layover<br>\n                                <small><em>Only if has an addtional Stop<\/em><\/small>\n                            <\/legend>\n                            \n                            <p><img decoding=\"async\" src=\"https:\/\/wpasia.org\/2026\/wp-content\/plugins\/visa-letter\/assets\/img\/wca24_boarding-pass_layover.png\" style=\"max-width:100%\" \/><\/p>\n        \n                            <p>If you have more than one stop during your flight, please email us at <a href=\"mailto:asia-local@wordcamp.org?subject=eVisa%20Letter%20for%20WordCamp%20Asia%202026\">asia-local@wordcamp.org<\/a>.<\/p>\n                            <div class=\"grunion-field-name-wrap grunion-field-wrap\">\n                                <label for=\"travel_iata_end_onestop\" class=\"grunion-field-label name\">\n                                    Layover Airport's IATA Code [One-Stop]                                <\/label>\n                                <p class=\"dscription\"><em>Example:<\/em> Use \"<strong>TPE<\/strong>\" for Taoyuan International Airport<\/p>\n                                <input type=\"text\" name=\"travel_iata_end_onestop\" class=\"text grunion-field departure1stop\" pattern=\"[A-Za-z]{3}\" minlength=\"3\" maxlength=\"3\" \/>\n                            <\/div>\n        \n                            <div class=\"grunion-field-date-wrap grunion-field-wrap\">\n                                <label for=\"travel_date_end_onestop\" class=\"grunion-field-label date\">\n                                    Layover Landing Date-Time from  \"<span id=\"departureEndIata\"><\/span>\"\n                                <\/label>\n                                <input type=\"datetime-local\" name=\"travel_date_end_onestop\"\n                                    max=\"2026-04-11\"\n                                    min=\"2026-01-11\"\n                                    class=\"date grunion-field hasDatepicker departure1stop\" \/>\n                            <\/div>\n        \n                            <div class=\"grunion-field-date-wrap grunion-field-wrap\">\n                                <label for=\"travel_date_end1_onestop\" class=\"grunion-field-label date\">\n                                    Layover Boarding Date-Time to  \"<span id=\"departureStartIata\"><\/span>\"\n                                <\/label>\n                                <input type=\"datetime-local\" name=\"travel_date_end1_onestop\"\n                                    max=\"2026-04-11\"\n                                    min=\"2026-01-11\"\n                                    class=\"date grunion-field hasDatepicker departure1stop\" \/>\n                            <\/div>\n                        <\/fieldset>\n                        \n                    <\/fieldset>\n\n\n                \n                <div class=\"form-check\">\n                    <input type=\"checkbox\" class=\"form-check-input\" id=\"validTicket\" required=\"\"\n                        oninvalid=\"this.setCustomValidity('You cannot request an invitation letter without a valid event ticket.')\"\n                        oninput=\"this.setCustomValidity('')\" required aria-required=\"true\" \/>\n                    <label class=\"form-check-label\" for=\"validTicket\"><small>I confirm that I have a valid event ticket.<\/small><\/label>\n                <\/div>\n\n                <!-- Nonce Field for Security -->\n                <input type=\"hidden\" id=\"visa_letter_nonce\" name=\"visa_letter_nonce\" value=\"e8c40eeb9f\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/2026\/wp-json\/wp\/v2\/pages\/39\" \/>                \n                                \n                <button type=\"submit\" name=\"visa_letter_submit\" class=\"button btn pushbutton-wide\">Generate Visa Letter<\/button>\n\n                <div class=\"notice warning notice-warning\">\n                    <p><strong>Please note that the invitation letter is only valid in combination with a valid event ticket.<\/strong><\/p>\n                    <p>Providing the invitation letter to the authorities without holding a valid event ticket can be considered forgery of documents.<\/p>\n                <\/div>\n\n            <\/form>\n        <\/div>\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-39","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wpasia.org\/2026\/wp-json\/wp\/v2\/pages\/39","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpasia.org\/2026\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wpasia.org\/2026\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wpasia.org\/2026\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wpasia.org\/2026\/wp-json\/wp\/v2\/comments?post=39"}],"version-history":[{"count":1,"href":"https:\/\/wpasia.org\/2026\/wp-json\/wp\/v2\/pages\/39\/revisions"}],"predecessor-version":[{"id":40,"href":"https:\/\/wpasia.org\/2026\/wp-json\/wp\/v2\/pages\/39\/revisions\/40"}],"wp:attachment":[{"href":"https:\/\/wpasia.org\/2026\/wp-json\/wp\/v2\/media?parent=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}