向 Woocommerce 购物车商品名称和订单商品名称添加换行符

问题描述 投票:0回答:2

背景
此问题是上一个问题的后续问题,标题为 在 Woocommerce 产品标题中添加换行符

对我来说,将本主题中的代码(见下文)添加到我的子 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 产品下的产品名称更改为“名称 | 这里”,在前端产品库中得到这样的结果

“姓名
这里”

问题
代码就像产品库中的魅力一样,一切都很好 - 但这是我的问题出现的地方。它显示了一个 ' | ”在所有子页面上,例如“购物篮”和“菜单购物车”。我有两个选择我想尝试一下:

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

  1. 如何制作“|”因此,“
    <br/>
    ”仅允许出现在产品图库页面上,从而导致隐藏和/或在所有其他页面上充当“显示:无”?

希望大家能帮助我。

php html wordpress woocommerce product
2个回答
1
投票

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

// 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 文件中。已测试并有效。


0
投票

此解决方案适用于产品链接吗?我可以让产品标题显示在两行上,但是当使用产品标题生成链接时,我无法以同样的方式将其打破。

© www.soinside.com 2019 - 2024. All rights reserved.