在我们的网站上,我们有下面显示的功能,可以根据用户角色更改价格。问题是,如果客户登录并担任高级角色,价格将保持不变,就像客户不担任高级角色一样。有没有办法重新计算购物车的价格?
add_filter(\'woocommerce_get_price\', \'return_custom_price\', $product, 2);
add_filter(\'woocommerce_product_variation_get_price\', \'return_custom_price\', $product, 2);
function return_custom_price($price, $product) {
if (! current_user_can(\'premium\') || ! is_user_logged_in()) {
global $post, $woocommerce;
return $new_price = $price * 1.25;
}
return $price;
}
SO网友:Erez Lieberman
也许您需要添加:
wc_delete_product_transients($post->ID);
我在opther项目中做了类似的事情,这很有效:
if (is_user_logged_in()) {
add_filter(\'woocommerce_product_variation_get_regular_price\', \'my_custom_price\', 10, 2);
add_filter(\'woocommerce_product_variation_get_price\',\'my_custom_price\', 10, 2); } function my_custom_price( $price ) {
global $post;
// Delete product cached price (if needed)
wc_delete_product_transients($post->ID);
// Return the new price
return $price = ($price * 1.1) ;}