使用 "woocommerce_product_get_stock_quantity" 过滤器挂钩时出现问题
Issue when using "woocommerce_product_get_stock_quantity" filter hook
我想把单品页面的库存数量替换为“5+”,如果库存数量大于5,则显示原数量。
我试过如下修改钩子
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 已弃用
- 你的回调函数只有returns一个数字:
5
,不是一个字符串:"5+"
- 通过使用
$_product->get_stock_quantity()
你创建了一个无限循环,因为这个函数调用了 hook
因此,为了满足您的需求,您必须采用不同的方法。例如通过使用 woocommerce_get_availability_text
挂钩
所以你得到:
// 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 );
我想把单品页面的库存数量替换为“5+”,如果库存数量大于5,则显示原数量。
我试过如下修改钩子
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 已弃用
- 你的回调函数只有returns一个数字:
5
,不是一个字符串:"5+"
- 通过使用
$_product->get_stock_quantity()
你创建了一个无限循环,因为这个函数调用了 hook
因此,为了满足您的需求,您必须采用不同的方法。例如通过使用 woocommerce_get_availability_text
挂钩
所以你得到:
// 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 );