【发布时间】: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 进行加售的结果。可能是因为将追加销售作为变体而不是可变产品使用并不常见。..
【问题讨论】:
标签: php wordpress woocommerce product woocommerce-theming