Wholesale For WooCommerce , by wpexperts.io
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
add_filter("wpo_prepare_item", function($item,$product){ $item["item_cost"] = $item["wpo_item_discount"]["discounted_price"] = $item["wpo_item_discount"]["original_price"] = $product->get_price(); // set default cost $item["wpo_item_discount"]["discount"] = 0; // no discount! $user_id = $_REQUEST["cart"]["customer"]["id"]; if( !$user_id ) return $item; // customer not selected $data = $product->get_meta("wholesale_multi_user_pricing"); if( !$data ) return $item; // no wholesale prices at all $role_id = get_current_user_role_id(); if( !isset($data[$role_id]) ) return $item; // no wholesale prices for user role $rule = $data[ $role_id ]; if( isset ($rule['min_quatity']) AND ($item['qty'] < $rule['min_quatity']) ) return $item; // too few items $item["wpo_item_discount"]["discount_type"] = $rule["discount_type"]; $item["wpo_item_discount"]["discount"] = $rule["wholesale_price"]; //calc it once if($rule["discount_type"] == "fixed") $discount = $rule["wholesale_price"]; else// %% ? $discount = round($item["wpo_item_discount"]["original_price"] * $rule["wholesale_price"]/100,2); $item["item_cost"] = $item["wpo_item_discount"]["discounted_price"] = $item["wpo_item_discount"]["original_price"] - $discount; return $item; },10,2); |