• Buenas,

    Estamos creando una wen de minteo de NFT’s y hemos creado un codigo para realizar la compra de productos aleatorios.

    Pero tenemos un problema, si un visitante a la web pone en su carrito 3 productos, ejemplo el 1,2 y 3, queremos que si otro visitante entra y quiero comprar producos en su carrito no salga los productos 1,2,3 porque ya lo tiene otro usuario.

    Es posible hacerlo? hemos probado diferentes codigos en php y ninguno funciona.

    Un saludo

    La página con la que necesito ayuda: [accede para ver el enlace]

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • Para bloquear la posibilidad de que un producto esté en dos carritos diferentes simultáneamente en WooCommerce, se necesita un enfoque que controle la disponibilidad de productos en los carritos de los usuarios. Aquí hay un ejemplo de cómo puedes abordar este problema:

    1. Registrar los productos que están en carritos: Cada vez que un usuario añade un producto al carrito, registra el producto y el usuario en una base de datos personalizada o en un sistema de almacenamiento temporal.
    2. Verificar la disponibilidad al agregar un producto al carrito: Antes de permitir que un usuario agregue un producto a su carrito, verifica si ese producto ya está en el carrito de otro usuario. Si lo está, puedes mostrar un mensaje de error o simplemente evitar que se añada al carrito.
    3. Limpiar los registros de carritos después de la compra: Una vez que un usuario completa la compra, elimina el registro del producto de la base de datos de productos en carritos.
    Aquí te muestro un ejemplo básico en PHP para verificar si un producto ya está en otro carrito:
    
    
    
    add_filter('woocommerce_add_to_cart_validation', 'custom_add_to_cart_validation', 10, 3);
    
    function custom_add_to_cart_validation($passed, $product_id, $quantity) {
    // Verificar si el producto ya está en otro carrito
    if (is_product_in_another_cart($product_id)) {
    wc_add_notice(__('Este producto ya está en el carrito de otro usuario.', 'woocommerce'), 'error');
    return false;
    }
    return $passed;
    }
    
    function is_product_in_another_cart($product_id) {
    // Comprobar si el producto está en otro carrito
    $product_in_cart = false;
    foreach (WC()->cart->get_cart() as $cart_item) {
    if ($cart_item['product_id'] == $product_id) {
    $product_in_cart = true;
    break;
    }
    }
    return $product_in_cart;
    }
    
    
    
    

    Este código debe ir en el archivo functions.php de tu tema de WordPress o en un plugin personalizado.

    Ten en cuenta que este es un ejemplo básico y puede que necesites adaptarlo según tu estructura de datos y necesidades específicas. Además, es importante asegurarse de que cualquier solución cumpla con las políticas de privacidad y protección de datos.

    Iniciador del debate legion2teamnft

    (@legion2teamnft)

    Gracias por la respuesta, pero cuando añado este codigo en functions php,me suelta un error grave en la web y cuando lo quito vuelve a funcionar.

    a que puede ser debido?

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)
  • El debate ‘Bloquear añadir el mismo producto en dos carritos diferentes’ está cerrado a nuevas respuestas.