Woocommerce 如果产品有加售在产品列表中显示徽章

Posted

技术标签:

【中文标题】Woocommerce 如果产品有加售在产品列表中显示徽章【英文标题】:Woocommerce if product has upsells show badge in product listing 【发布时间】:2022-01-02 07:29:37 【问题描述】:

我正在尝试在 Woocommerce 网站的产品列表中显示动态产品徽章。产品徽章应仅在产品分配有追加销售时显示。

我只是在单个产品页面上使用content-single-product.php 文件中的代码进行了此操作,结果很好:

<?php if ( isset( $product ) && is_product() ) 
    $upsells = version_compare( WC_VERSION, '3.0', '<' ) ? $product->get_upsells() : $product->get_upsell_ids();
    if ( count( $upsells ) > 0 )  ?>
        <span class="more_variants">Finns i fler varianter</span>
<?php   ?>

但是,由于没有为列表中的单个产品收集加售的产品数据,我尝试了另一种方法,将此代码实现到 functions.php

add_action( 'woocommerce_before_shop_loop_item', 'related_upsell_products', 15 );

function related_upsell_products() 
    global $product;

    if ( isset( $product ) && is_product() ) 
        $upsells = version_compare( WC_VERSION, '3.0', '<' ) ? $product->get_upsells() : $product->get_upsell_ids();

        if ( count( $upsells ) > 0 ) 
            echo '<span class="more_variants">Finns i fler varianter</span>';
        
    

functions.php 中的代码没有给我错误,也没有给我我想要的结果。它什么也不返回。我诚实的想法是,global $product; 会给我额外的产品数据,以便我获取信息,如果该产品有分配给它的追加销售产品。

非常欢迎任何想法!我搜索了论坛,并没有得到太多关于以这种方式与 Woocommerce 进行加售的结果。可能是因为将追加销售作为变体而不是可变产品使用并不常见。..

【问题讨论】:

【参考方案1】:

当您说“列表中的产品”时,我会假设您在 shop 页面上。。如果是这样,那么您需要:

将条件检查更改为is_shop()。 在您查看商店页面后,也请致电您的global $product

所以你的整个代码应该是这样的:

add_action('woocommerce_before_shop_loop_item', 'related_upsell_products', 15);

function related_upsell_products()

    if (is_shop()) 
        global $product;

        $upsells = version_compare(WC_VERSION, '3.0', '<') ? $product->get_upsells() : $product->get_upsell_ids();

        if (count($upsells) > 0) 
            echo '<span class="more_variants">Finns i fler varianter</span>';
        
    

结果如下:

【讨论】:

我猜有时答案就在你面前。非常感谢您的帮助!真的很感激。 哈哈!这是绝对正确的。不客气!

以上是关于Woocommerce 如果产品有加售在产品列表中显示徽章的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress 插件 - WooCommerce - 隐藏产品如果

如果 WooCommerce 结帐中存在某些产品类别,请删除其他产品

如果数量超过产品库存,Woocommerce 如何添加消息

Woocommerce:woocommerce 查询库存数量简单和可变产品

Woocommerce产品简短描述中同一类别的产品下拉列表

如果产品描述为空,WooCommerce 如何隐藏“描述”选项卡