在Woocommerce中显示正常价格或可变价格范围

问题描述 投票:1回答:1

我有一个产品清单,我在显示可变产品的价格范围方面存在问题。

如你所知,价格是否正常,一切正常。然而,如果产品具有可变价格,则显示的价格为0€

那么,显示价格的代码是这样的:

<?php
if (isset($ebookstore_theme_option['woo-list-price']) && 
    $ebookstore_theme_option['woo-list-price'] == 'enable') {
    $ebookstore_woo .= '<strong class="amount">'.esc_attr($currency).''.$price_sale.'</strong>';
}

有关如何显示可变范围价格的任何想法?

php wordpress woocommerce product price
1个回答
3
投票

对于WooCommerce中的可变产品,您需要:

  • 目标变量产品类型
  • 获得最低和最高价格。

所以你应该需要获得产品对象的实例。一般来说,你可以得到它:

 global $product;

如果它不起作用,您将使用:

global $post;
$product = wc_get_product( $post->ID );

现在从这一点开始,您将使用以下内容:

<?php
global $product;

if ( isset( $ebookstore_theme_option['woo-list-price'] ) && $ebookstore_theme_option['woo-list-price'] == 'enable' ){

    // For all product types that are not "variable products"
    if( ! $product->is_type('variable') ){
        $ebookstore_woo .= '<strong class="amount">'.esc_attr($currency).''.$price_sale.'</strong>';
    }
    // For variable products    
    else {
        $min_price = $product->get_variation_price( 'min' );
        $max_price = $product->get_variation_price( 'max' );

        $ebookstore_woo .= '<strong class="amount">'.esc_attr($currency).''.$min_price.' - '.esc_attr($currency).''.$max_price.'</strong>';
    }
}

如你所见,我正在使用WC_Product_Variable methods


可能你不知道,但是woocommerce有几个格式化价格函数:

  • wc_price( $price );
  • wc_format_price_range( $from, $to );
  • wc_format_sale_price( $regular_price, $sale_price );

他们都将包括货币

© www.soinside.com 2019 - 2024. All rights reserved.