Есть много вопросов и ответов, касающихся изготовления только товаров для продажи в продаже, но независимо от того, что я пытаюсь, это не работает.WooCommerce: Показать в продаже продукты в магазине
У меня есть следующий запрос
function my_modify_main_query($query) {
if ($query -> query['post_type'] == 'product' && $query -> is_main_query() && is_shop()) {// Run only on the shop
if (isset($_GET['sale'])):
$query -> set('meta_query',
array(
'relation' => 'OR',
array(// Simple products type
'key' => '_sale_price',
'value' => 0,
'compare' => '>',
'type' => 'numeric'
),
array(// Variable products type
'key' => '_min_variation_sale_price',
'value' => 0,
'compare' => '>',
'type' => 'numeric'
)
)
);
endif;
}
}
// Hook my above function to the pre_get_posts action
add_action('pre_get_posts', 'my_modify_main_query');
Сам запрос применяется, НО проблема. Если Продукт является переменной с продажной ценой, Продукт затем изменяется на простой продукт, мета-значение «_min_variation_sale_price» все еще находится в базе данных.
Кто-нибудь знает об обходном пути для этого? Я считаю, что это ошибка, но их поддержка в настоящее время закрыта.
Спасибо.
EDIT
То, что я думаю, что мне нужно, это способ проверить только _sale_price, если продукт находится в «простых» или «внешних» терминах, то сделать то же для _min_variation_sale_price.
Я создал проблему на их github. https://github.com/woothemes/woocommerce/issues/10096
EDIT
Выпуск фиксируется с помощью @helgatheviking ответ. Хотя, обратите внимание, что для полного устранения проблемы вы должны удалить изменения, сохранить, изменить тип, сохранить, запустить delete_transient('wc_products_onsale');
Только тогда это сработало для меня.
К сожалению, я пытался это уже. – Damian
В следующий раз, пожалуйста, укажите все, что вы * попробовали, чтобы было меньше дублирования усилий. Вы подразумеваете, что 'wc_get_product_ids_on_sale()' не извлекает переменные продукты, которые продаются? – helgatheviking
Когда вы сохраняете продукт как переменную с продажей, затем меняйте его на простой без продажи, он возвращается в этом массиве. – Damian