如何修改WooCommerce购物车中“Available on backorder”的显示文本
你之前使用的woocommerce_get_availability过滤器仅作用于商品详情页、商品列表页的库存状态提示,购物车页面的预售通知是通过独立的钩子输出的,需要额外新增过滤器适配。
以下是完整可用的修改代码:
// 修改商品详情、列表页的库存状态文本 function change_specific_availability_text( $availability ) { $targeted_text = __( 'Available on backorder', 'woocommerce' ); $targeted_text2 = __('In stock (can be backordered)', 'woocommerce'); if ($availability[ 'class' ] == 'available-on-backorder' && $availability[ 'availability' ] == $targeted_text) { $availability[ 'availability' ] = __( '預購款 | Backorder Item', 'your-theme-textdomain' ); } if ($availability[ 'class' ] == 'in-stock' && $availability[ 'availability' ] == $targeted_text2) { $availability[ 'availability' ] = __( '現貨 | Readystock Item', 'your-theme-textdomain' ); } return $availability; } add_filter( 'woocommerce_get_availability', 'change_specific_availability_text', 20, 1 ); // 新增:修改购物车页面的预售提示文本 function change_cart_backorder_notification( $text, $product ) { $default_text = __( 'Available on backorder', 'woocommerce' ); if( $text === $default_text ) { $text = __( '預購款 | Backorder Item', 'your-theme-textdomain' ); } return $text; } add_filter( 'woocommerce_cart_item_backorder_notification', 'change_cart_backorder_notification', 20, 2 );
注意事项
- 代码中的
your-theme-textdomain需要替换为你自己使用的主题/子主题的官方文本域 - 自定义文本内容可以根据你的需求自行调整
如果还有其他边缘位置的提示文本没有修改成功,可以新增以下全局替换代码兜底:
// 兜底:全局替换WooCommerce的背单提示文本 function custom_translate_backorder_text( $translated_text, $text, $domain ) { if( $domain === 'woocommerce' && $text === 'Available on backorder' ) { $translated_text = __( '預購款 | Backorder Item', 'your-theme-textdomain' ); } return $translated_text; } add_filter( 'gettext', 'custom_translate_backorder_text', 20, 3 );
内容的提问来源于stack exchange,提问作者Hong Ernest
相关产品推荐
相关产品推荐

