admin管理员组文章数量:1430720
Trying to find a way to exclude out of stock items from listing, but only after some time (let's say, if they're older than one month).
I know I can exclude all of them easily, or change the order using something like this, but I'm looking for a something in-between... I guess using a pre_get_posts
hook, but not sure about the specific query.
Any tips?
Trying to find a way to exclude out of stock items from listing, but only after some time (let's say, if they're older than one month).
I know I can exclude all of them easily, or change the order using something like this, but I'm looking for a something in-between... I guess using a pre_get_posts
hook, but not sure about the specific query.
Any tips?
Share Improve this question edited Apr 23, 2019 at 23:01 Nicolai Grossherr 18.9k8 gold badges64 silver badges109 bronze badges asked Apr 22, 2019 at 15:39 Yoav AnerYoav Aner 3133 silver badges10 bronze badges1 Answer
Reset to default 2Most information necessary can be found at the Code Reference: WP_Query
| Class . Otherwise useful resource Theme Handbook: Conditional Tags. Below code contains some clarifying comments. Please note, this is untested code, so no guarantees, but it should get you going.
add_action( 'woocommerce_product_query', 'custom_woocommerce_product_query' );
function custom_woocommerce_product_query( $q ) {
if ( ! is_admin() ) {
//query for the out of stock items we want to exclude
$oos_query = new WP_Query( [
// items must be older than 1 month
'date_query' => [ [
'column' => 'post_date',
'before' => '1 month ago'
], ],
//only out of stock items...
'meta_query' => [ [
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => '=',
], ],
//we want products, nothing else
'post_type' => 'product',
//we want them all
'posts_per_page' => -1,
//the ids are enough, no need to get more data
'fields' => 'ids',
] );
//getting array of ids from object
$exclude_ids = $oos_query->posts;
//excluding the above queried products from woocommerce's product query
$q->set( 'post__not_in', $exclude_ids );
}
}
本文标签: wp queryWoocommerceexclude only older outofstock items
版权声明:本文标题:wp query - Woocommerce - exclude only older out-of-stock items 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745561592a2663502.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论