borkolivic

Posebna kategorija u košarici

Oct 27th, 2021 (edited)
692
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //*** Posebna kategorija ili sve ostalo  ;-) ***//
  2. function dont_add_special_to_cart_containing_other($validation, $product_id) {
  3.  
  4.     $cart_has_special = false;
  5.  
  6.     foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
  7.  
  8.         $product = $cart_item['data'];
  9.         //niže upiši slug svoje posebne kategorije
  10.         if (has_term('posebna-kategorija', 'product_cat', $product->id)) {
  11.             $cart_has_special = true;
  12.             break;
  13.         }
  14.     }
  15.  
  16.     $product_is_special = false;
  17.     if (has_term('posebna-kategorija', 'product_cat', $product_id)) {
  18.         $product_is_special = true;
  19.     }
  20.  
  21.     if (!WC()->cart->get_cart_contents_count() == 0) {
  22.         // Ako košarica sadrži posebnu kategoriju i proizvod koji se dodaje nije iz iste, prikaži poruku
  23.         if ($cart_has_special && !$product_is_special) {
  24.             wc_add_notice('Sorry, proizvod iz kategorije XY morate kupiti zasebno od ostalih kategorija. Da biste kupili ovaj proizvod, molimo vas da završite kupovinu trenutne košarice ili ispraznite košaricu i pokušate ponovno', 'error');
  25.             $validation = false;
  26.         }
  27.         // Ako košarica sadrži proizvod koji NIJE iz posebne kategorije a dodaje se proizvod iz posebne kategorije, prikaži poruku
  28.         elseif (!$cart_has_special && $product_is_special) {
  29.             wc_add_notice('Sorry, proizvod iz kategorije XY morate kupiti zasebno od ostalih kategorija. Da biste kupili ovaj proizvod, molimo vas da završite kupovinu trenutne košarice ili ispraznite košaricu i pokušate ponovno', 'error');
  30.             $validation = false;
  31.         }
  32.     }
  33.     return $validation;
  34. }
  35.  
  36. add_filter('woocommerce_add_to_cart_validation', 'dont_add_special_to_cart_containing_other', 10, 2);
RAW Paste Data