我正在尝试在产品标题中添加产品 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;
}
试试这个:
// 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);
您可以创建自己的函数来处理产品标题。将此代码放入您的子主题的
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;
}