// Código PHP - Establecer que el carrito tenga solo 1 producto para que se pueda comprar (+ mensaje de vaciar carrito y contacto)



add_filter( 'woocommerce_add_to_cart_validation', 'limitar_carga_de_producto', 10, 3 );

function limitar_carga_de_producto( $passed, $product_id, $quantity ) {

    // Obtener la cantidad de productos en el carrito

    $productos_en_carrito = WC()->cart->get_cart_contents_count();

    // Si hay un producto en el carrito, no permitir agregar más y mostrar un mensaje de alerta

    if ( $productos_en_carrito >= 1 ) {

        $passed = false;

        // Agregar un enlace para eliminar los productos del carrito

        $eliminar_url = wc_get_cart_url();

        wc_add_notice(

            __('Solo se permite agregar un producto al carrito. Si deseas, puedes eliminar los productos agregados al carrito haciendo clic <a href="' . $eliminar_url . '?clear-cart=true">aquí</a> o ponerte en contacto para <a href="#">más información</a> .'),

            'error'

        );

    }

    return $passed;

}


// Vaciar el carrito al hacer clic en el enlace

add_action( 'wp', 'vaciar_carrito' );

function vaciar_carrito() {

    if ( isset( $_GET['clear-cart'] ) && $_GET['clear-cart'] == 'true' ) {

        global $woocommerce;

        $woocommerce->cart->empty_cart();

        $url = wc_get_cart_url();

        wp_safe_redirect( $url );

        exit;

    }

}