在 WooCommerce 单个产品页面上隐藏“缺货”相关产品

时间:2021-02-26 09:40:39

标签: php wordpress woocommerce product

我需要一点帮助,拜托了。 我想从单个产品页面隐藏不再有库存的产品,只在相关产品区域。 我创建了它并且一切正常,但是我无法将它隐藏在相关区域中,我所做的任何更改都不起作用。 现有代码在我的情况下不起作用。 谢谢。

我用这些来创建“缺货”徽章:

//Add an out of stock overlay to product images when all variations are unavailable
add_action( 'woocommerce_before_shop_loop_item_title', function() {
    global $product;
    if ( !$product->is_in_stock() ) {
        echo '<span class="sold-out-overlay">Stoc epuizat</span>';
    }
});

/*Sold out badge automat in*/
.sold-out-overlay {
    background: #000000;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    padding: 5px 10px;
    position: absolute ;
    right: 5px;
    top: 20px;
    z-index: 1;
}

1 个答案:

答案 0 :(得分:1)

不需要使用 CSS,您可以使用 woocommerce_related_products 过滤器钩子代替。

function filter_woocommerce_related_products( $related_posts, $product_id, $args ) {    
    foreach( $related_posts as $key => $related_post ) {        
        // Get product
        $related_product = wc_get_product( $related_post );
        
        // Is a WC product 
        if ( is_a( $related_product, 'WC_Product' ) ) {
            // Stock status
            $stock_status = $related_product->get_stock_status();
            
            // Out of stock
            if ( $stock_status == 'outofstock' ) {
                unset( $related_posts[$key] );
            }
        }
    }
    
    return $related_posts;
}
add_filter( 'woocommerce_related_products', 'filter_woocommerce_related_products', 10, 3 );

相关:Show only “in stock” related products on WooCommerce single product page