如何修改WooCommerce“%s已加入购物车”文本且不移除“查看购物车”按钮
你当前使用的代码直接返回纯文本字符串,覆盖了原有包含「查看购物车」按钮的完整HTML结构,所以按钮会消失。只需要调整回调函数逻辑,保留原有按钮结构,仅替换提示文案即可。
可用修改代码
/** * 修改WooCommerce加购提示文本,保留查看购物车按钮 * 兼容WC 5及以上版本 */ add_filter( 'wc_add_to_cart_message_html', 'custom_edit_add_to_cart_message', 10, 2 ); function custom_edit_add_to_cart_message( $original_message, $products ) { $total_quantity = 0; foreach ( $products as $product_id => $qty ) { $total_quantity += $qty; } // 自定义单商品加购提示文案,%s会自动替换为商品名称 if ( $total_quantity === 1 ) { $product = wc_get_product( array_key_first( $products ) ); $custom_text = sprintf( '已成功添加「%s」到购物车', $product->get_name() ); } // 自定义多商品批量加购提示文案,%d会自动替换为商品总数量 else { $custom_text = sprintf( '已成功添加 %d 件商品到购物车', $total_quantity ); } // 生成默认的查看购物车按钮HTML,无需修改 $view_cart_button = wc_get_button_html( wc_get_cart_url(), __( '查看购物车', 'woocommerce' ) ); // 拼接文案和按钮后返回 return $custom_text . ' ' . $view_cart_button; }
使用说明
- 把上面的代码添加到当前使用主题的
functions.php文件末尾,或者用自定义代码片段插件添加即可生效 - 可以自行修改代码里的
已成功添加「%s」到购物车、已成功添加 %d 件商品到购物车两段文案为你需要的内容,注意不要删掉%s和%d的占位符 - 如果你站点的PHP版本低于7.3,把代码里的
array_key_first( $products )替换为key( $products )即可兼容 - 如果需要修改按钮文本,把
__( '查看购物车', 'woocommerce' )里的「查看购物车」替换为你需要的文字即可 - 修改后如果不生效,记得清空站点缓存和浏览器缓存后重试
内容的提问来源于stack exchange,提问作者StEst
相关产品推荐
相关产品推荐

