如何修改WooCommerce购物车商品数量字段的设计?
解决WooCommerce购物车“Quantity”文字添加冒号的问题
嘿,我来帮你搞定这个问题!首先得澄清一下:你提到的woocommerce_cart_item_quantity过滤器其实是用来修改商品数量的输入框/显示内容的,不是用来改“Quantity”这个标签文字的。针对你要给“Quantity”加冒号的需求,我给你两种可行的方法,推荐用第二种,更安全且不怕主题更新覆盖。
方法1:子主题模板覆盖修改(直接改代码)
如果你习惯直接改模板文件,记得一定要用子主题操作,不然主题更新后你的修改会丢失:
- 复制WooCommerce核心的
cart.php模板(路径:wp-content/plugins/woocommerce/templates/cart/cart.php)到你的子主题目录下,路径改成:wp-content/themes/你的子主题/woocommerce/cart/cart.php - 打开这个复制后的文件,找到你提到的这段代码:
<div class="product-quantity delivery" data-title="<?php esc_attr_e( 'Quantity', 'woocommerce' ); ?>">
- 把里面的
'Quantity'改成'Quantity:',修改后代码变成:
<div class="product-quantity delivery" data-title="<?php esc_attr_e( 'Quantity:', 'woocommerce' ); ?>">
- 保存文件,刷新购物车页面就能看到效果了。
方法2:用过滤器修改(推荐,无需碰模板)
这种方法不用修改任何模板文件,直接在子主题的functions.php里加代码,永远不会被更新覆盖:
全局替换所有WooCommerce里的“Quantity”为“Quantity:”
如果想让所有地方的“Quantity”都变成带冒号的(包括购物车表头、data-title等),添加这段代码:
add_filter( 'gettext', 'custom_woocommerce_quantity_label', 10, 3 ); function custom_woocommerce_quantity_label( $translated_text, $text, $domain ) { // 只针对WooCommerce的翻译文本 if ( 'woocommerce' === $domain && 'Quantity' === $text ) { $translated_text = 'Quantity:'; } return $translated_text; }
只修改购物车表头的“Quantity”文字
如果你只想改购物车表格表头的标签,不影响其他地方,用这个过滤器:
add_filter( 'woocommerce_cart_item_headers', 'custom_cart_quantity_header' ); function custom_cart_quantity_header( $headers ) { if ( isset( $headers['quantity'] ) ) { $headers['quantity'] = 'Quantity:'; } return $headers; }
顺便说下你提到的woocommerce_cart_item_quantity过滤器
这个过滤器是用来调整商品数量的显示形式的,比如给数量输入框加前缀、修改输入框样式等,举个简单例子:
add_filter( 'woocommerce_cart_item_quantity', 'custom_cart_item_quantity_display', 10, 3 ); function custom_cart_item_quantity_display( $quantity_html, $cart_item_key, $cart_item ) { // 在数量输入框前加个自定义文字 return '<span>购买数量:</span>' . $quantity_html; }
选一个适合你需求的方法加代码进去,刷新页面就能看到效果啦!
内容的提问来源于stack exchange,提问作者Tautve
相关产品推荐
相关产品推荐

