@matrasok

Как вместо основной цены отображать цену выбранного вариативного товара Woocommerce?

дравствуйте!

Нужно чтобы на карточках вариативного товара цена основная цена отображалась вместо основной.

У меня по умолчанию на карточке товара выбран один из атрибутов. Основная цена показывается именно для товара с этим атрибутом (а не min-max). Мне нужно, чтобы при выборе другого атрибута основная цена показывался для товара с выбранным атрибутом.

Подскажите как это можно сделать (при этом чтобы отображение цена на карточках не вариативных товаров не пострадало)?
63fe2480d099b311578112.png
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 1
@matrasok Автор вопроса
Этот способ мне не подходит.
add_action( 'woocommerce_before_single_product', 'check_if_variable_first' );
function check_if_variable_first(){
if ( is_product() ) {
global $post;
$product = wc_get_product( $post->ID );
if ( $product->is_type( 'variable' ) ) {
// removing the price of variable products
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );

// Change location of
add_action( 'woocommerce_single_product_summary', 'custom_wc_template_single_price', 10 );
function custom_wc_template_single_price(){
global $product;

// Variable product only
if($product->is_type('variable')):

// 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 && $product->is_on_sale() ) {
$price = '' . $saleprice . $product->get_price_suffix() . ' ' . $price . $product->get_price_suffix() . '';
}

?>


<?php

echo ''.$price.'
'.$price.'';

endif;
}

}
}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы