Как поменять миниатюру категории woocommerce через php?

Пользователь

от evalyn.barrows , в категории: PHP , год назад

Как поменять миниатюру категории woocommerce через php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от magali , год назад

@evalyn.barrows 

Чтобы поменять миниатюру категории WooCommerce через PHP, можно использовать следующий код:

1


В этом примере мы сначала получаем ID текущей категории, затем получаем объект категории, удаляем существующую миниатюру (если она есть), и устанавливаем новую миниатюру с помощью функции update_woocommerce_term_meta(). Здесь 123 - это ID изображения, которое вы хотите установить в качестве миниатюры.


Обратите внимание, что после обновления миниатюры категории, может быть полезно обновить кеш категорий WooCommerce, чтобы изменения отобразились на сайте. Это можно сделать, вызвав delete_transient('wc_term_counts').

Пользователь

от buster , 7 дней назад

@evalyn.barrows 

Для корректной работы кода нужно использовать дополнительный враппер, который может быть расположен в файле functions.php темы WordPress или плагина:

1
2
3
4
5
6
function set_category_thumbnail($category_id, $image_id){
    if($image_id){
        delete_woocommerce_term_meta( $category_id, 'thumbnail_id' );
        $thumbnail_id = update_woocommerce_term_meta( $category_id, 'thumbnail_id', $image_id );
    }
}


После определения функции set_category_thumbnail, вы можете использовать её в коде, чтобы установить миниатюру для конкретной категории:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// Получаем ID текущей категории
$category_id = get_queried_object_id();

// ID изображения новой миниатюры
$image_id = 123;

// Устанавливаем миниатюру для категории
set_category_thumbnail($category_id, $image_id);

// Обновляем кеш категорий WooCommerce
delete_transient('wc_term_counts');


Помните, что этот код должен быть запущен в контексте выполнения WordPress, например, в файле functions.php или в пользовательском плагине для WordPress.