{"id":523,"date":"2025-12-02T21:17:22","date_gmt":"2025-12-02T20:17:22","guid":{"rendered":"https:\/\/www.panta-germ.com\/my-account\/register\/"},"modified":"2026-08-11T13:03:34","modified_gmt":"2026-08-11T11:03:34","slug":"register","status":"publish","type":"page","link":"https:\/\/www.panta-germ.com\/en\/my-account\/register\/","title":{"rendered":"Register"},"content":{"rendered":"        <div class=\"atslab-card\">\n            <h2 style=\"margin-top:0\">Register<\/h2>\n            <div id=\"atslab-reg-msg\" class=\"atslab-alert\" style=\"display:none\"><\/div>\n\n            <form id=\"atslab-register-form\">\n                <input type=\"hidden\" id=\"atslab_nonce\" name=\"atslab_nonce\" value=\"ae4335f476\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/pages\/523\" \/>                <input type=\"hidden\" name=\"action\" value=\"atslab_do_register\">\n                                <div class=\"atslab-row\">\n                    <div>\n                        <label class=\"atslab-label\">First name<\/label>\n                        <input class=\"atslab-input\" name=\"firstname\" autocomplete=\"given-name\" required>\n                    <\/div>\n                    <div>\n                        <label class=\"atslab-label\">last name<\/label>\n                        <input class=\"atslab-input\" name=\"lastname\" autocomplete=\"family-name\" required>\n                    <\/div>\n\n                    <div>\n                        <label class=\"atslab-label\">E-mail<\/label>\n                        <input class=\"atslab-input\" type=\"email\" name=\"email\" autocomplete=\"email\" required>\n                    <\/div>\n                    <div>\n                        <label class=\"atslab-label\">Password<\/label>\n                        <input class=\"atslab-input\" type=\"password\" name=\"password\" autocomplete=\"new-password\" required>\n                    <\/div>\n\n                    <div>\n                        <label class=\"atslab-label\">Phone<\/label>\n                        <input class=\"atslab-input\" name=\"phone\" autocomplete=\"tel\">\n                    <\/div>\n                    <div>\n                        <label class=\"atslab-label\">Street + No.<\/label>\n                        <input class=\"atslab-input\" name=\"street\" autocomplete=\"address-line1\">\n                    <\/div>\n\n                    <div>\n                        <label class=\"atslab-label\">additional address information<\/label>\n                        <input class=\"atslab-input\" name=\"address_addition\" autocomplete=\"address-line2\">\n                    <\/div>\n                    <div>\n                        <label class=\"atslab-label\">Zip-Code<\/label>\n                        <input class=\"atslab-input\" name=\"zipcode\" autocomplete=\"postal-code\">\n                    <\/div>\n\n                    <div>\n                        <label class=\"atslab-label\">City<\/label>\n                        <input class=\"atslab-input\" name=\"city\" autocomplete=\"address-level2\">\n                    <\/div>\n                    <div>\n                        <label class=\"atslab-label\">Country<\/label>\n                        <input class=\"atslab-input\" name=\"country\" autocomplete=\"country-name\">\n                    <\/div>\n\n                    <div>\n                        <label class=\"atslab-label\">language<\/label>\n                        <select class=\"atslab-select\" name=\"language\">\n                            <option value=\"de\">German<\/option>\n                            <option value=\"en\">English<\/option>\n                        <\/select>\n                    <\/div>\n                    <div>\n                        <label class=\"atslab-label\">transmission method<\/label>\n                        <select class=\"atslab-select\" name=\"delivery_method\">\n                            <option value=\"email\">E-mail<\/option>\n                            <option value=\"post\">Postal Service<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <label style=\"display:flex;gap:10px;align-items:center;margin-top:10px\">\n                    <input type=\"checkbox\" name=\"policy\" required>\n                    <span>I accept the <a href=\"https:\/\/www.panta-germ.com\/en\/legal\/privacy-policy\/\" target=\"_blank\" rel=\"noopener\">Privacy Policy<\/a>.<\/span>\n                <\/label>\n\n                <div class=\"atslab-actions\">\n                    <button class=\"et_pb_button atslab-btn-primary\" type=\"submit\">\n                        Register                    <\/button>\n                <\/div>\n            <\/form>\n        <\/div>\n\n        <script>\n            var atslabRegisterI18n = {\"please_confirm\":\"Please confirm your email address.\",\"error\":\"Error.\",\"network_error\":\"The request could not be completed. Please check your connection and try again.\",\"session_expired\":\"The session token expired. Please reload the page and try again.\"};\n\n            (function($){\n                'use strict';\n                const ajaxUrl = \"https:\\\/\\\/www.panta-germ.com\\\/wp-admin\\\/admin-ajax.php\";\n\n                function isNonceFailure(xhr) {\n                    if (!xhr || Number(xhr.status) !== 403) return false;\n                    const text = $.trim(xhr.responseText || '');\n                    if (text === '-1') return true;\n                    let json = xhr.responseJSON || null;\n                    if (!json && text) {\n                        try { json = JSON.parse(text); } catch (e) {}\n                    }\n                    return !!(json && (json.code === 'nonce_expired' || json.code === 'invalid_nonce'));\n                }\n\n                function refreshRegisterNonce($f) {\n                    const d = $.Deferred();\n                    $.ajax({\n                        url: ajaxUrl,\n                        method: 'POST',\n                        dataType: 'json',\n                        cache: false,\n                        data: {\n                            action: 'atslab_auth_bootstrap',\n                            _atslab_ts: Date.now()\n                        }\n                    }).done(function(r){\n                        if (r && r.ok && r.nonces && r.nonces.register) {\n                            $f.find('input[name=\"atslab_nonce\"]').val(r.nonces.register);\n                            d.resolve();\n                        } else {\n                            d.reject();\n                        }\n                    }).fail(function(xhr){ d.reject(xhr); });\n                    return d.promise();\n                }\n\n                function sendRegistration($f, retryAllowed) {\n                    const d = $.Deferred();\n                    $.ajax({\n                        url: ajaxUrl,\n                        method: 'POST',\n                        data: $f.serialize(),\n                        dataType: 'json',\n                        cache: false\n                    }).done(function(r){ d.resolve(r); })\n                      .fail(function(xhr){\n                          if (retryAllowed && isNonceFailure(xhr)) {\n                              refreshRegisterNonce($f).done(function(){\n                                  sendRegistration($f, false)\n                                      .done(function(r){ d.resolve(r); })\n                                      .fail(function(xhr, reason){ d.reject(xhr, reason); });\n                              }).fail(function(){ d.reject(xhr, 'nonce_refresh_failed'); });\n                              return;\n                          }\n                          d.reject(xhr, isNonceFailure(xhr) ? 'nonce_failed' : 'request_failed');\n                      });\n                    return d.promise();\n                }\n\n                $('#atslab-register-form').on('submit', function(e){\n                    e.preventDefault();\n                    const $f = $(this),\n                          $b = $f.find('[type=submit]').prop('disabled', true),\n                          $box = $('#atslab-reg-msg').removeClass('atslab-success atslab-error').hide();\n\n                    \/\/ Always refresh before sending. If bootstrap is temporarily unavailable,\n                    \/\/ the embedded nonce remains a graceful fallback and the request is tried.\n                    refreshRegisterNonce($f).always(function(){\n                        sendRegistration($f, true)\n                            .done(function(r){\n                                if (!r || typeof r !== 'object') r = null;\n                                if (r && r.ok) {\n                                    $box.addClass('atslab-success')\n                                       .text(r.msg || atslabRegisterI18n.please_confirm)\n                                       .show();\n                                    $f[0].reset();\n                                } else {\n                                    $box.addClass('atslab-error')\n                                       .text((r && r.msg) || atslabRegisterI18n.error)\n                                       .show();\n                                }\n                            })\n                            .fail(function(xhr, reason){\n                                const text = (reason === 'nonce_refresh_failed' || reason === 'nonce_failed')\n                                    ? atslabRegisterI18n.session_expired\n                                    : atslabRegisterI18n.network_error;\n                                $box.addClass('atslab-error').text(text).show();\n                            })\n                            .always(function(){ $b.prop('disabled', false); });\n                    });\n                });\n            })(jQuery);\n        <\/script>\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":519,"menu_order":60,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-523","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.panta-germ.com\/en\/wp-json\/wp\/v2\/pages\/523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.panta-germ.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.panta-germ.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.panta-germ.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.panta-germ.com\/en\/wp-json\/wp\/v2\/comments?post=523"}],"version-history":[{"count":1,"href":"https:\/\/www.panta-germ.com\/en\/wp-json\/wp\/v2\/pages\/523\/revisions"}],"predecessor-version":[{"id":1505,"href":"https:\/\/www.panta-germ.com\/en\/wp-json\/wp\/v2\/pages\/523\/revisions\/1505"}],"up":[{"embeddable":true,"href":"https:\/\/www.panta-germ.com\/en\/wp-json\/wp\/v2\/pages\/519"}],"wp:attachment":[{"href":"https:\/\/www.panta-germ.com\/en\/wp-json\/wp\/v2\/media?parent=523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}