Ich möchte verhindern, dass Benutzer Produkte aus verschiedenen Kategorien gleichzeitig in den Warenkorb legen. Sagen Sie, wenn der Benutzer zu einer anderen Kategorie navigiert und versucht, ein Produkt zum Warenkorb hinzuzufügen, wird der Warenkorb zuerst gelöscht. Bitte jemand weiß, wie ich das angehen könnte? Ich bin ein Neuling in solchen Dingen. DankeWoocommerce - Verhindern Hinzufügen von Artikeln aus zwei verschiedenen Kategorien zum Warenkorb
5
A
Antwort
6
Ich habe das schon mal gelöst. My write-up is here.
Es unterscheidet sich leicht von Ihrer Anfrage darin, dass der Einkaufswagen nicht gelöscht wird, wenn er versucht, eine zweite Kategorie hinzuzufügen, er behält den ursprünglichen Artikel im Warenkorb und zeigt eine Warnung an.
für die Nachwelt:
<?php
// Enforce single parent category items in cart at a time based on first item in cart
function get_product_top_level_category ($product_id) {
$product_terms = get_the_terms ($product_id, 'product_cat');
$product_category_term = $product_terms[0];
$product_category_parent = $product_terms[0]->parent;
while ($product_category_parent != 0) {
$product_category_term = get_term($product_category_parent, 'product_cat');
$product_category_parent = $product_category_term->parent;
}
return $product_category_term;
}
add_filter ('woocommerce_before_cart', 'restrict_cart_to_single_category');
function restrict_cart_to_single_category() {
global $woocommerce;
$cart_contents = $woocommerce->cart->get_cart();
$cart_item_keys = array_keys ($cart_contents);
$cart_item_count = count ($cart_item_keys);
// Do nothing if the cart is empty
// Do nothing if the cart only has one item
if (! $cart_contents || $cart_item_count == 1) {
return null;
}
// Multiple Items in cart
$first_item = $cart_item_keys[0];
$first_item_id = $cart_contents[$first_item]['product_id'];
$first_item_top_category = get_product_top_level_category ($first_item_id);
$first_item_top_category_term = get_term ($first_item_top_category, 'product_cat');
$first_item_top_category_name = $first_item_top_category_term->name;
// Now we check each subsequent items top-level parent category
foreach ($cart_item_keys as $key) {
if ($key == $first_item) {
continue;
}
else {
$product_id = $cart_contents[$key]['product_id'];
$product_top_category = get_product_top_level_category($product_id);
if ($product_top_category != $first_item_top_category) {
$woocommerce->cart->set_quantity ($key, 0, true);
$mismatched_categories = 1;
}
}
}
// we really only want to display this message once for anyone, including those that have carts already prefilled
if (isset ($mismatched_categories)) {
echo '<p class="woocommerce-error">Only one category allowed in cart at a time.<br />You are currently allowed only <strong>'.$first_item_top_category_name.'</strong> items in your cart.<br />To order a different category empty your cart first.</p>';
}
}
?>
Verwandte Themen
- 1. WooCommerce kategoriespezifisch zum Warenkorb hinzufügen button text
- 2. WooCommerce: Produkt mit Override zum Warenkorb hinzufügen?
- 3. WooCommerce: hinzufügen/bearbeiten Anbieter Kategorien
- 4. WooCommerce Benutzerdefinierter Produkttyp - Mehrere Artikel zum Warenkorb hinzufügen Problem
- 5. WooCommerce ersetzen hinzufügen Warenkorb Schaltfläche mit benutzerdefinierten Button/Link
- 6. WooCommerce erhalten Produkt benutzerdefinierte Meta aus Warenkorb
- 7. Woocommerce Warenkorb Änderungen werden von checkout.js
- 8. woocommerce zeigt Warenkorb ist leer in Firefox, nach dem Hinzufügen der Produkte zum Warenkorb
- 9. Woocommerce Kategorien/Unterkategorien anzeigen
- 10. WooCommerce Warenkorb - Hinzufügen von Produktvariationen zum Einkaufswagen basierend auf einer ID
- 11. Produkt in den Warenkorb in WooCommerce hinzufügen von außen Wordpress
- 12. Anzeige Kategorien in WooCommerce
- 13. woocommerce benutzerdefinierte ajax top warenkorb
- 14. OpenCart: Kategorien zum Hauptmenü hinzufügen?
- 15. Woocommerce: Warenkorb in Single hinzufügen Produktseite funktioniert nicht
- 16. WooCommerce: Warenkorb Preisüberschreibung mit Text
- 17. WooCommerce: Warenkorb Zählung nach Produkttyp
- 18. Warenkorb aktualisieren mit WooCommerce ajax
- 19. Hinzufügen eines Produkts zum Warenkorb mit benutzerdefinierten Informationen und Preis
- 20. Tracking Woocommerce In den Warenkorb
- 21. WooCommerce woocommerce_check_cart_items und Warenkorb Gesamt
- 22. Warenkorb Artikel Anzahl erhöhen/verringern & zum Warenkorb hinzufügen
- 23. woocommerce Warenkorb funktioniert nicht richtig mit jquery
- 24. WooCommerce hinzufügen Datenattribut zu Warenkorb Schaltfläche auf Erfolgsmeldung
- 25. Woocommerce, Wie bearbeitet man die Nachricht "Zum Warenkorb hinzugefügt"
- 26. Hinzufügen von zwei Artikeln in einer Liste zu einem Artikel
- 27. Weitere Schaltfläche zum Warenkorb hinzufügen nopCommerce
- 28. Magento Soap API Produktpaket zum Warenkorb hinzufügen
- 29. SQL Hinzufügen und Subtrahieren von Daten aus zwei verschiedenen Tabellen
- 30. Hinzufügen von Punkten Summen aus zwei verschiedenen Tabellen
Vielen Dank, das ist wirklich löst das Problem und funktioniert perfekt ... – Lordwhizy
Nichts zu danken. Viel Glück mit Ihrem Projekt. – Dez
Das funktioniert super! Ich habe eine Frage, ist es möglich, auch Gegenstände, die über Ajax in den Warenkorb gelegt werden, zu aktivieren oder zu blockieren? Ich habe dieses Problem jetzt für eine Weile beim Hinzufügen von Gegenständen über Ajax, es zeigt in der Ajax auf Seite Warenkorb, dass die Elemente beide da sind. Wenn Sie auf view cart klicken, funktioniert diese Methode, aber wenn Sie direkt zur Kasse gehen, können Sie zwei verschiedene Kategorien gleichzeitig auswählen. –