价格为零时隐藏WooCommerce“添加到购物车”按钮

时间:2015-01-05 14:02:49

标签: woocommerce

我需要在价格= 0.00的情况下隐藏我的添加到购物车按钮。如果价格大于0.00,我希望按钮重新出现。

然而,我也使用WooTheme愿望清单扩展,我需要保留添加到愿望清单按钮。我还想将文本从Free更改为" Subscription Product"当值为0.00时。

这仅在单个产品页面上需要,因为我们没有在其他地方显示添加到购物车。

目前,如果价格设置为0.00,我会在单个产品页面顶部显示文字" free"并且添加到购物车按钮保持不变,添加到愿望清单按钮。如果我一起删除价格按钮也会消失,因此为什么我需要"隐藏"保留愿望清单的按钮。

我已经尝试将以下代码插入到我的functions.php文件中

<?php
 /*
    * Swop the 'Free!' price notice and hide the cart with 'POA' in WooCommerce
 */
    add_filter( 'woocommerce_variable_free_price_html',  'hide_free_price_notice' );
    add_filter( 'woocommerce_free_price_html',           'hide_free_price_notice' );
    add_filter( 'woocommerce_variation_free_price_html', 'hide_free_price_notice' );

function hide_free_price_notice( $price ) {
    remove_action ( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    return 'POA';
}
?>

然而,虽然它确实有效,但它改变了&#34; Free&#34;文字到&#34; POA&#34;并隐藏了“添加到购物车”按钮&#34; &#34;加入愿望清单&#34;按钮也消失了。

如果我将值更改为0.01,那么一切都会再次出现,所以它几乎就在那里......我只需要留下愿望清单按钮。

任何帮助或指示将不胜感激。非常感谢...

仅供参考,我需要这样做的原因是因为我们运行订阅服务,因此订阅服务中包含的产品不需要价格但需要显示以便可以添加到愿望中名单。然而,有时我们会销售产品,所以当它们有价值时,我需要重新出现按钮,以便将它们添加到购物车中。  简单地归零并不起作用,因为不管人们是否认为他们是免费的,并尝试将它们添加到购物车中购买!

1 个答案:

答案 0 :(得分:0)

请在您的有效主题functions.php中添加以下代码并进行检查。

function wpcustom_is_purchasable( $purchasable, $product ){
    if( $product->get_price() == 0 )
        $purchasable = false;
    return $purchasable;
}
add_filter( 'woocommerce_is_purchasable', 'wpcustom_is_purchasable', 10, 2 );