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

209
Visualizações
Código abreviado de WooCommerce para ajaxificar el mensaje que muestra: "Compre X más productos para obtener un descuento"

Después de una búsqueda profunda, creé un código abreviado de WooCommerce. El propósito de esto es mostrar el mensaje "Compre X más productos para obtener un descuento".

Mi código:

 add_shortcode('check', 'custommessage'); function custommessage() { $items_count = WC()->cart->get_cart_contents_count(); $min_count = 6; if( $items_count < $min_count ){ echo sprintf('%s products more for discount' , $min_count - $items_count ); } }

En la página del carrito de WooComerce, después de agregar X productos al carrito o eliminar la cantidad, funciona y actualiza automáticamente el mensaje

Pero cuando coloco el código abreviado (en el carrito lateral) no actualiza automáticamente el conteo de X. Aunque también está impulsado por AJAX.

¿Algún consejo de cómo puedo solucionar esto?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Para ajaxificar su mensaje para que se actualice cuando se agrega/elimina un artículo (a través de ajax) use el enlace de filtro woocommerce_add_to_cart_fragments

Entonces obtienes:

 function custom_message() { // Initialize $message = __( 'Default message', 'woocommerce' ); // True if ( WC()->cart ) { // Get number of items in the cart. $items_count = WC()->cart->get_cart_contents_count(); $min_count = 6; if ( $items_count < $min_count ) { $message = sprintf( __( '%s products more for discount', 'woocommerce' ), $min_count - $items_count ); } else { $message = __( 'Some message', 'woocommerce' ); } } return $message; } // Refreshing on cart ajax events function filter_woocommerce_add_to_cart_fragments( $fragments ) { $fragments['div.display-message'] = '<div class="display-message">' . custom_message() . '</div>'; return $fragments; } add_filter( 'woocommerce_add_to_cart_fragments', 'filter_woocommerce_add_to_cart_fragments', 10, 1 );

1) Luego, para mostrar esto a través de un código abreviado, use:

 function display_my_message() { return '<div class="display-message">' . custom_message() . '</div>'; } // Register shortcode add_shortcode( 'display_message', 'display_my_message' );

USO DE CÓDIGO CORTO

En una página existente:

[display_message]

O en PHP:

echo do_shortcode("[display_message]");

O

2) Para mostrar el mensaje a través de cualquier gancho deseado (en este ejemplo muestro 2 ganchos. 1 en la página del carrito y 1 en la página de un solo producto, se adapta a sus necesidades). Utilizar:

 // Display message via the desired hooks function display_message() { echo '<div class="display-message">' . custom_message() . '</div>'; } add_action( 'woocommerce_before_shop_loop', 'display_message', 10, 0 ); add_action( 'woocommerce_before_add_to_cart_form', 'display_message', 10, 0 );
over 4 years ago · Santiago Trujillo 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