WooCommerce - отображать более одного названия варианта в качестве имени продукта в корзине - PullRequest
0 голосов
/ 16 марта 2020

Я бы хотел заменить название товара в корзине на два выбранных варианта. Идеально в этом формате:

Вариант 1 - Вариант 2

С помощью следующего кода он работает, но показывает только имя первого варианта.

add_action( 'woocommerce_before_calculate_totals', 'custom_cart_items_prices', 10, 1 );
function custom_cart_items_prices( $cart ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    foreach ( $cart->get_cart() as $cart_item ) {

        $product = $cart_item['data'];

        $original_name = method_exists( $product, 'get_name' ) ? $product->get_name() : $product->post->post_title;

        $new_name = wc_gzd_get_product( $product )->get_attribute('pa_attribute3';

        if( method_exists( $product, 'set_name' ) )
            $product->set_name( $new_name );
        else
            $product->post->post_title = $new_name;
    }
}

Кто-нибудь найти ошибку или узнать, как она работает?

Большое спасибо!

1 Ответ

0 голосов
/ 17 марта 2020

Я решил это.

Я использую приведенный выше код для использования атрибута 3 в качестве имени элемента и добавляю атрибут 1 и 2 с этим кодом:

    function show_things_in_cart_items( $item_name, $cart_item, $cart_item_key ) {
        $product = $cart_item['data'];

        $att1 = $product->get_attribute('pa_attribute1');
        $att2 = $product->get_attribute('pa_attribute2');

        {
            $item_name = '<class="product-model">' . $att1 . __( " ", "woocommerce") . $att2 . __( " - ", "woocommerce") . $item_name;
        } 

        return $item_name;
    }

add_filter( 'woocommerce_cart_item_name', 'show_things_in_cart_items', 99, 3 );

Спасибо пользователю LoicTheAzte c для основы этого кода, я просто изменил его для своих нужд. Я нашел это здесь: https://wordpress.stackexchange.com/questions/348631/adding-product-sku-before-cart-item-name-in-woocommerce

...