Oculte o edite el mensaje de error “No puede agregar otro ‘xxx’ a su carrito” en WooCommerce 4.5+

2 minutos de lectura

Oculte o edite el mensaje de error No puede agregar
Marwah

A través de la configuración del producto, habilité “vendido individualmente: habilite esto para permitir que solo se compre un artículo en un solo pedido”

Al agregar el mismo producto al carrito, aparece un mensaje de error porque habilité esta configuración. El mensaje de error es “No puedes agregar otro ‘xxx’ a tu carrito”. No quiero que se agregue el mismo producto al carrito, así que esto funciona muy bien.

Mi pregunta:

Cómo ocultar el mensaje de error “No puedes agregar otro ‘xxx’ a tu carrito”.

Si uso el código CSS

.woocommerce-error {
    display: none;
}

Luego, la contraseña o el correo electrónico de error cuando iniciamos sesión también está oculto, no quiero ocultar otro mensaje de error.

¿Es posible lograr que solo se oculte este error?

1647540848 955 Oculte o edite el mensaje de error No puede agregar
7uc1f3r

Para editar el mensaje, puede usar desde WooCommerce 4.5.0 los woocommerce_cart_product_cannot_add_another_message gancho de filtro

/**
 * Filters message about more than 1 product being added to cart.
 *
 * @since 4.5.0
 * @param string     $message Message.
 * @param WC_Product $product_data Product data.
 */
function filter_woocommerce_cart_product_cannot_add_another_message( $message, $product_data ) {
    // New text
    $message = __( 'My new message', 'woocommerce' );

    return $message;
}
add_filter( 'woocommerce_cart_product_cannot_add_another_message', 'filter_woocommerce_cart_product_cannot_add_another_message', 10, 2 );

Para ocultar el mensaje por completo, simplemente reemplace

// New text
$message = __( 'My new message', 'woocommerce' );

Con

// New text
$message="";

Sin embargo, el “problema” con la solución anterior es que el mensaje ahora está oculto, pero el woocommerce-error (recuadro rojo) y view-cart el botón todavía se muestra.


Entonces, mientras usa el enlace de filtro, puede agregar jQuery adicional para ocultar el woocommerce-error

Nota: aunque lo siguiente funciona, nunca es una buena idea ocultar los mensajes de error. Estos están ahí por una razón, para hacer que un cliente sea consciente de algo. Por lo tanto, esta solución es un poco ‘complicada’.

Pero para responder a tu pregunta, puedes usar:

function filter_woocommerce_cart_product_cannot_add_another_message( $message, $product_data ) {    
    $message="<div class="hide-this-error-message"></div>";
    
    return $message;
}
add_filter( 'woocommerce_cart_product_cannot_add_another_message', 'filter_woocommerce_cart_product_cannot_add_another_message', 10, 2 );

function action_wp_footer() {
    ?>
    <script>
        jQuery(document).ready(function($) {
            $( '.hide-this-error-message' ).closest( 'ul.woocommerce-error' ).hide();
        });
    </script>
    <?php
}
add_action( 'wp_footer', 'action_wp_footer' );

  • Hola @7uc1f3r Muchas gracias por ayudarme. Acabo de probar tu segunda respuesta y salió perfecta.

    – marwah

    1 de enero de 2021 a las 15:43

  • Con respecto a su nota: si está en mi sitio, no creo que sea un problema para los clientes, porque si el producto ya está en el carrito, el botón “agregar al carrito” cambia a “Haga clic en Ver carrito”.

    – marwah

    1 de enero de 2021 a las 15:44

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad