Wie entferne ich einen bestimmten Warenkorbartikel, wenn ich ein bestimmtes Produkt in den Warenkorb lege?

Lesezeit: 2 Minuten

Wie entferne ich einen bestimmten Warenkorbartikel wenn ich ein bestimmtes
Mimik

Mit WooCommerce versuche ich zu sehen, ob es möglich ist, einen bestimmten Artikel (aus dem Warenkorb) zu entfernen, wenn sich ein anderer bestimmter Artikel im Warenkorb befindet.

Mein Webshop verfügt über eine kostenlose Version eines Produkts, das dem Kunden einen grundlegenden Zugriff auf den Inhalt der Website ermöglicht. Die kostenpflichtige Version eröffnet mehr Zugang zu Inhalten. Wenn sich die kostenlose Version bereits im Warenkorb befindet und die kostenpflichtige Version zum Warenkorb hinzugefügt wird, wird die kostenlose Version aus dem Warenkorb entfernt.

Ich habe versucht, mir mögliche Optionen und Plugins anzusehen, aber die meisten von ihnen haben Bedingungen, die auf Preisen und ähnlichen Dingen basieren.

  • Willkommen bei Stackoverflow. Unglücklicherweise ist Stackoverflow weder ein Code-Schreibdienst noch ein Tool-Suchdienst, daher wird Ihre Frage wahrscheinlich nicht beantwortet. Was Sie wollen, ist möglich. Sicher. Sie müssen in den Quellcode von Woocommerce gehen und den richtigen Action-Hook / Filter-Hook finden, wo Sie eine Aktion auslösen können, um das Produkt zu entfernen.

    – Blackbam

    24. Januar 2017 um 16:28 Uhr

Ja, das ist möglich, wenn beispielsweise eine benutzerdefinierte Funktion eingehakt wird woocommerce_add_to_cart Haken:

add_action( 'woocommerce_add_to_cart', 'check_product_added_to_cart', 10, 6 );
function check_product_added_to_cart($cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data) {

    // Set HERE your targeted product ID
    $target_product_id = 31;
    // Set HERE the  product ID to remove
    $item_id_to_remove = 37;

    // Initialising some variables
    $has_item = false;
    $is_product_id = false;

    foreach( WC()->cart->get_cart() as $key => $item ){
        // Check if the item to remove is in cart
        if( $item['product_id'] == $item_id_to_remove ){
            $has_item = true;
            $key_to_remove = $key;
        }

        // Check if we add to cart the targeted product ID
        if( $product_id == $target_product_id ){
            $is_product_id = true;
        }
    }

    if( $has_item && $is_product_id ){
        WC()->cart->remove_cart_item($key_to_remove);

        // Optionaly displaying a notice for the removed item:
        wc_add_notice( __( 'The product "blab bla" has been removed from cart.', 'theme_domain' ), 'notice' );
    }
}

Dieser Code geht in die Datei function.php Ihres aktiven Child-Themes (oder Themes) oder auch in jede Plugin-Datei.

Dieser Code ist getestet und funktioniert.

1004940cookie-checkWie entferne ich einen bestimmten Warenkorbartikel, wenn ich ein bestimmtes Produkt in den Warenkorb lege?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy