如何动态更改Woocommerce中的产品价格 - WordPress?

时间:2015-02-27 15:12:49

标签: php wordpress woocommerce hook

如果我的客户来自某个特定的地方,我需要在我的商店中更改我的产品价格10%的折扣,所以,我写了这段代码:

add_filter('woocommerce_price_html', 'my_price_edit');
function my_price_edit() {
     $product = new WC_Product( get_the_ID() );
     $price = $product->price;
     echo $price * 0.9;
}

好的,它有效!但在结账时价格是正常的,没有10%的折扣!

是否有一些钩子用于更改结帐区域中产品的价格或某些不同的代码以在两者中正确更改(在产品页面和结帐中)?

1 个答案:

答案 0 :(得分:0)

Woocommerce的新功能。 你的问题看起来与这个问题非常类似。 Adding Custom price with woocomerce product price in Cart & Checkout

我认为您需要使用woocommerce_cart_item_subtotal挂钩直接更改购物车中的价格(不完全是参数)

我对代码稍作修改(更改了价格公式)。我认为这可能会对你有所帮助。

    add_filter( 'woocommerce_get_discounted_price', 'calculate_discounted_price', 10, 2 );
    // Display the line total price
    add_filter( 'woocommerce_cart_item_subtotal', 'display_discounted_price', 10, 2 );

    function calculate_discounted_price( $price, $values ) {
        // You have all your data on $values;
        $price = $price*.09;
        return $price;
    }

    // wc_price => format the price with your own currency
    function display_discounted_price( $values, $item ) {
        return wc_price( $item[ 'line_total' ] );
    }