Отображение диапазона цен для вариаций товаров в WooCommerce
21 окт. 2012 г., 23:26:55
Просмотры: 14.7K
Голосов: 1
Я работаю над интернет-магазином на WooCommerce, у многих товаров есть вариации по размеру и цене. Есть ли способ выводить диапазон цен (от самой высокой до самой низкой) для вариаций на странице товара?

Btuman
131
Комментарии
Все ответы на вопрос
2
0
Попробуйте так:
/**
* Этот код нужно добавить в functions.php вашей темы
**/
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('От', '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('до', 'max_price', 'woocommerce') . ' </span>';
$price .= woocommerce_price($product->max_variation_price);
}
return $price;
}

Nicolai Grossherr
18.9K
5 июн. 2013 г. 10:42:22
0
Наткнулся на эту ветку в поисках решения для групповых товаров. В итоге получился код ниже... Публикую его, если кому-то поможет. Этот код не работает для вариативных товаров, только для групповых. Подумал, что это будет полезно, так как групповые и вариативные товары довольно похожи, и другие тоже могут найти эту ветку. Возможно, стоит немного доработать span, но это быстрый и простой вариант, который помог мне начать!
/*** Возвращает диапазон цен для групповых товаров **/
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('От: ', 'min_price', 'woocommerce') . woocommerce_price( $min_price ) . _x(' до ', 'max_price', 'woocommerce') . ' </span>' . woocommerce_price( $max_price );
return $price;
}
add_filter( 'woocommerce_grouped_price_html', 'wc_grouped_price_html', 10, 2 );

DaNnY BoY
41
2 мар. 2014 г. 12:15:22
Похожие вопросы
2
ответов
1
ответов
1
ответов