WooCommerce - удалить вариант из названия продукта в деталях заказа и электронной почте - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть вариация под названием «Китай» на некоторые из моих продуктов.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 );

1 Ответ

0 голосов
/ 28 сентября 2018

Нашел это.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 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...