为 Woocommerce 购物车项目名称和订单项目名称添加换行符

Add a line break to Woocommerce cart item names and order item names

上下文
这个问题是上一个标题为

的问题的 follow-up

对我而言,将本主题中的代码(见下文)添加到我的 child astra 主题时,就像一个魅力。我有一个问题想稍微升级一下这段代码,希望一些聪明的开发人员能帮助我。

//ADD LINE BREAK
add_filter( 'the_title', 'custom_the_title', 10, 2 );
function custom_the_title( $title, $post_id ) {
    $post_type = get_post_field( 'post_type', $post_id, true );
    if( $post_type == 'product' || $post_type == 'product_variation' )
        $title = str_replace( '|', '<br/>', $title ); // we replace '|' by '<br>'
    return $title;
}

所以我将 woocommerce 产品下的产品名称更改为“name | here”,在前端产品库中得到这样的结果

"姓名
这里

问题
代码在产品库中就像一个魅力,一切都很好——但这是我的问题。它显示了一个 ' | ' 在所有子页面上,例如 'basket' 和 'menu cart'。我有两个想尝试的选项:

  1. 如何集成代码以访问所有其他页面(例如菜单购物车和购物篮,也许还有更多),而不仅仅是产品图库?

  1. 如何制作'|'因此,“<br/>”只能在产品图库页面上使用,导致隐藏 and/or 在所有其他页面上作为 'diplay: none' 工作?

希望大家帮帮我。

要更改购物车商品、迷你购物车和订单商品上的产品名称显示 (+ 电子邮件通知),请使用以下附加代码:

// For mini cart and cart item name
add_action( 'woocommerce_cart_item_name', 'alter_wc_cart_item_name', 10, 2 );
function alter_wc_cart_item_name( $item_name, $cart_item ) {
    if ( strpos($item_name , '|') !== false ) {
        $item_name = str_replace( '|', '<br/>', $item_name );
    }
    return $item_name;
}

// For order item name (even on email notifications)
add_action( 'woocommerce_order_item_name', 'alter_wc_order_item_name', 10, 2 );
function alter_wc_order_item_name( $item_name, $item ) {
    if ( strpos($item_name , '|') !== false ) {
        $item_name = str_replace( '|', '<br/>', $item_name );
    }
    return $item_name;
}

代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。