Я хочу показать out-of-stock
товары определенных категорий на сайте.
В настоящее время я установил флажок Hide out of stock items from the catalog
в настройке woocommerce.
Это работает нормально, но я хочу исключить одну категорию из этой, чтобы товары этой категории были видны на странице категории / поиска, даже если товар отсутствует на складе.
Iпопытался найти решение, прочитав код, и обнаружил, что одна функция wc_get_product_visibility_term_ids
вычисляет идентификаторы продуктов, которые должны быть скрыты (outofstock), но я не нашел никакого фильтра для этой функции.
Я применилэти два фильтра.
add_filter( 'woocommerce_product_is_in_stock', 'cs_show_out_of_stock_from_cat');
function cs_show_out_of_stock_from_cat( $isInStock ){
global $product;
if(in_array(40, $product->get_category_ids())){
return true;
}else{
return $isInStock;
}
}
add_filter('woocommerce_product_is_visible', 'cs_visible_out_of_stock_from_specific_product');
function cs_visible_out_of_stock_from_specific_product($visible){
global $product;
if(in_array(40, $product->get_category_ids())){
return true;
}else{
return $visible;
}
}
Но первый фильтр показывает наличие на складе товаров, отсутствующих на складе, с идентификатором категории 40
на странице одного продукта, но не отображает эти продукты на странице категории.