在使用WooCommerce Product Addons扩展程序时,我无法获得包含插件价格变更的产品价格。
在尝试根据用户角色更改价格时,我使用了一个使用“woocommerce_product_get_price”挂钩的功能。在函数中,我使用以下方法获取产品价格:
$product->get_regular_price();
但这只能获得原价并且不包括产品插件的成本变化。因此,如果产品添加了价格改变插件,那么购物车和结帐页面上的价格就会出错。
在考虑插件费用后,我可以用什么代替get_regular_price()
来获得产品价格?
该功能应该看起来像这样:
function alter_price_by_user_role($price, $product) {
//get original price
$price = $product->get_regular_price();
//get current user
$current_user = wp_get_current_user();
//if is custom role
if( in_array('custom_role', $current_user->roles)){
//if is cart or checkout, alter price including addons. if not, just alter base price.
if(is_cart() || is_checkout()){
$totalPrice = $price + GET_ADDON_COSTS; //<----------------------how?
$price = $totalPrice * .9;
}
else{
//alter base prices
$price *= .9;
}
}
return $price;
}
add_filter('woocommerce_product_get_price', 'alter_price_by_user_role', 10, 2);