Kullanıcıların farklı kategorilerdeki ürünleri bir defada sepete eklemelerini önlemek istiyorum. Kullanıcının başka bir kategoriye gittiğini ve ürünü sepete eklemeyi denediğini varsayalım, önce el arabasını kaldırırlar. Lütfen buna nasıl yaklaşabileceğimi bilen var mı? Ben böyle bir şeyde yeni biriyim. TeşekkürlerWoocommerce - İki farklı kategorideki ürünleri sepete ekle
5
A
cevap
6
Bunu daha önce çözdüm. My write-up is here.
Onlar bu sepetinde orijinal öğeyi tutar ve bir uyarı görüntüler ikinci kategoriyi eklemeye çalıştığınızda arabası temizleyerek o yerine isteğinizin biraz farklıdır. kuşaklar için
:
<?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>';
}
}
?>
İlgili konular
- 1. Woocommerce yerine özel düğme/bağlantı ile sepete ekle
- 2. C# Uygula Renklendir Sepete Ekle
- 3. Tüm ürünleri aynı kategorideki tüm ürünler listesine ekleyin opencart 2x
- 4. WooCommerce - Ben arşiv sayfasında "sepete ekle" düğmesini değiştirmek için yeni eylem yazma
- 5. Sepete Ekle Filtre vs Splice ReactJS Javascript
- 6. Bir ürün ekledikten sonra Woocommerce sepeti (jQuery)
- 7. Paypal Sepete Ekle butonu - Java ile nasıl üretilir?
- 8. Ürünleri
- 9. Filtre Magento koleksiyonu değil, ürünleri kullanarak, farklı
- 10. Volusion Soft Sepete Ekle - Sepeti Toplam Subtotal yerine toplam
- 11. Magento: Bir paketten basit ürünleri sepette
- 12. WordPress + WooCommerce + Farklı Alan Adları/Hoster
- 13. WooCommerce farklı miktarlarda hisse senedi paylaşabilir
- 14. Ekle <? Php the_content(); ?> WooCommerce sayfa şablonuna
- 15. İki tabloya ekle
- 16. WooCommerce
- 17. Woocommerce
- 18. Sepete kaldır angularjs
- 19. Farklı sütun sütun ekle pandalar
- 20. Stok durumu için Woocommerce ürün sorgu
- 21. WooCommerce ajax güncellemesi bozuluyor
- 22. Kategorideki anahtar kelimeler nasıl alınır?
- 23. Kategorideki tüm mesajları göremezsiniz - Wordpress
- 24. Woocommerce bağlantı price.php işlevinden fonksiyonlar.php
- 25. Ürünü Sepete Atmak için tıklayınız?
- 26. iki farklı modeller
- 27. iki farklı yapıdaki koleksiyonların
- 28. farklı türde iki Listeler
- 29. İki farklı yazımı bir
- 30. İki farklı işlevi tanımlayın
Çok teşekkürler, bu gerçekten sorunu çözer ve mükemmel çalışıyor ... – Lordwhizy
Bir şey değil. Projenize iyi şanslar. – Dez
Bu harika çalışıyor! Bir sorum var, ajax üzerinden sepete eklenen kalemleri de etkinleştirmek veya engellemek mümkün mü? Ajax ile öğe eklerken, bu konuda bir süre için bu sorunu yaşadım, sayfa arabası ajax içinde öğeleri her ikisi de vardır. Sepeti görüntülerken bu yöntem işe yarar, ancak doğrudan "ödeme" ye giderken, aynı anda iki farklı kategoriye izin verir. –