如何在WooCommerce中默认显示可变价格?

时间:2013-10-10 作者:user39262

我想在单个产品页面的“从价格选项卡”中默认显示可变价格。而且没有从价格。

对于购物者来说,看到一个“起始”价格,然后在它下面看到每个变体的价格,这会让他们感到困惑,一旦选择了变体,价格就会发生变化。

see attached image

因此,我不需要设置价格字段集,只想显示一个单一或可变产品。

enter image description here

2 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

功能woocommerce_template_single_price() 处理“正常”价格的显示是可插入的,这意味着将其放入functions.php:

//override woocommerce function
function woocommerce_template_single_price() {
    global $product;
    if ( ! $product->is_type(\'variable\') ) { 
        woocommerce_get_template( \'single-product/price.php\' );
    }
}
这是因为woocommerce-template.php 函数的启动方式如下:

if ( ! function_exists( \'woocommerce_template_single_price\' ) ) {
    function woocommerce_template_single_price() {
        woocommerce_get_template( \'single-product/price.php\' );
    }
}
正如您所看到的,如果函数不存在,但函数已经存在,则条件会显示。我们放在functions.php 将使用,因为它是较早启动的。

要在加载带有可变产品的单个产品页面时显示变动价格,必须在产品编辑页面上选择默认产品变动。

SO网友:cemo

我用的是“波尔图”主题,也有这个问题。您可以将此代码放入functions.php 从您的孩子主题:

// Cheapest Price

add_filter( \'woocommerce_variable_sale_price_html\', \'wc_wc20_variation_price_format\', 10, 2 );
add_filter( \'woocommerce_variable_price_html\', \'wc_wc20_variation_price_format\', 10, 2 );

function wc_wc20_variation_price_format( $price, $product ) {
    // Main Price
    $prices = array( $product->get_variation_price( \'min\', true ), $product->get_variation_price( \'max\', true ) );
    $price = $prices[0] !== $prices[1] ? sprintf( __( \'%1$s\', \'woocommerce\' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

    // Sale Price
    $prices = array( $product->get_variation_regular_price( \'min\', true ), $product->get_variation_regular_price( \'max\', true ) );
    sort( $prices );
    $saleprice = $prices[0] !== $prices[1] ? sprintf( __( \'%1$s\', \'woocommerce\' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

    if ( $price !== $saleprice ) {
        $price = \'<del>\' . $saleprice . \'</del> <ins>\' . $price . \'</ins>\';
    }

    return $price;
}
比你的价格看起来像一个单一的价格,它是你的可变产品中最便宜的价格。它起作用了。我已经用过了。

结束