定制产品价格使购物车价格显示为0

时间:2017-03-06 19:21:48

标签: php wordpress woocommerce cart product

我正在尝试根据位置更改产品的价格。

为此,我使用wc字段工厂为位置创建多个字段并更新价格,并根据IP我找到城市(位置),我正在获取自定义字段值。

使用

function return_custom_price($price, $product) {
    global $post, $blog_id;
    $price = get_post_meta($post->ID, '_regular_price');
    $post_id = $post->ID;
    $price = ($price[0]*2.5);
    return $price;
}
add_filter('woocommerce_get_price', 'return_custom_price', 10, 2);

它的工作正常,但当我去购物车时,它显示产品价格为0 像这样:

product price gettting zero

请帮帮我。

感谢。

1 个答案:

答案 0 :(得分:1)

  

更新:

产品元数据 '_regular_price' 不是自定义字段,而是产品常规价格,您可以在 $product上直接using WC_Product methods and magic properties directly获取对象。

  

如果查看您的功能,您有2个参数: $price (产品价格)和 $product (产品对象) ...所以你不需要使用任何全局变量,因为你已经可以使用$ product对象了。

以下是更新后的代码:

add_filter('woocommerce_get_price', 'product_custom_price', 10, 2);
function product_custom_price($price, $product) {
    $custom_price = $product->get_regular_price();
    return $custom_price * 2.5;
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

请参阅购物车截图:

1)购物车未使用此代码(之前):

cart without using this code

2)购物车使用此代码(之后):

enter image description here

  

正如您所看到的,此代码可以正常运行,并在购物车商品中显示常规价格。

OP正在将此代码与自定义字段一起使用:

add_filter('woocommerce_get_price', 'product_custom_price', 10, 2); 
function product_custom_price($price, $product) { 
    $custom_price = get_post_meta($product->id, 'custom_key', true); 
    return $custom_price; 
}