Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

165
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda