在WooCommerce产品变体上显示价格范围

时间:2012-10-21 作者:Btuman

我在一家使用Woocommerce的在线商店工作,许多产品在大小和价格上都有差异。有没有办法在产品页面上显示不同产品的价格范围(从高到低)?

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

可以这样尝试:

/**
* This code should be added to functions.php of your theme
**/
add_filter(\'woocommerce_variable_price_html\', \'custom_variation_price\', 10, 2);

function custom_variation_price( $price, $product ) {
$price = \'\';

if ( !$product->min_variation_price || $product->min_variation_price !== $product->max_variation_price ) $price .= \'<span class="from">\' . _x(\'From\', \'min_price\', \'woocommerce\') . \' </span>\';
$price .= woocommerce_price($product->get_price());
if ( $product->max_variation_price && $product->max_variation_price !== $product->min_variation_price ) {
$price .= \'<span class="to"> \' . _x(\'to\', \'max_price\', \'woocommerce\') . \' </span>\';

$price .= woocommerce_price($product->max_variation_price);
}

return $price;
}
资料来源:https://gist.github.com/mikejolley/1600117

SO网友:DaNnY BoY

偶然发现这条线索,为分组产品寻找相同的解决方案。最终以下面的代码结束。。。因此,如果它对其他人有帮助,我会发布它。这不适用于可变产品,只适用于分组产品。我认为这是相关的,因为分组/可变产品非常相似,我认为其他人也可能会偶然发现这条线索。你可能会清理一些跨度,但这是快速和肮脏的版本,让我去!

/*** Returns Price Range for Grouped Products**/
function wc_grouped_price_html( $price, $product ) {
$all_prices = array();

foreach ( $product->get_children() as $child_id ) {
    $all_prices[] = get_post_meta( $child_id, \'_price\', true );
}

if ( ! empty( $all_prices ) ) {
    $max_price = max( $all_prices );
    $min_price = min( $all_prices );
} else {
    $max_price = \'\';
    $min_price = \'\';
}

$price = \'<span class="from">\' . _x(\'From: \', \'min_price\', \'woocommerce\') . woocommerce_price( $min_price ) .  _x(\' to \', \'max_price\', \'woocommerce\') . \' </span>\' . woocommerce_price( $max_price );

return $price;
}
add_filter( \'woocommerce_grouped_price_html\', \'wc_grouped_price_html\', 10, 2 );

结束