向 Woocommerce 产品可用性添加自定义文本,并为购物车项目显示它

Add a custom text to Woocommerce product availability and display it for cart items

我正在尝试找到一种方法,在 woocommerce 单一产品页面上的可用性信息(缺货、有货等)之前放置自定义文本。

我正在使用类似的东西:

add_filter( 'woocommerce_get_availability', 'change_product_availability_display' ); 
add_filter( 'unknown filter', 'change_product_availability_display' );
function change_product_availability_display( $availability ) {
    // Additional text 
    $text = __('Availability:'); 
    // returning the text before the availability 
    return $text . ' ' . $availability; 
}

它基于:

如果我的代码 "unknown filter" 中指定的价格过滤器是 woocommerce_cart_item_price。我已经为 availability/stock 项寻找这种过滤器,但找不到。

也许有人可以查看此代码并帮助我找到这个“unknown_filter”或者有其他想法如何在可用性信息之前放置自定义文本?

我已经重新访问了您的代码,因为您正在尝试将字符串与数组合并。
我还添加了第二个挂钩函数,可以显示您的 "labeled" 购物车和结帐商品的可用性。

代码:

add_filter( 'woocommerce_get_availability', 'add_label_to_availability_display' );
function add_label_to_availability_display( $availability ) {
    if( is_product() || is_cart() || is_checkout() ){
        $label = __( 'Availability', 'woocommerce' ) . ': ';
        $availability['availability'] = $label . $availability['availability'];
    }
    return $availability;
}

add_filter( 'woocommerce_cart_item_name', 'add_availability_below_cart_item_name', 10, 3);
function add_availability_below_cart_item_name( $item_name, $cart_item, $cart_item_key ) {
    $availability = $cart_item['data']->get_availability();
    return $item_name . '<br>' . $availability['availability'];
}

代码进入您的活动子主题(活动主题)的 function.php 文件。

已测试并有效。