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

时间:2015-09-15 11:16:40

标签: woocommerce

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

  • 通过脚本从外部XML url文件导入的产品。
  • 通过woo管理界面照常添加产品。

我们添加了一个元字段来识别这些导入的产品。

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

1 个答案:

答案 0 :(得分:0)

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

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

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

function 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' );