Замените Upsells продуктами из определенной категории продуктов в Woocommerce 3 - PullRequest
0 голосов
/ 27 октября 2018

У меня следующий случай - до сих пор я всегда настраивал пользовательские продукты Upsell, 1 на 1, так как выбор категории продуктов в админке невозможен.

Теперь после большой очистки продуктовкоторые больше не доступны, на сайте есть много страниц с 1, 2 или 3 вместо числа по умолчанию 4 продуктов Upsell, что нарушает дизайн.

Есть ли способ заменить эти продажи напродукты из определенной категории продуктов?

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 27 октября 2018

Чтобы заменить продажи в woocommerce продуктами из определенной категории продуктов, используйте следующий код (где вы определите слаг (ы) категории продуктов) :

add_filter( 'woocommerce_product_get_upsell_ids', 'custom_upsell_ids', 20, 2 );
function custom_upsell_ids( $upsell_ids, $product ){
    // HERE define your product categories slugs in the array
    $product_categories = array( 't-shirts' ); // <=====  <=====  <=====  <=====  <=====

    // Return the custom query
    return wc_get_products( array(
        'status'    => 'publish', // published products
        'limit'     => 4, // 4 products
        'category'  => $product_categories, // Product categories
        'orderby'   => 'rand', // Random order
        'exclude'   => array( $product->get_id() ), // Exclude current product
        'return'    => 'ids', // Query returns only IDs
    ) );
}

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

Запрос настроен на отображение 4 продуктов из определенной категории продуктов в случайном порядке (исключая текущий продукт).

Официальнодокументация: wc_get_products() и WC_Product_Query

...