Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

161
Visualizações
No se puede agregar el evento de anuncios de Google al enlace woocoommerce_add_to_cart

Si bien debería ser un trabajo de unos minutos, me tomó más de 10 horas tratar de averiguar por qué el siguiente fragmento funciona pero no como se esperaba, aunque el sitio no usa ajax para eventos add_to_cart.

Por una razón muy extraña, la página se actualiza cuando el código está activo. Me doy cuenta de esto porque el registro en la consola (added_to_cart) desaparece después de unos momentos de carga. Lo extraño es que no tiene nada que ver con el gancho que estoy usando (aunque también probé woocommerce_add_to_cart_validation con exactamente los mismos resultados) porque si dejo solo el mensaje console.log no tiene el mismo comportamiento. Es como si el script de gtag forzara la recarga de una página.

Normalmente, esto no debería ser un problema porque el evento se envía a los anuncios de Google; sin embargo, hay otros scripts que deberían ejecutarse después y que no lo hacen (como Google Analytics y otros).

 add_action( 'woocommerce_add_to_cart', 'custom_add_to_cart', 10, 2 ); function custom_add_to_cart( $cart_item_key, $product_id ) { $_product = wc_get_product($product_id); $price = $_product->get_price(); $current_url = home_url( $_SERVER['REQUEST_URI'] ); ?> console.log('added_to_cart'); <script async src="https://www.googletagmanager.com/gtag/js?id=<?php echo ADS_ID ?>"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '<?php echo ADS_ID ?>'); </script> <script type="text/javascript"> function gtag_report_conversion(url) { var callback = function () { if (typeof(url) != 'undefined') { window.location = url; } }; gtag('event', 'conversion', { 'send_to': '<? echo ADS_ADD_TO_CART; ?>', 'value': <?php echo $price ?>, 'currency': 'EUR', 'event_callback': callback }); return false; } gtag_report_conversion('<?php echo $current_url; ?>'); </script> <?php }

¿algunas ideas?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Tu código no funciona porque woocommerce_add_to_cart se activa en el backend y estás intentando renderizar el código JavaScript donde no se puede ejecutar.

Si desea capturar el evento de agregar al carrito, use los eventos de JavaScript de WooCommerce o use el antiguo addEventListener() en sus botones de agregar al carrito.

about 4 years ago · Juan Pablo Isaza Relatório

0

Me las arreglé para averiguar lo que está pasando y no sé cómo me perdí. aquí está en caso de que tuviera que cambiar de:

 if (typeof(url) != 'undefined') { window.location = url; }

a:

 if (typeof(url) != 'undefined') { //window.location = url; }

por lo que detendría la redirección

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda