WooCommerce如何在购物车页面覆盖商品名称?
WooCommerce购物车自定义商品名称的正确实现方式
你之前用product_name作为键名传递自定义名称不生效,是因为add_to_cart的第五个参数cart_item_data仅用于存储自定义数据,WooCommerce不会自动读取这个键来覆盖商品名称。正确的做法是通过钩子拦截购物车商品名称的显示逻辑,步骤如下:
1. 添加商品到购物车时传递自定义名称
在调用add_to_cart时,用自定义键名存储你的商品名称:
$cart_item_data = array( 'custom_product_name' => '自定义商品名称' ); WC()->cart->add_to_cart( $product_id, $qty, $variation_id, $all_variations, $cart_item_data );
2. 用钩子修改购物车显示的商品名称
将以下代码添加到主题的functions.php文件或自定义插件中,通过woocommerce_cart_item_name钩子替换显示的名称:
add_filter( 'woocommerce_cart_item_name', 'override_cart_item_name', 10, 3 ); function override_cart_item_name( $item_name, $cart_item, $cart_item_key ) { // 检查是否存在自定义名称数据 if ( isset( $cart_item['custom_product_name'] ) ) { // 直接替换为自定义名称,如需保留商品链接可启用下方注释代码 $item_name = $cart_item['custom_product_name']; // $item_name = sprintf( '<a href="%s">%s</a>', esc_url( $cart_item['data']->get_permalink() ), $cart_item['custom_product_name'] ); } return $item_name; }
这样就能在购物车视图中显示你设置的自定义商品名称了。
内容的提问来源于stack exchange,提问作者BLK-Frankie
相关产品推荐
相关产品推荐

