WooCommerce变体价格挂钩

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);
}

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

我做错了什么?


我稍后会尝试找到一些方便和经过测试的东西,因为我现在有点忙。变量产品价格和变化价格比所有其他产品类型都要复杂得多... helgatheviking 用户是这方面的专家。 - LoicTheAztec
谢谢您查看这个问题。 我正在使用常规价格的方式,在特定用户角色已登录的情况下,将它们与自定义字段值进行切换。我需要相同的事情适用于变化产品价格。我知道变体可以有一系列价格,因此要做相同的事情很困难,但在我的情况下,如果产品有不同的颜色,价格将保持不变,因此只需拉取相同的自定义字段值,而不是变异价格。这是开发网站的链接:http://bajko.webdotagency.com/ 但它是塞尔维亚语...再次感谢 - Nikola Topalovic
感谢提供这些重要的细节(毫无疑问,Topalovic是塞尔维亚人 :) ...)- 如果你不知道(并且希望删除它们),你可以在鼠标悬停时点击小灰色的交叉图标来删除一些旧的无用评论... - LoicTheAztec
如果变得拥挤,我会这样做...但希望这不是因为我写了一些不合适的东西而含蓄地建议 :) 当你有机会时,我真的很感激你花时间看它。 - Nikola Topalovic
1个回答

0
你的问题在于没有为函数定义所需的参数,add_filters 结尾处的数字3表示你正在传递 3 个参数,因此你需要这样做:
function filter_woocommerce_get_variation_price($price, $product) { 
    return 66; 
}; 
add_filter( 'woocommerce_get_variation_price', 'filter_woocommerce_get_variation_price', 10, 2 );

这样函数就可以被调用了。


你好,感谢您的回答,但是您发布了钩子用于 woocommerce_get_price,我已经成功地使用它并且没有参数。我遇到问题的是 woocommerce_get_variation_price。 我也尝试为该钩子添加参数,但仍然没有成功。 - Nikola Topalovic
嗨,我更新了答案,使用woocommerce_get_variation_price,如果它有效,请选择为答案。您必须更改add_filter调用。 - Skatox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接