Woocommerce post_clauses. Отправить товары в черновик

if($posts_clauses['join']!=' LEFT JOIN wp_wc_product_meta_lookup wc_product_meta_lookup ON wp_posts.ID = wc_product_meta_lookup.product_id '){
    $posts_clauses['join'] = $posts_clauses['join'] . " LEFT JOIN wp_wc_product_meta_lookup wc_product_meta_lookup ON wp_posts.ID = wc_product_meta_lookup.product_id ";   
}       
$posts_clauses['orderby'] = "wc_product_meta_lookup.min_price > 50 DESC, " . $posts_clauses['orderby'];

Данный код сортирует товары по цене и выводит в конце те, у которых цена ниже 50. Но как их вообще скрыть со статусом Черновик? Чтобы в будущем их можно было вернуть, изменив статус.


Ответы (2 шт):

Автор решения: Valerii Vasiliev

можно добавить дополнительный AND в $posts_clauses['where']


global $wpdb;

$posts_clauses['where'] .= " AND ".$wpdb->prefix."posts.post_status <> 'draft' ";

→ Ссылка
Автор решения: Рома Хр
 UPDATE
    wp_postmeta
LEFT JOIN wp_posts ON wp_posts.id = wp_postmeta.post_id
SET
    post_status = 'draft'
WHERE
    wp_posts.post_type = 'product' AND wp_postmeta.meta_key = '_regular_price' AND wp_postmeta.meta_value < 50

Данный запрос написал в phpMyAdmin и проблема решилась

→ Ссылка