在woocommerce中,我想在单个产品页面中隐藏相关产品的缺货产品。可能吗?
任何曲目都表示赞赏。
请尝试以下方法:
add_filter( 'woocommerce_product_related_posts_query', 'alter_product_related_posts_query', 10, 3 );
function alter_product_related_posts_query( $query, $product_id, $args ){
global $wpdb;
$query['join'] .= " INNER JOIN {$wpdb->postmeta} as pm ON p.ID = pm.post_id ";
$query['where'] .= " AND pm.meta_key = '_stock_status' AND meta_value = 'instock' ";
return $query;
}
代码位于活动子主题(或活动主题)的function.php文件中。我希望它有效。
创建一个函数并将其挂钩到woocommerce的相关产品钩子,如:
function dont_show_outofstock( $is_visible, $id ) {
$product = new wC_Product( $id );
if ( ! $product->is_in_stock() && ! $product->backorders_allowed() ) {
$is_visible = false;
}
return $is_visible;
}
add_filter( 'woocommerce_output_related_products_args', 'dont_show_outofstock', 10, 2 );
是的,可以隐藏相关产品的缺货产品。
将以下内容添加到functions.php中 - 这将隐藏相关产品的缺货产品。
add_filter( 'woocommerce_output_related_products_args', function( $args )
{
$args = wp_parse_args( array(
'posts_per_page' => 4,
'meta_query' => array (
'key' => '_stock_status',
'value' => 'instock'
)
), $args );
return $args;
});
每页的帖子行可以删除,但它可以快速显示这对您的相关产品块有效。