如何从woocommerce_product_tax_class迁移至woocommerce_product_get_tax_class?
WooCommerce 过滤器迁移问题解答
不完全只改钩子名称哦,不过整体改动非常小,我给你理清楚:
- 核心替换:把旧钩子名称
woocommerce_product_tax_class改成新的woocommerce_product_get_tax_class,这是必须的一步。 - 参数与优先级兼容:你原来代码里的优先级(1)和参数数量(2)完全适配新钩子,不需要做任何调整。
- 函数逻辑无需修改:新钩子的参数结构和旧钩子完全一致——第一个参数是税类字符串,第二个是产品对象,所以你写的
wc_no_tax函数可以原封不动保留。
修改后的完整代码如下:
function wc_no_tax($tax_class, $product) { $id = $product->get_id(); $price = $product->get_price(); if ($id == 12345 && $price < 999) { $tax_class = 'Zero Rate'; } return $tax_class; } add_filter('woocommerce_product_get_tax_class', 'wc_no_tax', 1, 2);
小提醒:以后遇到类似的WooCommerce钩子弃用提示,官方文档通常会标注新钩子的参数是否和旧钩子兼容,大部分这类替换都是参数一致的,但花1分钟确认下参数结构能避免不必要的问题。
内容的提问来源于stack exchange,提问作者lofidevops
相关产品推荐
相关产品推荐

