我想使用现有的“customname1”自定义字段覆盖类别和产品页面上单个产品的名称/标题。
只要存在“customname1”字段,就应应用更改。
我发现结账和购物车页面有如下修改。我希望在类别和产品页面上有相同的效果。
function woocommerce_update_product_title($title, $cart_item){
if( is_checkout() || is_cart() ) : //Check Checkout or Cart Page
$customname1= get_post_meta($cart_item['product_id'], 'customname1',true);
return !empty( $customname1) ? $customname1: $title;
endif;
return $title;
}
add_filter('woocommerce_cart_item_name', 'woocommerce_update_product_title', 10, 2);
相反,您应该使用以下代码替换,它适用于任何地方,替换您当前提供的代码。当任何代码使用
get_title()
或 get_name()
方法时,以下挂钩函数将根据您的自定义字段值更改或过滤产品标题或名称:
add_filter( 'woocommerce_product_title', 'custom_product_title', 10, 2 );
function custom_product_title( $title, $product ) {
if ( $custom_title = $product->get_meta('customname1') ) {
return $custom_title;
}
return $title;
}
add_filter( 'woocommerce_product_get_name', 'custom_product_name', 10, 2 );
function custom_product_name( $name, $product ) {
if ( $custom_name = $product->get_meta('customname1') ) {
return $custom_name;
}
return $name;
}
代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。
我有同样的问题,但是如何将其应用于特定产品?