У меня есть вариация под названием «Китай» на некоторые из моих продуктов.WooCommerce работает так, что внутри корзины, деталей заказа и электронных писем варианты добавляются к названию продукта.Я хотел бы удалить слово «Китай» из названия в корзине, оформлении заказа, деталях заказа и электронной почте.
Текущее название: «Apple MacBook Pro 15 - Китай, 16 ГБ RAM, 512 ГБ SSD»
Обязательный заголовок: «Apple MacBook Pro 15 - Ram 16 ГБ, 512 ГБ SSD»
Мне удалось удалить его из заголовка, когда он находится внутри страницы корзины и оформления заказа, используя этот код:
function remove_variation_from_product_title( $title, $cart_item, $cart_item_key ) {
$_product = $cart_item['data'];
if ( $_product->is_type( 'variation' ) ) {
$replace = array( 'China,', 'China' );
$title = str_replace( $replace, '', $title);
return apply_filters( 'woocommerce_product_variation_title', $title );
}
return $title;
}
add_filter( 'woocommerce_cart_item_name', 'remove_variation_from_product_title', 10, 3 );
Но, как видно из фильтра, он только удаляет его из корзины.Как только заказ сделан, полный заголовок с вариантами снова отображается на странице сведений о заказе, а также в электронном письме, отправленном клиентом.
Я наткнулся на другой фильтр под названием woocommerce_order_items_meta_display
, но с ним ничего не получилось.
Кто-нибудь знает, как можно отфильтровать название продукта по всему магазину, а не только на странице корзины и оформления заказа?
Спасибо.
Обновление:
Нашли решение.woocommerce_order_item_name
сделал свое дело.Он также применяется к электронной почте, отправляемой клиенту.
function remove_variation_from_product_title_order( $title, $item, $is_visible ) {
$_product = $item['data'];
$replace = array( 'China,', 'China' );
$title = str_replace( $replace, '', $title);
return apply_filters( 'woocommerce_product_variation_title', $title );
}
add_filter( 'woocommerce_order_item_name', 'remove_variation_from_product_title_order', 10, 3 );