{"id":134,"date":"2024-03-27T15:06:34","date_gmt":"2024-03-27T15:06:34","guid":{"rendered":"https:\/\/web7am.com\/producto\/social-accelerator-0-1-year-simple\/"},"modified":"2025-11-12T15:58:40","modified_gmt":"2025-11-12T20:58:40","slug":"sitio-web-starter","status":"publish","type":"product","link":"https:\/\/web7am.com\/en\/product\/sitio-web-starter\/","title":{"rendered":"STARTER website"},"content":{"rendered":"<p>Landing web + Acelerador de redes sociales<\/p>","protected":false},"excerpt":{"rendered":"\n<div class=\"wp24-domaincheck-custom\" data-product-id=\"134\" data-button-text=\"\">\n<div id=\"wp24-dc-1\" class=\"wp24-dc\"><\/div>\n<\/p><\/div>\n<p>    <script>\n    (function($){\n        $(document).ready(function(){<\/p>\n<p>            \/\/ Helper: construir URL add-to-cart con dominio\n            function buildAddToCartUrl(productId, domain){\n                var origin = window.location.origin || (window.location.protocol + '\/\/' + window.location.hostname);\n                return origin + '\/finalizar-compra\/?add-to-cart=' + encodeURIComponent(productId) + '&#038;domain=' + encodeURIComponent(domain) + '.com';\n            }<\/p>\n<p>            \/\/ Para cada contenedor personalizado\n            $('.wp24-domaincheck-custom').each(function(){\n                var container = $(this);\n                var productId = container.data('product-id');<\/p>\n<p>                \/\/ Si no se pas\u00f3 product_id, no hacemos nada\n                if(!productId) return;<\/p>\n<p>                \/\/ Interceptar submit del form del plugin para evitar recarga\n                container.on('submit', 'form', function(e){\n                    e.preventDefault(); \/\/ evita que el form recargue la p\u00e1gina\n                    \/\/ Intentamos llamar a la funci\u00f3n del plugin si existe (para que realice su validaci\u00f3n AJAX)\n                    \/\/ Esto es seguro: si no existe, seguimos al observer que enganchar\u00e1 el bot\u00f3n \"Comprar\"\n                    var form = $(this);\n                    \/\/ Si el plugin expone una funci\u00f3n global para invocar la b\u00fasqueda, podr\u00edamos llamarla.\n                    \/\/ No asumimos el nombre; solo evitamos la recarga.\n                    return false;\n                });<\/p>\n<p>                \/\/ Observador DOM: cuando el plugin renderiza resultados \/ botones, reconfiguramos el comportamiento del \"Comprar\"\n                var observer = new MutationObserver(function(mutationsList, observer){\n                    \/\/ 1) Reemplazar enlaces que ya contengan %domain% (si el plugin usa placeholders)\n                    container.find('a[href*=\"%domain%\"], a[href*=\"{domain}\"], a[href*=\"add-to-cart\"]').each(function(){\n                        var el = $(this);\n                        var href = el.attr('href') || '';<\/p>\n<p>                        \/\/ obtener dominio actual del input (si existe)\n                        var domainInput = container.find('input[name=\"domain\"], input[name=\"wp24-domain\"], input[type=\"text\"]').first();\n                        var domainVal = domainInput.length ? domainInput.val() : '';<\/p>\n<p>                        \/\/ Si tenemos dominio y productId, construir nueva URL y asignarla\n                        if(domainVal &#038;& productId){\n                            var newUrl = buildAddToCartUrl(productId, domainVal);\n                            el.attr('href', newUrl);\n                            \/\/ y forzamos que al hacer click no haga nada raro del plugin\n                            el.off('click.addtocart').on('click.addtocart', function(e){\n                                \/\/ no preventDefault: queremos que el navegador siga el link a newUrl\n                                \/\/ pero en m\u00f3viles o si es un <button> vamos a redirigir por JS\n                                if($(this).is('a')) {\n                                    \/\/ deja que el enlace navegue\n                                    return true;\n                                } else {\n                                    e.preventDefault();\n                                    window.location.href = newUrl;\n                                }\n                            });\n                        }\n                    });<\/p>\n<p>                    \/\/ 2) Enganchar botones\/texto que incluyan \"Comprar\" o \"Buy\" (texto)\n                    container.find('button, a').filter(function(){\n                        var t = ($(this).text() || '').toLowerCase();\n                        return t.indexOf('comprar') !== -1 || t.indexOf('buy') !== -1 || t.indexOf('add to cart') !== -1 || t.indexOf('registrar') !== -1;\n                    }).each(function(){\n                        var btn = $(this);\n                        \/\/ Evita duplicar handlers\n                        btn.off('click.customadd').on('click.customadd', function(e){\n                            e.preventDefault();\n                            \/\/ obtener dominio del input\n                            var domainInput = container.find('input[name=\"domain\"], input[name=\"wp24-domain\"], input[type=\"text\"]').first();\n                            var domainVal = domainInput.length ? domainInput.val() : '';<\/p>\n<p>                            if(!domainVal){\n                                \/\/ intenta buscar cualquier input que parezca contener un dominio (contenga un punto)\n                                domainVal = container.find('input').filter(function(){\n                                    return ($(this).val()||'').indexOf('.') !== -1;\n                                }).val() || '';\n                            }<\/p>\n<p>                            if(!domainVal){\n                                alert('Por favor ingresa un dominio v\u00e1lido antes de continuar.');\n                                return false;\n                            }<\/p>\n<p>                            var url = buildAddToCartUrl(productId, domainVal);\n                            \/\/ Redirige para a\u00f1adir al carrito (esto a\u00f1ade el producto y pasa domain en GET)\n                            window.location.href = url;\n                        });\n                    });<\/p>\n<p>                });<\/p>\n<p>                observer.observe(container[0], { childList: true, subtree: true });\n            });<\/p>\n<p>        });\n    })(jQuery);\n    <\/script><\/p>\n","protected":false},"featured_media":1003,"comment_status":"open","ping_status":"closed","template":"","meta":[],"product_brand":[],"product_cat":[28],"product_tag":[],"class_list":["post-134","product","type-product","status-publish","has-post-thumbnail","product_cat-web7am","first","instock","virtual","purchasable","product-type-simple"],"_links":{"self":[{"href":"https:\/\/web7am.com\/en\/wp-json\/wp\/v2\/product\/134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web7am.com\/en\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/web7am.com\/en\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/web7am.com\/en\/wp-json\/wp\/v2\/comments?post=134"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/web7am.com\/en\/wp-json\/wp\/v2\/media\/1003"}],"wp:attachment":[{"href":"https:\/\/web7am.com\/en\/wp-json\/wp\/v2\/media?parent=134"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/web7am.com\/en\/wp-json\/wp\/v2\/product_brand?post=134"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/web7am.com\/en\/wp-json\/wp\/v2\/product_cat?post=134"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/web7am.com\/en\/wp-json\/wp\/v2\/product_tag?post=134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}