wordpress - 使用 "woocommerce_product_get_stock_quantity"过滤器 Hook 时出现问题

标签 wordpress woocommerce product hook-woocommerce stock

我想把单品页的库存数量替换为“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/

相关文章:

mysql - 在 WordPress 自定义查询中序列化返回 false

php - 用于插件开发的 WooCommerce 运输方法

javascript - 我可以将 JQuery 与内联 html 一起使用吗?如果是这样怎么办?

php - 上传批量图片时可以防止服务器超时吗?

javascript - 基于产品类型的 WooCommerce “ADD TO CART” 按钮旁边的自定义按钮

php - 禁用特定运输方式的支付网关

php - 在产品图片下方显示产品价格

python - 使用 python itertools 生成自定义迭代

python - 列表python的产品

php - 将 post_content 中的 [keyword] 替换为 post_title MYSQL 中的单词