所以我几乎可以肯定的是,我让它工作得很好,然后不知从哪里出来,它似乎没有工作。我到处修补,让它把一切都隐藏起来,然后什么也不隐藏。想知道是否有人发现我做错了什么?
下面的代码基本上可以扫描我的所有产品-simple & variable - 看看是否有IN STOCK 产品有sale 它们的价格。如果没有IN STOCK 具有的产品sale 价格,隐藏某个CSS ID。否则,什么也不做。不知道我错过了什么。。。
// -----------------------------------------
// HIDE WEEKLY SPECIALS IF THERE ARE NO PRODUCTS
function weeklyspecials() {
$args = array(
\'post_type\' => \'product\',
\'posts_per_page\' => 4,
\'meta_query\' => array(
\'relation\' => \'AND\',
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\'
)
),
array( // Stock status
\'key\' => \'_stock_status\',
\'value\' => \'instock\'
)
)
);
$loop = new WP_Query( $args );
if ( ! $loop->have_posts() ) {
echo \'<style>#weeklyspecials {display:none;}</style>\';
}
}
add_action ( \'wp_body_open\', \'weeklyspecials\' );
Results of my VAR_DUMP()
object(WP_Query)[18711]
public \'query\' =>
array (size=3)
\'post_type\' => string \'product\' (length=7)
\'posts_per_page\' => int 4
\'meta_query\' =>
array (size=3)
\'relation\' => string \'AND\' (length=3)
0 =>
array (size=3)
...
1 =>
array (size=2)
...
public \'query_vars\' =>
array (size=65)
\'post_type\' => string \'product\' (length=7)
\'posts_per_page\' => int 4
\'meta_query\' =>
array (size=3)
\'relation\' => string \'AND\' (length=3)
0 =>
array (size=3)
...
1 =>
array (size=2)
...
\'error\' => string \'\' (length=0)
\'m\' => string \'\' (length=0)
\'p\' => int 0
\'post_parent\' => string \'\' (length=0)
\'subpost\' => string \'\' (length=0)
\'subpost_id\' => string \'\' (length=0)
\'attachment\' => string \'\' (length=0)
\'attachment_id\' => int 0
\'name\' => string \'\' (length=0)
\'pagename\' => string \'\' (length=0)
\'page_id\' => int 0
\'second\' => string \'\' (length=0)
\'minute\' => string \'\' (length=0)
\'hour\' => string \'\' (length=0)
\'day\' => int 0
\'monthnum\' => int 0
\'year\' => int 0
\'w\' => int 0
\'category_name\' => string \'\' (length=0)
\'tag\' => string \'\' (length=0)
\'cat\' => string \'\' (length=0)
\'tag_id\' => string \'\' (length=0)
\'author\' => string \'\' (length=0)
\'author_name\' => string \'\' (length=0)
\'feed\' => string \'\' (length=0)
\'tb\' => string \'\' (length=0)
\'paged\' => int 0
\'meta_key\' => string \'\' (length=0)
\'meta_value\' => string \'\' (length=0)
\'preview\' => string \'\' (length=0)
\'s\' => string \'\' (length=0)
\'sentence\' => string \'\' (length=0)
\'title\' => string \'\' (length=0)
\'fields\' => string \'\' (length=0)
\'menu_order\' => string \'\' (length=0)
\'embed\' => string \'\' (length=0)
\'category__in\' =>
array (size=0)
empty
\'category__not_in\' =>
array (size=0)
empty
\'category__and\' =>
array (size=0)
empty
\'post__in\' =>
array (size=0)
empty
\'post__not_in\' =>
array (size=0)
empty
\'post_name__in\' =>
array (size=0)
empty
\'tag__in\' =>
array (size=0)
empty
\'tag__not_in\' =>
array (size=0)
empty
\'tag__and\' =>
array (size=0)
empty
\'tag_slug__in\' =>
array (size=0)
empty
\'tag_slug__and\' =>
array (size=0)
empty
\'post_parent__in\' =>
array (size=0)
empty
\'post_parent__not_in\' =>
array (size=0)
empty
\'author__in\' =>
array (size=0)
empty
\'author__not_in\' =>
array (size=0)
empty
\'facetwp\' => boolean true
\'ignore_sticky_posts\' => boolean false
\'suppress_filters\' => boolean false
\'cache_results\' => boolean true
\'update_post_term_cache\' => boolean true
\'lazy_load_term_meta\' => boolean true
\'update_post_meta_cache\' => boolean true
\'nopaging\' => boolean false
\'comments_per_page\' => string \'50\' (length=2)
\'no_found_rows\' => boolean false
\'order\' => string \'DESC\' (length=4)
public \'tax_query\' =>
object(WP_Tax_Query)[18708]
public \'queries\' =>
array (size=0)
empty
public \'relation\' => string \'AND\' (length=3)
protected \'table_aliases\' =>
array (size=0)
empty
public \'queried_terms\' =>
array (size=0)
empty
public \'primary_table\' => string \'wp_posts\' (length=8)
public \'primary_id_column\' => string \'ID\' (length=2)
public \'meta_query\' =>
object(WP_Meta_Query)[18709]
public \'queries\' =>
array (size=3)
0 =>
array (size=3)
...
1 =>
array (size=2)
...
\'relation\' => string \'AND\' (length=3)
public \'relation\' => string \'AND\' (length=3)
public \'meta_table\' => string \'wp_postmeta\' (length=11)
public \'meta_id_column\' => string \'post_id\' (length=7)
public \'primary_table\' => string \'wp_posts\' (length=8)
public \'primary_id_column\' => string \'ID\' (length=2)
protected \'table_aliases\' =>
array (size=2)
0 => string \'wp_postmeta\' (length=11)
1 => string \'mt1\' (length=3)
protected \'clauses\' =>
array (size=3)
\'wp_postmeta\' =>
array (size=7)
...
\'wp_postmeta-1\' =>
array (size=7)
...
\'mt1\' =>
array (size=6)
...
protected \'has_or_relation\' => boolean true
public \'date_query\' => boolean false
public \'request\' => string \'SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) INNER JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) WHERE 1=1 AND (
(
( wp_postmeta.meta_key = \'_sale_price\' AND CAST(wp_postmeta.meta_value AS SIGNED) > \'0\' )
OR
( wp_postmeta.meta_key = \'_min_variation_sale_price\' AND CAST(wp_postmeta.meta_value AS SIGNED) > \'0\' )
)
AND
( mt1.meta_key = \'_stock_status\' AND mt1.meta_value = \'instock\' )
) AND wp_posts.\'... (length=735)
public \'posts\' =>
array (size=0)
empty
public \'post_count\' => int 0
public \'current_post\' => int -1
public \'in_the_loop\' => boolean false
public \'comment_count\' => int 0
public \'current_comment\' => int -1
public \'found_posts\' => int 0
public \'max_num_pages\' => int 0
public \'max_num_comment_pages\' => int 0
public \'is_single\' => boolean false
public \'is_preview\' => boolean false
public \'is_page\' => boolean false
public \'is_archive\' => boolean true
public \'is_date\' => boolean false
public \'is_year\' => boolean false
public \'is_month\' => boolean false
public \'is_day\' => boolean false
public \'is_time\' => boolean false
public \'is_author\' => boolean false
public \'is_category\' => boolean false
public \'is_tag\' => boolean false
public \'is_tax\' => boolean false
public \'is_search\' => boolean false
public \'is_feed\' => boolean false
public \'is_comment_feed\' => boolean false
public \'is_trackback\' => boolean false
public \'is_home\' => boolean false
public \'is_privacy_policy\' => boolean false
public \'is_404\' => boolean false
public \'is_embed\' => boolean false
public \'is_paged\' => boolean false
public \'is_admin\' => boolean false
public \'is_attachment\' => boolean false
public \'is_singular\' => boolean false
public \'is_robots\' => boolean false
public \'is_favicon\' => boolean false
public \'is_posts_page\' => boolean false
public \'is_post_type_archive\' => boolean true
private \'query_vars_hash\' => string \'1f83b003e69dc81d9f9a9bf0531defa3\' (length=32)
private \'query_vars_changed\' => boolean true
public \'thumbnails_cached\' => boolean false
private \'stopwords\' => null
private \'compat_fields\' =>
array (size=2)
0 => string \'query_vars_hash\' (length=15)
1 => string \'query_vars_changed\' (length=18)
private \'compat_methods\' =>
array (size=2)
0 => string \'init_query_flags\' (length=16)
1 => string \'parse_tax_query\' (length=15)
最合适的回答,由SO网友:cybmeta 整理而成
产品变体存储为不同的岗位类型,product_variation
, 因此,您必须将该帖子类型添加到查询中:
\'post_type\' => array( \'product\', \'product_variation\' )
此外,您可以尝试使用WooCommerce的特定功能,如
wc_get_product_ids_on_sale()
,
wc_get_products()
等等,在为WooCommerce编码时,它们可以让您的生活更轻松。