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.
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.
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