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 28 29 30 31 32 33 34 |
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 ]; //variation ?? if( isset($rule[$product->get_id()]) ) { $rule['wholesale_price'] = $rule[$product->get_id()]['wholesaleprice']; $rule['qty'] = $rule[$product->get_id()]['qty']; } if( isset ($rule['qty']) AND ($item['qty'] < $rule['qty']) ) 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); |