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

117
Vistas
Función de Woocommerce que activa el código jquery

Estoy tratando de activar una ventana emergente simulando un clic de botón con una función JS simple cuando se agrega un producto de una categoría específica al carrito de Woocommerce. He visto a algunos hacerlo en funciones similares, pero no puedo imaginar que este funcione.

He compuesto la siguiente función que se ejecuta si la categoría está en el carrito y si la página es la página de pago:

 add_action( 'woocommerce_before_checkout_form', 'check_category_in_cart' ); function check_category_in_cart() { $cat_in_cart = false; foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( has_term( 'test', 'product_cat', $cart_item['product_id'] ) ) { $cat_in_cart = true; break; } } if ( $cat_in_cart ) { <script> jQuery(document).ready(function($) { $('#pop-up').trigger('click'); }); </script> } }

Esta función hace que mi sitio web no funcione. ¿Alguien tiene una idea de cómo puedo hacer que esto funcione?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

usa setTimeout() . prueba el siguiente código.

 add_action( 'woocommerce_before_checkout_form', 'check_category_in_cart' ); function check_category_in_cart() { $cat_in_cart = false; foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) { if ( has_term( 'test', 'product_cat', $cart_item['product_id'] ) ) { $cat_in_cart = true; break; } } if ( $cat_in_cart ) { ?> <script> jQuery(document).ready(function($) { setTimeout(function(){ $('#pop-up').trigger('click'); }, 10); }); </script> <?php } } 

 jQuery(document).ready(function($) { setTimeout(function(){ $('#pop-up').trigger('click'); }, 10); jQuery(document).on('click','#pop-up',function(){ alert('trigger'); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <button id="pop-up">popup</button>

about 4 years ago · Juan Pablo Isaza Denunciar

0

PHP espera un código php válido en las etiquetas <?php ?> , pero está colocando JavaScript, por lo que debe cerrar la etiqueta PHP antes de <script> y abrir una nueva después de </script> . De lo contrario, su código jQuery está bien.

 if ( $cat_in_cart ) { ?> <script> jQuery(function() { $('#pop-up').trigger('click'); }); </script> <?php }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Motivo necesario para comprobar.

  1. Tal vez porque su identificación (ventana emergente) no está colocada en su HTML.
  2. Tal vez su jQuery no esté cargado.
  3. Verifique en la consola qué tipo de error encontró.
  4. su función PHP debería cerrarse correctamente.
 if ( $cat_in_cart ) { ?> <script> jQuery(document).ready(function($) { $('#pop-up').trigger('click'); }); </script> <?php }

Si todo está bien, puedes intentarlo.

 jQuery(document).ready(function($) { var timeInterVal = setInterval(CheckId, 1000); CheckId function(){ var id = $("#pop-up"); if(id.length!=0){ $('#pop-up').trigger('click'); clearInterval(timeInterVal); } } });

Esto funcionará si su identificación no se encuentra una vez que la colocó, esto detendrá el temporizador y activará la ventana emergente. Gracias.

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