Php 当价格为0时,将“添加到购物车”按钮更改为“请求报价”

Php 当价格为0时,将“添加到购物车”按钮更改为“请求报价”,php,wordpress,woocommerce,product,price,Php,Wordpress,Woocommerce,Product,Price,我有一个产品X在几个尺寸作为主要产品X的变化产品添加。对于小尺寸的价格是可用的,客户可以在线购物。但是,对于大尺寸的产品X,它不能在网上购买。因此,对于该产品X的一些变体,我希望删除“添加到购物车”按钮,并将其更改为转到“请求报价”页面的按钮 我的想法是,如果我将可变产品价格设置为0,则“添加到购物车”按钮将消失,并显示“请求报价”按钮 关于如何在php中实现这一点,您有什么想法吗?您只需要使用if函数设置一些条件 将此函数放在function.php中 add_filter('woocomme

我有一个产品X在几个尺寸作为主要产品X的变化产品添加。对于小尺寸的价格是可用的,客户可以在线购物。但是,对于大尺寸的产品X,它不能在网上购买。因此,对于该产品X的一些变体,我希望删除“添加到购物车”按钮,并将其更改为转到“请求报价”页面的按钮

我的想法是,如果我将可变产品价格设置为0,则“添加到购物车”按钮将消失,并显示“请求报价”按钮


关于如何在php中实现这一点,您有什么想法吗?

您只需要使用if函数设置一些条件


将此函数放在function.php中

add_filter('woocommerce_get_price_html', 'requestQuote', 10, 2);

function requestQuote($price, $product) {
        if ( $price == wc_price( 0.00 ) ){

                 remove_action( 'woocommerce_single_product_summary', 
      'woocommerce_template_single_add_to_cart', 30 );
                 return 'Request Quote';
        }


        else{
            return $price;}
    }

谢谢这几乎解决了它!但是,它不会删除“添加到购物车”按钮。因此,现在客户可以免费订购产品。有什么建议吗?@trika只需编辑我的回答嗯,不幸的是,添加到购物车按钮并没有消失。看来你的主题或插件正在使用这个钩子尝试增加优先级30我会检查它
add_filter('woocommerce_get_price_html', 'requestQuote', 10, 2);

function requestQuote($price, $product) {
        if ( $price == wc_price( 0.00 ) ){

                 remove_action( 'woocommerce_single_product_summary', 
      'woocommerce_template_single_add_to_cart', 30 );
                 return 'Request Quote';
        }


        else{
            return $price;}
    }