我正在尝试使用 Hook 修改产品价格,并已成功地使用以下方法对常规产品进行了修改:
function filter_woocommerce_get_price() {
return 55;
};
add_filter( 'woocommerce_get_price', 'filter_woocommerce_get_price', 10, 3 );
我注意到这个钩子(Hook)不适用于变体产品,所以我找到了等效的:
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);
}
我在网上找到了类似的解决方案,但没有改变我的变体产品价格。
我做错了什么?
最佳答案
你的问题是你没有为你的函数定义所需的参数,数字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 );
因此可以调用该函数。
关于wordpress - woocommerce Hook 用于改变价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38552882/