如何清理WooCommerce购物车中商品permalink的变体信息
解决WooCommerce购物车商品标题移除变体信息的问题
你之前使用woocommerce_cart_item_permalink钩子并返回null的方式会直接移除整个商品链接,显然不符合需求。正确的做法是通过修改购物车商品显示的名称来实现,而非修改链接本身,具体可以使用woocommerce_cart_item_name过滤器:
add_filter( 'woocommerce_cart_item_name', 'remove_variation_suffix_from_cart_title', 10, 3 ); function remove_variation_suffix_from_cart_title( $display_name, $cart_item, $cart_item_key ) { $product = $cart_item['data']; // 仅针对变体产品处理 if ( $product->is_type('variation') ) { // 获取父产品对象 $parent_product = wc_get_product( $product->get_parent_id() ); // 构建保留原链接的纯商品标题 $display_name = sprintf( '<a href="%s">%s</a>', esc_url( $product->get_permalink() ), // 链接仍指向变体产品,若需指向父产品可替换为 $parent_product->get_permalink() esc_html( $parent_product->get_name() ) ); } return $display_name; }
代码说明:
- 该钩子专门用于修改购物车中显示的商品名称,不会破坏原有链接结构
- 仅对变体产品做处理:获取其对应的父产品,用父产品的纯标题替换带变体后缀的显示名称
- 链接默认仍指向变体产品,若你希望链接跳转到父产品详情页,只需将代码中的
$product->get_permalink()替换为$parent_product->get_permalink() - 简单产品的标题会保持原样,不受影响
将上述代码添加到你的主题functions.php文件或自定义插件中即可生效。
内容的提问来源于stack exchange,提问作者hamed2011
相关产品推荐
相关产品推荐

