﻿{"id":150382,"date":"2022-10-31T16:32:05","date_gmt":"2022-10-31T15:32:05","guid":{"rendered":"https:\/\/happymami.com\/customize-your-happymami-bottle-in-4-steps\/"},"modified":"2026-01-29T12:03:05","modified_gmt":"2026-01-29T11:03:05","slug":"customize-your-happymami-bottle-in-4-steps","status":"publish","type":"page","link":"https:\/\/happymami.com\/en\/customize-your-happymami-bottle-in-4-steps\/","title":{"rendered":"Customize your Happymami bottle in 4 steps"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"150382\" class=\"elementor elementor-150382 elementor-30165\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-42b8d83 e-flex e-con-boxed e-con e-parent\" data-id=\"42b8d83\" 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-b86c810 elementor-widget elementor-widget-template\" data-id=\"b86c810\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<header data-elementor-type=\"header\" data-elementor-id=\"150366\" class=\"elementor elementor-150366 elementor-6613 elementor-6613\" data-elementor-post-type=\"elementor_library\">\n\t\t\t<div class=\"elementor-element elementor-element-1bbd35a elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"1bbd35a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-05e5367 elementor-widget__width-inherit elementor-widget elementor-widget-template\" data-id=\"05e5367\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"container\" data-elementor-id=\"151354\" class=\"elementor elementor-151354 elementor-146824 elementor-146824 elementor-146824\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t<div class=\"elementor-element elementor-element-76243688 e-con-full e-flex e-con e-parent\" data-id=\"76243688\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-bfabfe2 e-con-full e-flex e-con e-child\" data-id=\"bfabfe2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5f14329 elementor--v-position-bottom elementor--h-position-center elementor-widget elementor-widget-slides\" data-id=\"5f14329\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;navigation&quot;:&quot;none&quot;,&quot;autoplay_speed&quot;:5500,&quot;transition&quot;:&quot;fade&quot;,&quot;transition_speed&quot;:1000,&quot;autoplay&quot;:&quot;yes&quot;,&quot;infinite&quot;:&quot;yes&quot;}\" data-widget_type=\"slides.default\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-slides-wrapper elementor-main-swiper swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Diapositivas\" dir=\"ltr\" data-animation=\"\">\n\t\t\t\t<div class=\"swiper-wrapper elementor-slides\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-repeater-item-a3b1196 swiper-slide\" role=\"group\" aria-roledescription=\"slide\"><div class=\"swiper-slide-bg\"><\/div><div class=\"swiper-slide-inner\" ><div class=\"swiper-slide-contents\"><div class=\"elementor-slide-description\"><p>Your bottle includes midwife support<\/p>\n<\/div><\/div><\/div><\/div><div class=\"elementor-repeater-item-74d8e34 swiper-slide\" role=\"group\" aria-roledescription=\"slide\"><div class=\"swiper-slide-bg\"><\/div><div class=\"swiper-slide-inner\" ><div class=\"swiper-slide-contents\"><div class=\"elementor-slide-description\"><p><span style=\"color: #ffffff;\"><a class=\"klaviyo_form_trigger\" style=\"color: #ffffff;\">Real motherhood. <span style=\"text-decoration: underline;\">Subscribe here.<\/span><\/a><\/span><\/p>\n<p><script type=\"text\/javascript\">\ndocument.querySelector('.klaviyo_form_trigger').addEventListener('click', function (){\n\t\twindow._klOnsite = window._klOnsite || []; \n\twindow._klOnsite.push(['openForm', 'VJRY3p']);\n\t});\n<\/script><\/p>\n<\/div><\/div><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59810fd elementor-widget__width-inherit elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-n-carousel\" data-id=\"59810fd\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;carousel_items&quot;:[{&quot;slide_title&quot;:&quot;Envio&quot;,&quot;_id&quot;:&quot;a4c078b&quot;},{&quot;slide_title&quot;:&quot;Newsletter&quot;,&quot;_id&quot;:&quot;482903b&quot;}],&quot;slides_to_show&quot;:&quot;1&quot;,&quot;slides_to_show_tablet&quot;:&quot;1&quot;,&quot;slides_to_scroll&quot;:&quot;1&quot;,&quot;autoplay_speed&quot;:6000,&quot;slides_to_show_mobile&quot;:&quot;1&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;infinite&quot;:&quot;yes&quot;,&quot;speed&quot;:500,&quot;offset_sides&quot;:&quot;none&quot;,&quot;image_spacing_custom&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;image_spacing_custom_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_spacing_custom_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"nested-carousel.default\">\n\t\t\t\t\t\t\t<div class=\"e-n-carousel swiper\" role=\"region\" aria-roledescription=\"carousel\" aria-label=\"Carrusel\" dir=\"ltr\">\n\t\t\t<div class=\"swiper-wrapper\" aria-live=\"off\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"1\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"1 of 2\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-884904d e-con-full e-flex e-con e-child\" data-id=\"884904d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e3d86e6 elementor-widget elementor-widget-text-editor\" data-id=\"e3d86e6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tYour bottle includes midwife support\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"swiper-slide\" data-slide=\"2\" role=\"group\" aria-roledescription=\"slide\" aria-label=\"2 of 2\">\n\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-fe68cb2 e-con-full e-flex e-con e-child\" data-id=\"fe68cb2\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9b07010 elementor-widget elementor-widget-html\" data-id=\"9b07010\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<a style=\"color: #ffffff;\">Real motherhood. <span style=\"text-decoration: underline;\">Subscribe here.<\/span><\/a><\/span>\n\n<!-- <span style=\"color: #ffffff;\"><a class=\"klaviyo_form_trigger\" style=\"color: #ffffff;\">\ud83d\udc8c Maternidad real. <span style=\"text-decoration: underline;\">Suscr\u00edbete aqu\u00ed<\/span><\/a><\/span>\n-->\n<!-- \n<script type=\"text\/javascript\">\ndocument.querySelector('.klaviyo_form_trigger').addEventListener('click', function (){\n\t\twindow._klOnsite = window._klOnsite || []; \n\twindow._klOnsite.push(['openForm', 'VJRY3p']);\n\t});\n<\/script> -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\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<div class=\"elementor-element elementor-element-b810ce0 e-con-full e-flex e-con e-parent\" data-id=\"b810ce0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5403835 elementor-widget elementor-widget-image\" data-id=\"5403835\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/happymami.com\/en\/\">\n\t\t\t\t\t\t\t<img decoding=\"async\" width=\"529\" height=\"62\" src=\"https:\/\/happymami.com\/wp-content\/uploads\/2025\/08\/cropped-logotipo-F49898.png\" class=\"attachment-full size-full wp-image-144797\" alt=\"logo de happymami\" srcset=\"https:\/\/happymami.com\/wp-content\/uploads\/2025\/08\/cropped-logotipo-F49898.png 529w, https:\/\/happymami.com\/wp-content\/uploads\/2025\/08\/cropped-logotipo-F49898-300x35.png 300w\" sizes=\"(max-width: 529px) 100vw, 529px\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/header>\n\t\t\t\t<\/div>\n\t\t\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<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ef8500c elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"ef8500c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7c0f032\" data-id=\"7c0f032\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-60ccc45 elementor-widget elementor-widget-html\" data-id=\"60ccc45\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t    <!-- Copiar esta secci\u00f3nn -->\r\n    <section id=\"happymami-wizard\">\r\n        <!-- pop-container -->\r\n        <div class=\"popup-overlay\" onclick=\"closePopup()\"><\/div>\r\n        <div class=\"popup\">\r\n            <button class=\"btn-close\" onclick=\"closePopup()\">\u00d7<\/button>\r\n            <div class=\"modal-body\"><\/div>\r\n        <\/div>\r\n        <!-- Header -->\r\n        <!-- <div class=\"progress-circle\" data-progress=\"0\/0\"><\/div> -->\r\n        <div class=\"progress-bar\">\r\n            <div class=\"progress-container\">\r\n                <div class=\"stage\">\r\n                    <h2><\/h2>\r\n                <\/div>\r\n                <div class=\"progress-steps\" aria-label=\"Progreso\">\r\n                    <div class=\"progress-step\" data-step=\"1\">\r\n                        <span class=\"progress-dot\">1<\/span>\r\n                    <\/div>\r\n                    <div class=\"progress-line\" data-line=\"1\"><\/div>\r\n                    <div class=\"progress-step\" data-step=\"2\">\r\n                        <span class=\"progress-dot\">2<\/span>\r\n                    <\/div>\r\n                    <div class=\"progress-line\" data-line=\"2\"><\/div>\r\n                    <div class=\"progress-step\" data-step=\"3\">\r\n                        <span class=\"progress-dot\">3<\/span>\r\n                    <\/div>\r\n                    <div class=\"progress-line\" data-line=\"3\"><\/div>\r\n                    <div class=\"progress-step\" data-step=\"4\">\r\n                        <span class=\"progress-dot\">4<\/span>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n        <!-- Container -->\r\n        <div class=\"step-container\">\r\n            <div class=\"btn-container desktop\">\r\n                <a href=\"#\" class=\"btn btn-back btn-hidden\">\r\n                <\/a>\r\n                <div class=\"preparing-message\"><\/div>\r\n            <\/div>\r\n            <h2 class=\"step-title\"><\/h2>\r\n            <p class=\"step-description\"><\/p>\r\n            <h3 class=\"step-call-to-action\"><\/h3>\r\n            <h3 class=\"step-info\"><\/h3>\r\n            <div class=\"step vertical\">\r\n                <div class=\"img-placeholder\"><\/div>\r\n                <div class=\"options\">\r\n                    <button class=\"option btn\"><\/button>\r\n                <\/div>\r\n            <\/div>\r\n            <div class=\"step horizontal\">\r\n                <div class=\"option box\">\r\n                    <div class=\"holder\">\r\n                        <div class=\"img-placeholder\"><\/div>\r\n                        <h4><\/h4>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"option box\">\r\n                    <div class=\"holder\">\r\n                        <div class=\"img-placeholder\"><\/div>\r\n                        <h4><\/h4>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"option box\">\r\n                    <div class=\"holder\">\r\n                        <div class=\"img-placeholder\"><\/div>\r\n                        <h4><\/h4>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n        <!-- FAQs -->\r\n        <div class=\"faq-container\">\r\n            <h3>@support-title@<\/h3>\r\n            <details>\r\n                <summary><\/summary>\r\n                <div class=\"content\"><\/div>\r\n            <\/details>\r\n        <\/div>\r\n        <!-- Buttons Container Responsive-->\r\n        <div class=\"btn-container responsive\">\r\n            <a href=\"#\" class=\"btn btn-back btn-hidden\">\r\n            <\/a>\r\n            <div class=\"preparing-message\"><\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- Client -->\r\n    <script type=\"text\/javascript\">\r\n        \/\/ Control\r\n        var json_url = 'https:\/\/happymami.com\/wp-content\/plugins\/happymami-wizard\/assets\/data\/standard_v1.json';\r\n        var language = 'en';\r\n        var imagepath = 'https:\/\/happymami.com\/wp-content\/plugins\/happymami-wizard\/assets\/img\/';\r\n        var currentcode = [];\r\n        var currentstep = null;\r\n        var translation = null;\r\n        var preparingMessage = '';\r\n        var encouragements = [];\r\n        var stepsKeys = [];\r\n        var lastCompletedCount = 0;\r\n        var progressAnimating = false;\r\n        var firstKey = null;\r\n        var wizardGotoStorageKey = 'happymami_wizard_goto';\r\n        var persistedGoto = '';\r\n        window.happymamiWizardEventControl = window.happymamiWizardEventControl || {\r\n            lastEvent: null,\r\n            lastEventTime: 0,\r\n            duplicateThreshold: 3000\r\n        };\r\n        function getNormalizedGotoValue(rawValue) {\r\n            var value = (rawValue || '').toString().trim();\r\n            return \/^\\d+$\/.test(value) ? value : '';\r\n        }\r\n        function preserveGotoAcrossLanguageSwitch() {\r\n            var pageUrl = new URL(window.location.href);\r\n            var currentGoto = getNormalizedGotoValue(pageUrl.searchParams.get('goto'));\r\n            var storedGoto = '';\r\n\r\n            try {\r\n                storedGoto = getNormalizedGotoValue(window.sessionStorage.getItem(wizardGotoStorageKey));\r\n            } catch (err) {\r\n                storedGoto = '';\r\n            }\r\n\r\n            if (currentGoto) {\r\n                persistedGoto = currentGoto;\r\n                try {\r\n                    window.sessionStorage.setItem(wizardGotoStorageKey, currentGoto);\r\n                } catch (err) {\r\n                    \/\/ Ignorar almacenamiento no disponible\r\n                }\r\n                return;\r\n            }\r\n\r\n            if (storedGoto) {\r\n                persistedGoto = storedGoto;\r\n                pageUrl.searchParams.set('goto', storedGoto);\r\n                window.history.replaceState({}, '', pageUrl.toString());\r\n                return;\r\n            }\r\n\r\n            persistedGoto = '';\r\n        }\r\n        function appendGotoToLink($link) {\r\n            if (!persistedGoto || !$link || !$link.length) {\r\n                return;\r\n            }\r\n\r\n            var href = $link.attr('href');\r\n            if (!href || href.indexOf('#') === 0 || href.indexOf('javascript:') === 0) {\r\n                return;\r\n            }\r\n\r\n            try {\r\n                var linkUrl = new URL(href, window.location.origin);\r\n                if (linkUrl.origin !== window.location.origin) {\r\n                    return;\r\n                }\r\n                linkUrl.searchParams.set('goto', persistedGoto);\r\n                $link.attr('href', linkUrl.toString());\r\n            } catch (err) {\r\n                \/\/ Ignorar enlaces no parseables\r\n            }\r\n        }\r\n        function patchWpmlLanguageLinks() {\r\n            if (!persistedGoto) {\r\n                return;\r\n            }\r\n            jQuery('.wpml-ls a, a.wpml-ls-link, #lang_sel a').each(function () {\r\n                appendGotoToLink(jQuery(this));\r\n            });\r\n        }\r\n\r\n        preserveGotoAcrossLanguageSwitch();\r\n        patchWpmlLanguageLinks();\r\n        \/\/ Carga JSON din\u00e1micamente\r\n        jQuery.getJSON(json_url, function(jsonData) {\r\n            \/\/ Verificar si el idioma existe en el JSON, sino usar espa\u00f1ol como fallback\r\n            if (!jsonData[language]) {\r\n                console.warn('Idioma \"' + language + '\" no encontrado en el JSON. Usando espa\u00f1ol (es) como fallback.');\r\n                language = 'es';\r\n            }\r\n            translation = jsonData[language];\r\n            \/\/ Ajustando botones y mensajes\r\n            jQuery('#happymami-wizard .btn-back').text(translation['btn-back']);\r\n            preparingMessage = translation['preparing-message'] || '';\r\n            encouragements = [];\r\n            stepsKeys = Object.keys(translation['steps'] || {});\r\n            jQuery('#happymami-wizard .preparing-message').html(formatMessage(preparingMessage));\r\n            \/\/ Muestra el primer paso seg\u00fan definici\u00f3n\r\n            firstKey = Object.keys(translation['steps'])[0];\r\n            showStage(firstKey);\r\n        });\r\n        \/\/ Sistema de porcentaje y progresi\u00f3n con animaci\u00f3n\r\n        function applyPercentageStyle(text, percentage, color){\r\n            var $circle = jQuery('#happymami-wizard .progress-bar .progress-circle');\r\n            \r\n            \/\/ Usar CSS custom properties para animar el progreso\r\n            $circle.css({\r\n                '--progress-value': percentage,\r\n                '--progress-color': color\r\n            });\r\n            $circle.attr('data-progress', text);\r\n        }\r\n        function formatMessage(text) {\r\n            return (text || '').replace(\/\\n\/g, '<br>');\r\n        }\r\n        function setProgressState(completedCount, activeIndex, halfLineIndex, isFinalComplete) {\r\n            var total = stepsKeys.length;\r\n            jQuery('#happymami-wizard .progress-steps')\r\n                .toggleClass('final-complete', !!isFinalComplete);\r\n\r\n            jQuery('#happymami-wizard .progress-step').each(function () {\r\n                var stepNum = parseInt(jQuery(this).attr('data-step'), 10);\r\n                jQuery(this).removeClass('completed active');\r\n                var $dot = jQuery(this).find('.progress-dot');\r\n                $dot.removeClass('milestone-pop');\r\n\r\n                if (stepNum <= completedCount) {\r\n                    jQuery(this).addClass('completed');\r\n                }\r\n                if (stepNum === activeIndex && completedCount < total && !isFinalComplete) {\r\n                    jQuery(this).addClass('active');\r\n                }\r\n\r\n                if (stepNum === total) {\r\n                    $dot.text((completedCount === total && isFinalComplete) ? '\u2713' : stepNum);\r\n                } else {\r\n                    $dot.text(stepNum);\r\n                }\r\n            });\r\n\r\n            jQuery('#happymami-wizard .progress-line').each(function () {\r\n                var lineNum = parseInt(jQuery(this).attr('data-line'), 10);\r\n                jQuery(this).removeClass('completed half');\r\n                if (completedCount >= lineNum) {\r\n                    jQuery(this).addClass('completed');\r\n                } else if (halfLineIndex === lineNum) {\r\n                    jQuery(this).addClass('half');\r\n                }\r\n            });\r\n        }\r\n\r\n        function updateAchievementProgress(stepId, isFinalComplete) {\r\n            var total = stepsKeys.length;\r\n            var completedCount = Math.min(currentcode.length, total);\r\n            var activeIndex = stepsKeys.indexOf(stepId) + 1;\r\n            setProgressState(completedCount, activeIndex, activeIndex, isFinalComplete);\r\n\r\n            if (completedCount > lastCompletedCount) {\r\n                var popStep = Math.min(activeIndex, total);\r\n                var $newStep = jQuery('#happymami-wizard .progress-step[data-step=\"' + popStep + '\"] .progress-dot');\r\n                $newStep.addClass('milestone-pop');\r\n                setTimeout(function () {\r\n                    $newStep.removeClass('milestone-pop');\r\n                }, 300);\r\n                lastCompletedCount = completedCount;\r\n            }\r\n        }\r\n        function animateFinalGreenProgress() {\r\n            var total = stepsKeys.length;\r\n            var delay = 200;\r\n            var t = 0;\r\n            progressAnimating = true;\r\n\r\n            jQuery('#happymami-wizard .progress-steps').removeClass('final-complete');\r\n            jQuery('#happymami-wizard .progress-step').removeClass('final-green');\r\n            jQuery('#happymami-wizard .progress-line').removeClass('final-green');\r\n\r\n            for (let i = 1; i <= total; i++) {\r\n                setTimeout(function () {\r\n                    var $step = jQuery('#happymami-wizard .progress-step[data-step=\"' + i + '\"]');\r\n                    var $dot = $step.find('.progress-dot');\r\n                    $step.addClass('final-green');\r\n                    $dot.addClass('milestone-pop');\r\n                    setTimeout(function () {\r\n                        $dot.removeClass('milestone-pop');\r\n                        if (i === total) {\r\n                            $dot.text('\u2713');\r\n                        }\r\n                    }, 300);\r\n                }, t);\r\n                t += delay;\r\n\r\n                if (i < total) {\r\n                    setTimeout(function () {\r\n                        var $line = jQuery('#happymami-wizard .progress-line[data-line=\"' + i + '\"]');\r\n                        $line.addClass('final-green');\r\n                    }, t);\r\n                    t += delay;\r\n                }\r\n            }\r\n\r\n            setTimeout(function () {\r\n                progressAnimating = false;\r\n            }, t + 100);\r\n            return t + 100;\r\n        }\r\n        \/\/ Controladora de fases\r\n        function showStage(stepId) {\r\n            if (!stepId) {\r\n                return;\r\n            }\r\n            const step = translation['steps'][stepId];\r\n            \/\/console.log('code: ', currentcode);\r\n            \/\/console.log('stage: ', stepId);\r\n            var selectedCode = null;\r\n            currentstep = stepId;\r\n            \/\/ Aplica progreso tipo logros\r\n            if (!progressAnimating) {\r\n                updateAchievementProgress(stepId, false);\r\n            }\r\n            \/\/ Oculta \"volver\" si es el primer paso, lo muestra si hay historial\r\n            if (currentcode.length > 0) {\r\n                jQuery('#happymami-wizard .btn-back').removeClass('btn-hidden btn-disabled').css('pointer-events', '');\r\n            } else {\r\n                jQuery('#happymami-wizard .btn-back').addClass('btn-hidden').css('pointer-events', 'none');\r\n            }\r\n            \r\n            \/\/ Ocultar mensaje de preparaci\u00f3n al cambiar de paso\r\n            jQuery('#happymami-wizard .preparing-message').removeClass('visible').html(formatMessage(preparingMessage));\r\n            \r\n            \/\/ Actualiza cabecera\r\n            jQuery('#happymami-wizard .stage h2').text(step['stage'] || '');\r\n            jQuery('#happymami-wizard .stage span').text(step['question'] || '');\r\n            \/\/ Limpia contenido anterior\r\n            jQuery('#happymami-wizard .step-container').removeClass('step-M1 step-M2 step-M3 step-M4').addClass('step-' + stepId);\r\n            jQuery('#happymami-wizard .step-description').html('');\r\n            jQuery('#happymami-wizard .step-call-to-action').text('');\r\n            jQuery('#happymami-wizard .step-title').text('');\r\n            jQuery('#happymami-wizard .step-info').text('');\r\n            jQuery('#happymami-wizard .step.horizontal, .step.vertical').hide();\r\n            jQuery('#happymami-wizard .horizontal .option.box, .vertical .options .option').remove();\r\n            \r\n            \/\/ Renderiza campos\r\n            if ('description' in step) {\r\n                step['description'].forEach(text => {\r\n                    jQuery('#happymami-wizard .step-description').append(text + '<br>');\r\n                });\r\n            }\r\n            if ('call-to-action' in step) {\r\n                jQuery('#happymami-wizard .step-call-to-action').text(step['call-to-action']);\r\n            }\r\n            if ('question' in step) {\r\n                jQuery('#happymami-wizard .step-title').text(step['question']);\r\n            }\r\n            if ('info' in step) {\r\n                jQuery('#happymami-wizard .step-info').text(step['info']);\r\n            }\r\n\r\n            \/\/ Render layout\r\n            const layout = step.layout;\r\n            const cards = step.cards || [];\r\n            const $container = layout === 'horizontal-choice'\r\n                ? jQuery('#happymami-wizard .step.horizontal')\r\n                : jQuery('#happymami-wizard .step.vertical');\r\n\r\n            $container.show();\r\n\r\n            cards.forEach((card, index) => {\r\n                const code = card.code || null;\r\n                const next = card.next || null;\r\n                const text = card.button_text.replace(\/\\n\/g, '<br>');\r\n                const src = card.src ? `<img decoding=\"async\" src=\"${imagepath+card.src}\" alt=\"${text}\" style=\"max-width:100%; height:auto;\">` : '';\r\n                const inputForm = card['embedded-form'] || null;\r\n                let $cardEl;\r\n                if (layout === 'horizontal-choice') {\r\n                    const hasFormClass = inputForm ? 'form' : '';\r\n                    const hasimgbtn = src ? '' : 'no-img';\r\n                    $container.removeClass('no-img');\r\n                    $container.addClass(hasimgbtn);\r\n                    $cardEl = jQuery(`\r\n                    <div class=\"option box ${hasFormClass}\" data-code=\"${code}\" data-next=\"${next}\">\r\n                        <div class=\"holder ${hasimgbtn}\">\r\n                            ${\r\n                            'src' in card && card.src\r\n                                ? `<div class=\"img-placeholder\">${src}<\/div>`\r\n                                : `<h4>${text}<\/h4>`\r\n                            }\r\n                        <\/div>\r\n                        ${\r\n                        'src' in card && card.src\r\n                            ? `${text}`\r\n                            : ''\r\n                        }\r\n                    <\/div>\r\n                    `);\r\n                        } else {\r\n                            $cardEl = jQuery(`\r\n                        <button class=\"option btn\" data-code=\"${code}\" data-next=\"${next}\">\r\n                            ${text}\r\n                        <\/button>\r\n                    `);\r\n                }\r\n                if (layout === 'vertical-choice') {\r\n                    const $imgPlaceholder = jQuery('#happymami-wizard .step.vertical .img-placeholder');\r\n                    $imgPlaceholder.html(''); \/\/ Limpiamos antes\r\n                    if ('src' in step && step.src) {\r\n                        $imgPlaceholder.html(`<img decoding=\"async\" src=\"${imagepath + step.src}\" alt=\"${step.question}\" style=\"max-width:100%; height:auto;\">`);\r\n                    }\r\n                }\r\n                \/\/ Evento de selecci\u00f3n con auto-avance\r\n                $cardEl.on('click', function () {\r\n                    \/\/ No hacer nada si ya est\u00e1 seleccionada o deshabilitada\r\n                    if (jQuery(this).hasClass('selected') || jQuery(this).hasClass('disabled')) {\r\n                        return;\r\n                    }\r\n                    \r\n                    \/\/ Deshabilitar todas las opciones para evitar m\u00faltiples clics\r\n                    jQuery('#happymami-wizard .option').addClass('disabled').css('pointer-events', 'none');\r\n                    jQuery('#happymami-wizard .btn-back').addClass('btn-disabled').css('pointer-events', 'none');\r\n                    \r\n                    jQuery('.option').removeClass('selected');\r\n                    jQuery(this).addClass('selected');\r\n                    selectedCode = code;\r\n\r\n                    \/\/ Elimina formularios anteriores embebidos\r\n                    jQuery('.embedded-form-container').slideUp(200, function () {\r\n                        jQuery(this).remove();\r\n                    });\r\n                    \r\n                    \/\/ Si la opci\u00f3n tiene formulario embebido, mostrarlo y avanzar autom\u00e1ticamente al completar\r\n                    if (inputForm) {\r\n                        \/\/ Re-habilitar para formularios (necesita input del usuario)\r\n                        jQuery('#happymami-wizard .option').removeClass('disabled').css('pointer-events', '');\r\n                        jQuery('#happymami-wizard .btn-back').removeClass('btn-disabled').css('pointer-events', '');\r\n                        \r\n                        const $input = jQuery(`\r\n                        <div class=\"embedded-form-container\">\r\n                            <label>${inputForm.label}<\/label>\r\n                            <input type=\"date\" class=\"form-control embedded-input\"\/>\r\n                        <\/div>\r\n                        `);\r\n                        jQuery(this).append($input.hide());\r\n                        $input.slideDown(250);\r\n                        \r\n                        \/\/ Para formularios, avanzar cuando se complete el input\r\n                        $input.find('input').on('change', function() {\r\n                            if (!next) return;\r\n                            if (currentcode.length === 0 || currentcode[currentcode.length - 1].step !== stepId) {\r\n                                currentcode.push({ step: stepId, code: selectedCode });\r\n                            }\r\n                            jQuery('#happymami-wizard .step-container, #happymami-wizard .faq-container').addClass('fade-out');\r\n                            setTimeout(function() {\r\n                                showStage(next);\r\n                                requestAnimationFrame(function() {\r\n                                    jQuery('#happymami-wizard .step-container, #happymami-wizard .faq-container').removeClass('fade-out');\r\n                                });\r\n                            }, 200);\r\n                        });\r\n                        return;\r\n                    }\r\n                    \r\n                    \/\/ Evita duplicados en historial\r\n                    if (currentcode.length === 0 || currentcode[currentcode.length - 1].step !== stepId) {\r\n                        currentcode.push({ step: stepId, code: selectedCode });\r\n                    }\r\n                    \r\n                    \/\/ Fade out del contenido actual\r\n                    \/\/ Tratamiento del \u00faltimo paso (sin fade out, redirecci\u00f3n inmediata)\r\n                    if (!next) {\r\n                        \/\/ Ocultar bot\u00f3n volver y mostrar mensaje de preparaci\u00f3n\r\n                        jQuery('#happymami-wizard .btn-back').addClass('btn-hidden');\r\n                        jQuery('#happymami-wizard .preparing-message')\r\n                            .removeClass('visible');\r\n                        animateFinalGreenProgress();\r\n                        \r\n                        \/\/ Calcular ref y choice directamente en cliente para redirecci\u00f3n inmediata\r\n                        var params = {};\r\n                        currentcode.forEach(function(item) {\r\n                            params[item.step] = item.code;\r\n                        });\r\n                        \r\n                        \/\/ L\u00f3gica de c\u00e1lculo (replicada del servidor)\r\n                        var m1Map = {'1': '3', '2': '1', '3': '4'};\r\n                        var ref = 'T';\r\n                        ref += (params['M2'] === '1') ? '2' : m1Map[params['M1']];\r\n                        var choice = ['M1', 'M2', 'M3', 'M4'].map(function(s) {\r\n                            return params[s];\r\n                        }).join('');\r\n                        \r\n                        \/\/ Preparar datos del evento complete_customization\r\n                        var customizationData = {\r\n                            customization_id: 'wizard_' + Date.now(),\r\n                            customization_steps: currentcode.length,\r\n                            customization_choices: currentcode.map(function(item, index) {\r\n                                return {\r\n                                    step: item.step,\r\n                                    choice: item.code,\r\n                                    step_order: index + 1\r\n                                };\r\n                            }),\r\n                            final_choice_string: choice,\r\n                            completion_time: new Date().toISOString()\r\n                        };\r\n\r\n                        var completionEventHash = JSON.stringify({\r\n                            event: 'complete_customization',\r\n                            choice: customizationData.final_choice_string,\r\n                            steps: customizationData.customization_steps\r\n                        });\r\n                        var completionNow = Date.now();\r\n                        var isDuplicateCompletionEvent = (\r\n                            window.happymamiWizardEventControl.lastEvent === completionEventHash &&\r\n                            (completionNow - window.happymamiWizardEventControl.lastEventTime) < window.happymamiWizardEventControl.duplicateThreshold\r\n                        );\r\n                        \r\n                        if (!isDuplicateCompletionEvent) {\r\n                            window.happymamiWizardEventControl.lastEvent = completionEventHash;\r\n                            window.happymamiWizardEventControl.lastEventTime = completionNow;\r\n\r\n                            var eventData = {\r\n                                event: 'complete_customization',\r\n                                ecommerce: {\r\n                                    currency: 'EUR',\r\n                                    customization_data: customizationData\r\n                                }\r\n                            };\r\n\r\n                            \/\/ Enviar por DataLayer (est\u00e1ndar server-side tracking)\r\n                            window.dataLayer = window.dataLayer || [];\r\n                            window.dataLayer.push(eventData);\r\n\r\n                            \/\/ LEGACY_TRACKING_ROLLBACK:\r\n                            \/\/ if (typeof gtag !== 'undefined') {\r\n                            \/\/     gtag('event', 'complete_customization', {\r\n                            \/\/         customization_id: customizationData.customization_id,\r\n                            \/\/         customization_steps: customizationData.customization_steps,\r\n                            \/\/         final_choice: customizationData.final_choice_string\r\n                            \/\/     });\r\n                            \/\/ }\r\n                        }\r\n                        \r\n                        \/\/ Redirigir inmediatamente\r\n                        var destination = new URL('https:\/\/happymami.com\/en\/shop\/', window.location.origin);\r\n                        destination.searchParams.set('ref', ref);\r\n                        destination.searchParams.set('choice', choice);\r\n                        window.location.href = destination.toString();\r\n                        \r\n                        \/\/ Enviar AJAX en segundo plano para guardar sesi\u00f3n (no bloquea)\r\n                        var ajaxurl = 'https:\/\/happymami.com\/wp-admin\/admin-ajax.php';\r\n                        navigator.sendBeacon ? navigator.sendBeacon(ajaxurl + '?action=happymami_wizard_service', new URLSearchParams({\r\n                            action: 'happymami_wizard_service',\r\n                            code: JSON.stringify(currentcode)\r\n                        })) : jQuery.post(ajaxurl, {\r\n                            action: 'happymami_wizard_service',\r\n                            code: JSON.stringify(currentcode)\r\n                        });\r\n                        \r\n                        return;\r\n                    }\r\n                    \r\n                    \/\/ Secuencia de progreso: pintar l\u00ednea anterior -> scale -> media l\u00ednea siguiente\r\n                    progressAnimating = true;\r\n                    var currentIndex = stepsKeys.indexOf(stepId) + 1;\r\n                    var nextIndex = currentIndex + 1;\r\n                    setProgressState(currentcode.length, currentIndex, currentIndex, false);\r\n\r\n                    \/\/ pintar l\u00ednea anterior completa\r\n                    var $lineCurrent = jQuery('#happymami-wizard .progress-line[data-line=\"' + currentIndex + '\"]');\r\n                    $lineCurrent.removeClass('half').addClass('completed');\r\n\r\n                    \/\/ scale en el c\u00edrculo del siguiente paso + media l\u00ednea siguiente (con pausa)\r\n                    setTimeout(function () {\r\n                        var $nextDot = jQuery('#happymami-wizard .progress-step[data-step=\"' + nextIndex + '\"] .progress-dot');\r\n                        jQuery('#happymami-wizard .progress-step').removeClass('active');\r\n                        jQuery('#happymami-wizard .progress-step[data-step=\"' + nextIndex + '\"]').addClass('active');\r\n                        $nextDot.addClass('milestone-pop');\r\n                        setTimeout(function () {\r\n                            $nextDot.removeClass('milestone-pop');\r\n                        }, 300);\r\n\r\n                        var $lineNext = jQuery('#happymami-wizard .progress-line[data-line=\"' + nextIndex + '\"]');\r\n                        $lineNext.removeClass('completed').addClass('half');\r\n                    }, 300);\r\n\r\n                    \/\/ Fade out del contenido actual (solo para pasos intermedios)\r\n                    jQuery('#happymami-wizard .step-container, #happymami-wizard .faq-container').addClass('fade-out');\r\n\r\n                    \/\/ Avance al siguiente paso con breve pausa para el fade out\r\n                    setTimeout(function () {\r\n                        showStage(next);\r\n                        \/\/ Fade in despu\u00e9s de renderizar\r\n                        requestAnimationFrame(function() {\r\n                            jQuery('#happymami-wizard .step-container, #happymami-wizard .faq-container').removeClass('fade-out');\r\n                        });\r\n                    }, 150);\r\n\r\n                    \/\/ Restaurar bot\u00f3n volver\r\n                    if (currentcode.length > 0) {\r\n                        jQuery('#happymami-wizard .btn-back').removeClass('btn-hidden');\r\n                    }\r\n                    progressAnimating = false;\r\n                });\r\n                if (layout === 'horizontal-choice') {\r\n                    jQuery('#happymami-wizard .step.horizontal').append($cardEl);\r\n                } else {\r\n                    jQuery('#happymami-wizard .step.vertical .options').append($cardEl);\r\n                }\r\n            });\r\n            \/\/ Renderiza FAQs (usar un solo contenedor)\r\n            jQuery('#happymami-wizard .faq-container').not(':first').remove();\r\n            const $faq = jQuery('#happymami-wizard .faq-container').first();\r\n            $faq.html('');\r\n            if (step.support && step.support.options) {\r\n                step.support.options.forEach(faq => {\r\n                    const header = faq.header;\r\n                    let content = '';\r\n                    faq.body?.forEach(item => {\r\n                        if (item.text) content += item.text;\r\n                        if (item.strong) content += '<strong>' + item.strong + '<\/strong> ';\r\n                    });\r\n                    if (faq.src) {\r\n                        content += '<img decoding=\"async\" src=\"' + imagepath+faq.src + '\" alt=\"\">';\r\n                    }\r\n                    $faq.append('<details><summary>' + header + '<\/summary><div class=\"content\">' + content + '<\/div><\/details>');\r\n                });\r\n            }\r\n\r\n            \/\/ Renderiza bot\u00f3n de ayuda si existe 'buttons'\r\n            jQuery('#happymami-wizard .step-container .help-button').remove(); \/\/ limpiar anteriores\r\n            jQuery('#happymami-wizard .modal-body').html(''); \/\/ limpiar modal\r\n            if (step.buttons && Array.isArray(step.buttons) && step.buttons.length > 0) {\r\n                const btnData = step.buttons[0]; \/\/ Asumimos un solo bot\u00f3n por ahora\r\n                const helpBtn = jQuery(`<button class=\"btn help-button\">${btnData.title || '\u00bfNecesitas ayuda?'}<\/button>`);\r\n                helpBtn.on('click', function () {\r\n                    let html = '';\r\n                    if (btnData.src) {\r\n                        \/\/ Si hay imagen, se muestra solo la imagen con alt generado del texto\r\n                        let altText = '';\r\n                        if (btnData.description && Array.isArray(btnData.description)) {\r\n                            btnData.description.forEach(desc => {\r\n                                if (desc.title) altText += desc.title + ' ';\r\n                                if (desc.container && Array.isArray(desc.container)) {\r\n                                    desc.container.forEach(item => {\r\n                                        if (item.text) altText += item.text + ' ';\r\n                                    });\r\n                                }\r\n                                if (desc.text) altText += desc.text + ' ';\r\n                            });\r\n                        }\r\n                        html += `<img decoding=\"async\" src=\"${imagepath + btnData.src}\" alt=\"${altText.trim()}\" style=\"max-width:100%; height:auto; margin-bottom:1em;\">`;\r\n                    } else if (btnData.description && Array.isArray(btnData.description)) {\r\n                        \/\/ Si no hay imagen, se muestra el texto\r\n                        btnData.description.forEach(desc => {\r\n                            if (desc.title) html += `<h4>${desc.title}<\/h4>`;\r\n                            if (desc.container && Array.isArray(desc.container)) {\r\n                                desc.container.forEach(item => {\r\n                                    if (item.text) html += `<p>${item.text}<\/p>`;\r\n                                });\r\n                            }\r\n                            if (desc.text) html += `<p>${desc.text}<\/p>`;\r\n                        });\r\n                    }\r\n                    jQuery('#happymami-wizard .modal-body').html(html);\r\n                    jQuery('#happymami-wizard .popup, #happymami-wizard .popup-overlay').fadeIn(200);\r\n                });\r\n                jQuery('#happymami-wizard .step-info').after(helpBtn);\r\n            }\r\n            \/\/ Traducci\u00f3n de botones\r\n            jQuery('#happymami-wizard .btn-back').text(translation['btn-back']);\r\n        }\r\n        \/\/ Cierre de modal\r\n        function closePopup() {\r\n            jQuery('#happymami-wizard .popup, #happymami-wizard .popup-overlay').fadeOut(200);\r\n        }\r\n        \/\/ Controladora del bot\u00f3n Back\r\n        jQuery(document).ready(function () {\r\n            patchWpmlLanguageLinks();\r\n            jQuery(document).off('click.hmwWpmlGoto').on('click.hmwWpmlGoto', '.wpml-ls a, a.wpml-ls-link, #lang_sel a', function () {\r\n                appendGotoToLink(jQuery(this));\r\n            });\r\n\r\n            jQuery('#happymami-wizard .btn-back').on('click', function (e) {\r\n                e.preventDefault();\r\n                \/\/ Si no hay historial o est\u00e1 deshabilitado, no hacemos nada\r\n                if (currentcode.length === 0 || jQuery(this).hasClass('btn-disabled')) return;\r\n                \r\n                \/\/ Deshabilitar bot\u00f3n para evitar doble clic\r\n                jQuery(this).addClass('btn-disabled').css('pointer-events', 'none');\r\n                \r\n                \/\/ Fade out del contenido actual\r\n                jQuery('#happymami-wizard .step-container, #happymami-wizard .faq-container').addClass('fade-out');\r\n                \r\n                \/\/ Sacamos el \u00faltimo paso (al que queremos volver)\r\n                const lastStep = currentcode.pop();\r\n                progressAnimating = true;\r\n                var currentIndex = stepsKeys.indexOf(currentstep) + 1;\r\n                var prevIndex = stepsKeys.indexOf(lastStep.step) + 1;\r\n\r\n                \/\/ quitar media l\u00ednea siguiente\r\n                var $lineCurrent = jQuery('#happymami-wizard .progress-line[data-line=\"' + currentIndex + '\"]');\r\n                $lineCurrent.removeClass('half');\r\n                \r\n                \/\/ Volvemos a ese paso con animaci\u00f3n\r\n                setTimeout(function () {\r\n                    \/\/ reducir l\u00ednea anterior a media\r\n                    var $linePrev = jQuery('#happymami-wizard .progress-line[data-line=\"' + prevIndex + '\"]');\r\n                    $linePrev.removeClass('completed').addClass('half');\r\n\r\n                    \/\/ scale en el c\u00edrculo del paso anterior\r\n                    var $prevDot = jQuery('#happymami-wizard .progress-step[data-step=\"' + prevIndex + '\"] .progress-dot');\r\n                    jQuery('#happymami-wizard .progress-step').removeClass('active');\r\n                    jQuery('#happymami-wizard .progress-step[data-step=\"' + prevIndex + '\"]').addClass('active');\r\n                    $prevDot.addClass('milestone-pop');\r\n                    setTimeout(function () {\r\n                        $prevDot.removeClass('milestone-pop');\r\n                    }, 300);\r\n\r\n                    showStage(lastStep.step);\r\n                    \/\/ Ajustar estado del progreso al volver\r\n                    setProgressState(currentcode.length, prevIndex, prevIndex, false);\r\n                    \/\/ Fade in despu\u00e9s de renderizar\r\n                    requestAnimationFrame(function() {\r\n                        jQuery('#happymami-wizard .step-container, #happymami-wizard .faq-container').removeClass('fade-out');\r\n                        progressAnimating = false;\r\n                    });\r\n                }, 150);\r\n            });\r\n        });\r\n    <\/script>\r\n    \t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":3239,"featured_media":155049,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-150382","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/happymami.com\/en\/wp-json\/wp\/v2\/pages\/150382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/happymami.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/happymami.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/happymami.com\/en\/wp-json\/wp\/v2\/users\/3239"}],"replies":[{"embeddable":true,"href":"https:\/\/happymami.com\/en\/wp-json\/wp\/v2\/comments?post=150382"}],"version-history":[{"count":3,"href":"https:\/\/happymami.com\/en\/wp-json\/wp\/v2\/pages\/150382\/revisions"}],"predecessor-version":[{"id":155069,"href":"https:\/\/happymami.com\/en\/wp-json\/wp\/v2\/pages\/150382\/revisions\/155069"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/happymami.com\/en\/wp-json\/wp\/v2\/media\/155049"}],"wp:attachment":[{"href":"https:\/\/happymami.com\/en\/wp-json\/wp\/v2\/media?parent=150382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}