Apply discount from Wholesale price, compatibility for WooCommerce Wholesale Pro by Barn2
Calculate discounts based on wholesale prices using WooCommerce Wholesale Pro.
if (!function_exists('advanced_woo_discount_rules_get_wholesale_price_by_barn2')) {
function advanced_woo_discount_rules_get_wholesale_price_by_barn2($product_price, $product, $quantity, $cart_item, $calculate_discount_from) {
if (is_user_logged_in() && $product->is_type(['simple', 'variation'])) {
if (class_exists('\Barn2\Plugin\WC_Wholesale_Pro\Util') && class_exists('\Barn2\Plugin\WC_Wholesale_Pro\Controller\Wholesale_Price')) {
$user = wp_get_current_user();
if (
!\Barn2\Plugin\WC_Wholesale_Pro\Util::is_wholesale_user($user)
&& !\Barn2\Plugin\WC_Wholesale_Pro\Util::admin_has_wholesale_pricing($user)
) {
return $product_price;
}
$wholesale_role = \Barn2\Plugin\WC_Wholesale_Pro\Util::get_current_user_wholesale_role_object();
if ($wholesale_role === false) {
return $product_price;
}
$wholesale_product = new \Barn2\Plugin\WC_Wholesale_Pro\Controller\Wholesale_Price($product, $wholesale_role);
if ($wholesale_product && $wholesale_product->get_price() !== false) {
$product_price = $wholesale_product->get_price();
}
}
}
return $product_price;
}
add_filter('advanced_woo_discount_rules_product_original_price_on_before_calculate_discount', 'advanced_woo_discount_rules_get_wholesale_price_by_barn2', 100, 5);
add_filter('advanced_woo_discount_rules_product_price_on_before_calculate_discount', 'advanced_woo_discount_rules_get_wholesale_price_by_barn2', 100, 5);
}