{"id":10827,"date":"2023-06-08T10:01:54","date_gmt":"2023-06-08T10:01:54","guid":{"rendered":"https:\/\/oxomuseo.com\/?page_id=10827"},"modified":"2026-06-24T11:14:08","modified_gmt":"2026-06-24T09:14:08","slug":"tarjeta-regalo","status":"publish","type":"page","link":"https:\/\/oxomuseomalaga.com\/en\/tarjeta-regalo\/","title":{"rendered":"GIFT CARD"},"content":{"rendered":"<div>    <div id=\"tarjetas-regalo-1root\" class=\"tarjetas-regalo-canje\">\n        <form class=\"tarjetas-regalo-form\" novalidate>\n            <label class=\"tarjetas-regalo-label\" for=\"tarjetas-regalo-1codigo-1\">Introduce el codigo de tu tarjeta<\/label>\n            <div class=\"tarjetas-regalo-code\" aria-describedby=\"tarjetas-regalo-1root-help\">\n                <input class=\"uk-input tarjetas-regalo-code-part\" type=\"text\" id=\"tarjetas-regalo-1codigo-1\" inputmode=\"latin\" autocomplete=\"off\" maxlength=\"3\" pattern=\"[A-Za-z0-9]{3}\" required>\n                <span class=\"tarjetas-regalo-separator\" aria-hidden=\"true\">-<\/span>\n                <input class=\"uk-input tarjetas-regalo-code-part\" type=\"text\" id=\"tarjetas-regalo-1codigo-2\" inputmode=\"latin\" autocomplete=\"off\" maxlength=\"3\" pattern=\"[A-Za-z0-9]{3}\" required>\n                <span class=\"tarjetas-regalo-separator\" aria-hidden=\"true\">-<\/span>\n                <input class=\"uk-input tarjetas-regalo-code-part\" type=\"text\" id=\"tarjetas-regalo-1codigo-3\" inputmode=\"latin\" autocomplete=\"off\" maxlength=\"3\" pattern=\"[A-Za-z0-9]{3}\" required>\n            <\/div>\n            <p id=\"tarjetas-regalo-1root-help\" class=\"tarjetas-regalo-help\">Formato de la tarjeta: XXX-XXX-XXX<\/p>\n            <p class=\"tarjetas-regalo-error\" role=\"alert\" hidden><\/p>\n            <button class=\"uk-button uk-button-oxo tarjetas-regalo-submit\" type=\"submit\">Canjear<\/button>\n        <\/form>\n\n        <div class=\"tarjetas-regalo-result\" hidden>\n            <p class=\"tarjetas-regalo-loading\" role=\"status\" aria-live=\"polite\">Cargando calendario...<\/p>\n            <h2 class=\"tarjetas-regalo-title\" hidden>Ahora selecciona el dia, la sesion y el numero de entradas que quieres canjear.<\/h2>\n            <button class=\"tarjetas-regalo-reset\" type=\"button\" hidden>Usar otro codigo<\/button>\n            <iframe\n                id=\"kefEventIframe53\"\n                class=\"kef-event-embed tarjetas-regalo-iframe\"\n                data-kef-event-embed=\"1\"\n                data-kef-embed-autoscroll=\"1\"\n                width=\"100%\"\n                frameborder=\"0\"\n                scrolling=\"no\"\n                style=\"width:100%;border:0;overflow:hidden;scrollbar-width:none;-ms-overflow-style:none;min-height:320px;\"\n                hidden\n            ><\/iframe>\n        <\/div>\n    <\/div>\n\n    <style>\n        #tarjetas-regalo-1root .tarjetas-regalo-label{display:block;margin:0 0 14px;font-weight:700;}\n        #tarjetas-regalo-1root .tarjetas-regalo-code{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}\n        #tarjetas-regalo-1root .tarjetas-regalo-code-part{width:72px;min-height:44px;text-align:center;text-transform:uppercase;border:2px solid currentColor;}\n        #tarjetas-regalo-1root .tarjetas-regalo-separator{font-weight:700;}\n        #tarjetas-regalo-1root .tarjetas-regalo-help{margin:8px 0 16px;font-size:12px;line-height:1.45;}\n        #tarjetas-regalo-1root .tarjetas-regalo-error{margin:0 0 14px;color:#b00020;font-weight:700;}\n        #tarjetas-regalo-1root .tarjetas-regalo-submit[disabled]{opacity:.55;cursor:wait;}\n        #tarjetas-regalo-1root .tarjetas-regalo-loading{margin:0 0 16px;font-weight:700;}\n        #tarjetas-regalo-1root .tarjetas-regalo-title{margin:0 0 18px;font-size:clamp(20px,3vw,30px);line-height:1.2;}\n        #tarjetas-regalo-1root .tarjetas-regalo-reset{margin:0 0 14px;min-height:40px;padding:8px 14px;border:1px solid currentColor;background:transparent;cursor:pointer;}\n        #tarjetas-regalo-1root .tarjetas-regalo-iframe{display:block;}\n        @media (max-width:480px){\n            #tarjetas-regalo-1root .tarjetas-regalo-code{gap:6px;}\n            #tarjetas-regalo-1root .tarjetas-regalo-code-part{width:64px;}\n        }\n    <\/style>\n\n    <script>\n        (function() {\n            var root = document.getElementById(\"tarjetas-regalo-1root\");\n            if (!root) return;\n\n            var baseUrl = \"https:\\\/\\\/venta.kaijutickets.com\\\/events\\\/oxo-museo-videojuego-malaga-2026\\\/\";\n            var iframeId = \"kefEventIframe53\";\n\n            function find(selector) {\n                return root.querySelector(selector);\n            }\n\n            function findAll(selector) {\n                return Array.prototype.slice.call(root.querySelectorAll(selector));\n            }\n\n            function setHidden(element, hidden) {\n                if (!element) return;\n                if (hidden) {\n                    element.setAttribute('hidden', 'hidden');\n                } else {\n                    element.removeAttribute('hidden');\n                }\n            }\n\n            function normalizePart(value) {\n                return String(value || '').toUpperCase().replace(\/[^A-Z0-9]\/g, '').slice(0, 3);\n            }\n\n            function buildCode() {\n                var parts = [];\n                findAll('.tarjetas-regalo-code-part').forEach(function(input) {\n                    parts.push(normalizePart(input.value));\n                });\n                if (parts.length !== 3 || parts[0].length !== 3 || parts[1].length !== 3 || parts[2].length !== 3) {\n                    return '';\n                }\n                return parts.join('-');\n            }\n\n            function buildRedeemUrl(code) {\n                try {\n                    var url = new URL(baseUrl, window.location.href);\n                    url.searchParams.set('descuento', code);\n                    return url.toString();\n                } catch (e) {\n                    var separator = String(baseUrl).indexOf('?') === -1 ? '?' : '&';\n                    return String(baseUrl) + separator + 'descuento=' + encodeURIComponent(code);\n                }\n            }\n\n            function setError(message) {\n                var error = find('.tarjetas-regalo-error');\n                if (!error) return;\n                if (!message) {\n                    error.textContent = '';\n                    setHidden(error, true);\n                    return;\n                }\n                error.textContent = message;\n                setHidden(error, false);\n            }\n\n            root.addEventListener('input', function(event) {\n                var input = event.target && event.target.closest ? event.target.closest('.tarjetas-regalo-code-part') : null;\n                if (!input || !root.contains(input)) return;\n\n                var normalized = normalizePart(input.value);\n                if (input.value !== normalized) {\n                    input.value = normalized;\n                }\n                if (normalized.length === 3) {\n                    var inputs = findAll('.tarjetas-regalo-code-part');\n                    var currentIndex = inputs.indexOf(input);\n                    if (currentIndex >= 0 && inputs[currentIndex + 1]) {\n                        inputs[currentIndex + 1].focus();\n                    }\n                }\n                setError('');\n            });\n\n            root.addEventListener('paste', function(event) {\n                var input = event.target && event.target.closest ? event.target.closest('.tarjetas-regalo-code-part') : null;\n                if (!input || !root.contains(input)) return;\n\n                var clipboard = event.clipboardData;\n                var pasted = clipboard ? clipboard.getData('text') : '';\n                if (!pasted) return;\n\n                event.preventDefault();\n                var clean = String(pasted).toUpperCase().replace(\/[^A-Z0-9]\/g, '').slice(0, 9);\n                var inputs = findAll('.tarjetas-regalo-code-part');\n                if (inputs[0]) inputs[0].value = clean.slice(0, 3);\n                if (inputs[1]) inputs[1].value = clean.slice(3, 6);\n                if (inputs[2]) {\n                    inputs[2].value = clean.slice(6, 9);\n                    inputs[2].focus();\n                }\n                setError('');\n            });\n\n            root.addEventListener('submit', function(event) {\n                var submittedForm = event.target && event.target.closest ? event.target.closest('.tarjetas-regalo-form') : null;\n                if (!submittedForm || !root.contains(submittedForm)) return;\n\n                event.preventDefault();\n                var code = buildCode();\n                if (!code) {\n                    setError('Introduce el codigo completo con formato XXX-XXX-XXX.');\n                    var incomplete = findAll('.tarjetas-regalo-code-part').filter(function(input) {\n                        return normalizePart(input.value).length < 3;\n                    })[0];\n                    if (incomplete) incomplete.focus();\n                    return;\n                }\n\n                var form = find('.tarjetas-regalo-form');\n                var button = find('.tarjetas-regalo-submit');\n                var result = find('.tarjetas-regalo-result');\n                var loading = find('.tarjetas-regalo-loading');\n                var title = find('.tarjetas-regalo-title');\n                var reset = find('.tarjetas-regalo-reset');\n                var iframe = document.getElementById(iframeId);\n\n                if (!iframe) {\n                    setError('No se ha encontrado el iframe configurado.');\n                    return;\n                }\n\n                setError('');\n                if (button) {\n                    button.disabled = true;\n                    button.textContent = 'Cargando...';\n                }\n                setHidden(form, true);\n                setHidden(result, false);\n                setHidden(loading, false);\n                if (loading) loading.style.display = '';\n                setHidden(title, true);\n                setHidden(reset, true);\n                iframe.hidden = true;\n\n                iframe.onload = function() {\n                    if (loading) loading.style.display = 'none';\n                    setHidden(title, false);\n                    setHidden(reset, false);\n                    iframe.hidden = false;\n                    if (button) {\n                        button.disabled = false;\n                        button.textContent = 'Canjear';\n                    }\n                    try {\n                        iframe.contentWindow.postMessage({ type: 'kef_embed_force_resize' }, '*');\n                    } catch (e) {}\n                };\n                iframe.src = buildRedeemUrl(code);\n            });\n\n            root.addEventListener('click', function(event) {\n                var resetButton = event.target && event.target.closest ? event.target.closest('.tarjetas-regalo-reset') : null;\n                if (!resetButton || !root.contains(resetButton)) return;\n\n                var iframe = document.getElementById(iframeId);\n                if (iframe) {\n                    iframe.removeAttribute('src');\n                    iframe.hidden = true;\n                }\n                setHidden(find('.tarjetas-regalo-result'), true);\n                setHidden(find('.tarjetas-regalo-title'), true);\n                setHidden(find('.tarjetas-regalo-reset'), true);\n                setHidden(find('.tarjetas-regalo-form'), false);\n                findAll('.tarjetas-regalo-code-part').forEach(function(input) {\n                    input.value = '';\n                });\n                var firstInput = find('.tarjetas-regalo-code-part');\n                if (firstInput) firstInput.focus();\n                var button = find('.tarjetas-regalo-submit');\n                if (button) {\n                    button.disabled = false;\n                    button.textContent = 'Canjear';\n                }\n                setError('');\n            });\n        })();\n    <\/script>\n    \n<\/div>\n<div><a class=\"uk-button uk-button-default\" href=\"#modal-center\" uk-toggle>INSTRUCCIONES DE USO<\/a><\/p>\n<div id=\"modal-center\" class=\"uk-flex-top\" uk-modal>\n<div class=\"uk-modal-dialog uk-modal-body uk-margin-auto-vertical\">\n<p>        <button class=\"uk-modal-close-default\" type=\"button\" uk-close><\/button><\/p>\n<h3>\u00bfComo funciona?<\/h3>\n<p>Para canjear tu tarjeta es tan simple como rascar la zona trasera de la tarjeta regalo y introducir en la casilla superior el c\u00f3digo de 9 digitos. <br \/>(XXX-XXX-XXX)<br \/> <b>\u00a1No es necesario que introduzcas los guiones!<\/b><\/p>\n<p>Una vez introducido pulsa en canjear y a continuaci\u00f3n selecciona el d\u00eda y la hora los cuales quieres conocernos.<\/p>\n<p>Con el c\u00f3digo de tu tarjeta <b>puedes canjear hasta dos entradas(2)<\/b> pero no necesariamente tienes que sacarlas a la vez. Puedes usarlas para t\u00ed o regalarsela a quien desees.<\/p>\n<p>Selecciona el n\u00famero de entradas y pulsa en continuar, introduce tus datos y recibiras en tu e-mail las entradas para el d\u00eda y hora seleccionado.<\/p>\n<h4>\u00a1Listo!<\/h4>\n<p>Ya solo queda esperar el d\u00eda que has elegido y ense\u00f1ar tu entrada digital o f\u00edsicamente en la entrada del museo.<\/p>\n<p> Si tienes alguna otra duda puedes escribirnos a <a href=mailto:malaga@oxomuseo.com >malaga@oxomuseo.com <\/a><\/p>\n<\/p><\/div>\n<\/div>\n<\/div>\n<p><!--more--><br \/>\n<!-- {\"type\":\"layout\",\"children\":[{\"type\":\"section\",\"props\":{\"height\":\"viewport\",\"height_offset_top\":true,\"image_position\":\"center-center\",\"style\":\"default\",\"title_breakpoint\":\"xl\",\"title_position\":\"top-left\",\"title_rotation\":\"left\",\"vertical_align\":\"middle\",\"width\":\"default\"},\"children\":[{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"text\",\"props\":{\"column_breakpoint\":\"m\",\"content\":\"[formulario]\\n\",\"margin\":\"default\",\"text_align\":\"center\"}}]}]},{\"type\":\"row\",\"children\":[{\"type\":\"column\",\"props\":{\"image_position\":\"center-center\",\"position_sticky_breakpoint\":\"m\"},\"children\":[{\"type\":\"text\",\"props\":{\"column_breakpoint\":\"m\",\"content\":\"<a class=\\\"uk-button uk-button-default\\\" href=\\\"#modal-center\\\" uk-toggle>INSTRUCCIONES DE USO<\\\/a>\\n\\n\n\n<div id=\\\"modal-center\\\" class=\\\"uk-flex-top\\\" uk-modal>\\n    \n\n<div class=\\\"uk-modal-dialog uk-modal-body uk-margin-auto-vertical\\\">\\n\\n        <button class=\\\"uk-modal-close-default\\\" type=\\\"button\\\" uk-close><\\\/button>\\n\\n        \\n        \n\n<h3>\\u00bfComo funciona?<\\\/h3>\\n        \n\n<p>Para canjear tu tarjeta es tan simple como rascar la zona trasera de la tarjeta regalo y introducir en la casilla superior el c\\u00f3digo de 9 digitos. <br \/>(XXX-XXX-XXX)<br \/> <b>\\u00a1No es necesario que introduzcas los guiones!<\\\/b><\\\/p>\\n        \n\n<p>Una vez introducido pulsa en canjear y a continuaci\\u00f3n selecciona el d\\u00eda y la hora los cuales quieres conocernos.<\\\/p>\\n        \n\n<p>Con el c\\u00f3digo de tu tarjeta <b>puedes canjear hasta dos entradas(2)<\\\/b> pero no necesariamente tienes que sacarlas a la vez. Puedes usarlas para t\\u00ed o regalarsela a quien desees.<\\\/p>\\n        \\n        \n\n<p>Selecciona el n\\u00famero de entradas y pulsa en continuar, introduce tus datos y recibiras en tu e-mail las entradas para el d\\u00eda y hora seleccionado.<\\\/p>\\n        \n\n<h4>\\u00a1Listo!<\\\/h4>\\n            \n\n<p>Ya solo queda esperar el d\\u00eda que has elegido y ense\\u00f1ar tu entrada digital o f\\u00edsicamente en la entrada del museo.<\\\/p>\\n        \\n        \n\n<p> Si tienes alguna otra duda puedes escribirnos a <a href=mailto:malaga@oxomuseo.com >malaga@oxomuseo.com <\\\/a><\\\/p>\\n\\n    <\\\/div>\\n<\\\/div>\",\"margin\":\"default\",\"text_align\":\"center\"}}]}]}]}],\"version\":\"4.5.32\"} --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>INSTRUCCIONES DE USO \u00bfComo funciona? Para canjear tu tarjeta es tan simple como rascar la zona trasera de la tarjeta regalo y introducir en la casilla superior el c\u00f3digo de 9 digitos. (XXX-XXX-XXX) \u00a1No es necesario que introduzcas los guiones! Una vez introducido pulsa en canjear y a continuaci\u00f3n selecciona el d\u00eda y la hora [&hellip;]<\/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-10827","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/oxomuseomalaga.com\/en\/wp-json\/wp\/v2\/pages\/10827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oxomuseomalaga.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/oxomuseomalaga.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/oxomuseomalaga.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oxomuseomalaga.com\/en\/wp-json\/wp\/v2\/comments?post=10827"}],"version-history":[{"count":1,"href":"https:\/\/oxomuseomalaga.com\/en\/wp-json\/wp\/v2\/pages\/10827\/revisions"}],"predecessor-version":[{"id":19045,"href":"https:\/\/oxomuseomalaga.com\/en\/wp-json\/wp\/v2\/pages\/10827\/revisions\/19045"}],"wp:attachment":[{"href":"https:\/\/oxomuseomalaga.com\/en\/wp-json\/wp\/v2\/media?parent=10827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}