在 Woocommerce 文档中,位于 get_price_html()
方法中的 woocommerce_get_price_html
过滤器钩子(Hook)应该接受最多接受两个参数,价格和产品。
但是当我尝试访问该产品时,我得到的是 NULL
而不是 WC_Product 对象。
这是我的测试代码:
add_filter( 'woocommerce_get_price_html', function( $price, $item ) {
echo var_dump ($item); // NULL
return $price;
});
我错过了什么吗?
最佳答案
您需要在 Hook 函数中声明用于此 Hook 的 2 个参数,就在 Hook 优先级之后,这样:
add_filter( 'woocommerce_get_price_html', function( $price, $product ) {
echo var_dump ($product); // The WC_Product object instance
return $price;
}, 10, 2 );
最好给你的函数命名,比如:
add_filter( 'woocommerce_get_price_html', 'filter_woocommerce_get_price_html', 10, 2 );
function filter_woocommerce_get_price_html( $price, $product ) {
echo var_dump ($product); // The WC_Product object instance
return $price;
}
这次你应该可以得到变量$product
对象了……
See documentation for add_action() and add_filter() WordPress functions.
关于php - Woocommerce Hook 函数的第二个参数返回 NULL 而不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55094245/