4

我正在尝试使用钩子修改产品价格,并成功地使用以下方法对常规产品进行了修改:

function filter_woocommerce_get_price() { 
    return 55; 
}; 
add_filter( 'woocommerce_get_price', 'filter_woocommerce_get_price', 10, 3 );

我注意到这个钩子不适用于变体产品,所以我找到了等效的:

function filter_woocommerce_get_variation_price() {
    return 66; 
};
add_filter( 'woocommerce_get_variation_price_html', 'filter_woocommerce_get_variation_price', 10, 3 );

但它只是行不通......我也试过这个:

add_filter( 'woocommerce_variation_sale_price_html', 'my_html', 10, 2);
add_filter( 'woocommerce_variation_price_html', 'my_html', 10, 2);
function my_html( $price, $variation ) {
    return woocommerce_price(5);
}

以及我在网上找到的类似解决方案,但没有改变我的变体产品价格。

我究竟做错了什么?任何人都可以帮我解决这个问题,在这里变得非常绝望吗?

4

1 回答 1

0

你的问题是你没有为你的函数定义所需的参数,数字3添加结束add_filters意味着你正在传递 3 个参数,所以你必须这样做:

function filter_woocommerce_get_variation_price($price, $product) { 
    return 66; 
}; 
add_filter( 'woocommerce_get_variation_price', 'filter_woocommerce_get_variation_price', 10, 2 );

这样就可以调用函数了。

于 2016-07-24T14:08:55.637 回答