Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

168
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!