我想在檔案頁上隱藏缺貨的產品。 但是含有 "退貨 "標簽的產品應該被跳過。 我嘗試了很多方法,但問題是我無法結合meta_query和tax_query來實作這個目標。
誰有關于如何做這個的建議?
這是我目前的情況。
這是我目前的狀態:
這是我目前的狀態。
add_filter( 'woocommerce_product_query_meta_query', 'shop_only_instock_products', 10, 2 )。)
function shop_only_instock_products( $meta_query, $query ) {
if( is_admin() || is_search() || ! is_shop() ) return $meta_query;
$meta_query[] = array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => '!='.
);
print_r($meta_query)。
}
add_filter( 'woocommerce_product_query_tax_query', 'filter_products_with_specific_product_tags', 9, 2 ) 。
function filter_products_with_specific_product_tags( $tax_query, $query ) {
if( is_admin() || is_search() || ! is_shop() ) return $tax_query;
$tax_query[] = array(
'taxonomy' => 'product_tag',
'field' => 'name'。
'term' => array('backorder') 。
);
return $tax_query;
};
uj5u.com熱心網友回復:
你可以試試woocommerce_product_query掛鉤。我還沒有測驗過這個代碼。
add_action( 'woocommerce_product_query', 'action_product_query', 10, 2 )。)
function action_product_query( $q, $query ) {
// 忽略這個條件,先測驗后面的代碼。
// if( is_admin() || is_search() || ! is_shop() ) return;.
//獲得任何現有的稅收查詢。
$tax_query = $q->get( 'tax_query'/span>) 。
//獲取任何現有的元查詢。
$meta_query = $q->get( 'meta_query') 。
//定義一個額外的稅收查詢。
$tax_query = array(
'taxonomy' => 'product_tag',
'field' => 'name', // backorder looks like slug.
'term' => array('backorder')。
'compare' => 'IN',
);
//定義一個額外的元查詢。
$meta_query = array(
'key' => '_stock_status',
'value' => 'outofstock',
'compare' => '!='。
);
//設定新的合并后的稅務查詢。
$q->set( 'tax_query', $tax_query ) 。
//設定新合并的元查詢。
$q->set( 'meta_query', $meta_query ) 。
}
uj5u.com熱心網友回復:
你應該在你的產品反目錄中使用缺貨設定。在你的Woocommerce > Settings > Product > Inventory中設定缺貨可見性為true。你不需要任何額外的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/324419.html
標籤:
下一篇:我怎樣才能提取一個int?
