在 Woocommerce 的产品标题中添加产品 ID 作为后缀

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

我正在尝试在产品标题中添加产品 ID 作为后缀,例如:

iPhoneX - 123(其中 123 是 ID)

我需要这个的原因与我正在处理的支付网关有关。因此,此解决方案仅需要应用于支付网关在结账时需要识别该 ID 的情况。

以下代码按照我想要的方式在结帐时将产品 ID 显示为后缀。但是,下单并重定向至第三方支付网关页面时; ID 不在那里显示。我希望第三方支付网关也能显示它。

add_filter('the_title', 'change_woocommerce_single_title', 1, 2);

function change_woocommerce_single_title($title, $id) {

if ( class_exists( 'woocommerce' ) && is_checkout())
  $title = $title . ' - ' . $id;
  
return $title;
}
javascript php jquery wordpress woocommerce
2个回答
1
投票

试试这个:

// For shop
function change_woocommerce_single_title($title, $id) {

    if ( in_array( get_post_type( $id ), array( 'product', 'product_variation') ) || is_product() )
      $title = $title . ' - ' . $id;
      
    return $title;
}

add_filter('the_title', 'change_woocommerce_single_title', 1, 2);

// For cart
function filter_woocommerce_cart_item_name( $item_name, $cart_item, $cart_item_key ) { 
    
    if( $cart_item['variation_id'] )
        $id = absint( $cart_item['variation_id'] );
    else
        $id = absint( $cart_item['product_id'] );
        
    $item_name = $item_name . ' - ' . $id;

    return $item_name;
    
}; 
         
add_filter('woocommerce_cart_item_name', 'filter_woocommerce_cart_item_name', 10, 3); 

1
投票

您可以创建自己的函数来处理产品标题。将此代码放入您的子主题的

function.php

add_filter('the_title', 'change_woocommerce_single_title', 1, 2);

function change_woocommerce_single_title($title, $id) {

   if ( class_exists( 'woocommerce' ) && is_product())
      $title = $title . ' - ' . $id;
      
    return $title;
}
© www.soinside.com 2019 - 2024. All rights reserved.