获得产品价格包括插件 - WooCommerce / WooCommerce产品插件

时间:2018-02-01 15:08:26

标签: php wordpress woocommerce cart checkout

在使用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);

0 个答案:

没有答案