【发布时间】:2016-10-07 21:00:39
【问题描述】:
我正在使用 woocommerce 进行电子商务,我必须执行以下操作:
通过functions.php修改所有产品的价格。我创建的函数适用于网站的所有价格,但购物车的值除外。
我把函数放在下面:
function woo_change_price($price, $product) {
global $woocommerce, $product;
$post_id = $product->id;
$regular_price = get_post_meta( $post_id, '_regular_price', true);
$sale_price = get_post_meta( $post_id, '_sale_price', true);
$cupom_value = ($regular_price - $sale_price) / 10;
$price = $cupom_value;
return $price;
}
add_filter('woocommerce_get_price', 'woo_change_price', 99);
add_filter('woocommerce_get_sale_price', 'woo_change_price', 99);
add_filter('woocommerce_order_amount_item_subtotal', 'woo_change_price', 99);
看到我需要的是得到产品的正常价格和销售价格,并做一个基本的数学计算,将两者相减除以10。结果我设置为产品的新价格。
此功能在所有站点中都能完美运行,购物车除外。当我看到购物车时,所有值都设置为 0(价格、总计、小计等)。
我找到了为什么会发生此错误,但我现在不知道如何解决它。问题是:$product->id没有被购物车识别,然后返回0。
我该如何解决这个问题?
谢谢!
【问题讨论】:
标签: php wordpress woocommerce