Отображение пользовательского эскиза для определенного идентификатора продукта в корзине Woocommerce - PullRequest
0 голосов
/ 25 августа 2018

В Woocommerce я хотел бы изменить миниатюру определенного элемента корзины с помощью персонализированного изображения.Я могу изменить изображение, но при этом меняются все эскизы элементов корзины.
Я хочу изменить только изображение определенного продукта.

Как я могу это сделать?

Вот код, который я использую:

add_filter( 'woocommerce_cart_item_thumbnail', 'change_woocommerce_cart_item_thumbnail', 10, 3 ); 

function change_woocommerce_cart_item_thumbnail( $thumbnail, $cart_item, 

    $cart_item_key ) { 

    $cart = WC()->cart->get_cart();

    foreach( $cart as $cart_item ){

        $product = wc_get_product( $cart_item['product_id'] );

        if($cart_item['product_id'] == 75){

        echo  'New Image Here';

        }
    }

};

enter image description here

Любая помощь, пожалуйста.

1 Ответ

0 голосов
/ 26 августа 2018

Вам не нужен цикл foreach, потому что $cart_item уже включен в качестве аргумента в функцию.Следующий код будет работать для всех типов продуктов и позволит вам иметь собственный эскиз для конкретного продукта на странице корзины:

add_filter( 'woocommerce_cart_item_thumbnail', 'change_woocommerce_cart_item_thumbnail', 20, 3 ); 
function change_woocommerce_cart_item_thumbnail( $thumbnail, $cart_item, $cart_item_key ){ 
    // HERE your targeted product ID
    $targeted_id = 75;

    if( $cart_item['product_id'] == $targeted_id || $cart_item['product_id'] == $targeted_id ){
        echo  'New Image Here';
    }
}

Код помещается в файл function.php вашей активной дочерней темы (или активнойтема).Проверено и работает.

...