我想把单品页的库存数量替换为“5+”,如果库存数量大于5,则显示原来的数量。
我尝试如下修改钩子(Hook)
add_filter( 'woocommerce_product_get_stock_quantity' ,'custom_get_stock_quantity', 10, 2 );
add_filter( 'woocommerce_product_variation_get_stock_quantity' ,'custom_get_stock_quantity', 10, 2 );
function custom_get_stock_quantity( $value, $_product ) {
global $product;
if($_product->get_stock_quantity() > 5){
return "5+";
}
else{
return $_product->get_stock_quantity();
}
}
这给了我 502 服务器错误。这里可能出现什么问题?
最佳答案
该错误是由于多种原因造成的
- Hook 已弃用
- 您的回调函数仅返回一个数字:
5
,而不是字符串:"5+"
- 通过使用
$_product->get_stock_quantity()
您可以创建一个无限循环,因为该函数调用钩子(Hook)
因此,为了满足您的需求,您必须采取不同的方法。例如,通过使用 woocommerce_get_availability_text
Hook
所以你得到:
// Availability text
function filter_woocommerce_get_availability_text( $availability, $product ) {
if ( $product->get_stock_quantity() > 5 ) {
$availability = '+5';
}
return $availability;
}
add_filter( 'woocommerce_get_availability_text', 'filter_woocommerce_get_availability_text', 10, 2 );
关于wordpress - 使用 "woocommerce_product_get_stock_quantity"过滤器 Hook 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69823644/