在 WooCommerce 中隐藏一组产品的价格

Hiding prices in WooCommerce for a set of products

在我们的 Woocommerce 产品中,我们有两种类型的产品。

我们添加了一个元字段来识别这些进口产品。

仅隐藏这些进口产品价格的最佳方法是什么? 我尝试删除一些 woocommerce 操作,但它会影响所有 woo 产品。

I have tried by removing some woocommerce actions, but its affects all woo products.

然后你需要条件逻辑。这应该摆脱循环中的价格显示。

编辑 正如评论中所指出的,一旦您删除该操作,所有后续产品都会永久删除该操作。因此,鉴于此,我添加了一个 else 语句来解决此问题。

函数so_32584641_remove_price_from_loop(){ 全球 $product;

if( 'mycbgenie' == get_post_meta( $product->id, '_mycbgenie_managed_by', true ) ){
    remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price' );
} else {
    add_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price' );
}

} add_action( 'woocommerce_before_shop_loop_item', 'so_32584641_remove_price_from_loop' );

这应该将其从单个产品页面中删除:

function so_32584641_remove_price_from_single(){
    global $product;
    $your_meta = get_post_meta( $product->id, '_your_meta_key', true );
    if( 'mycbgenie' == $your_meta ){
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price' );
    }
}
add_action( 'woocommerce_before_single_product', 'so_32584641_remove_price_from_single' );