WooCommerce - удаление диапазона цен при выборе варианта - PullRequest
0 голосов
/ 12 сентября 2018

Мои переменные продукты показывают два ценовых сегмента, один - это диапазон цен для всех продуктов, а другой - цена для выбранного продукта, если он выбран.Но если цена на товары одинакова, она показывает только одну цену.

То, что я хочу, - это когда выбирается опция, если цена товаров колеблется, я хочу заменить ценовой диапазон ценойвыбранный вариант.И если не выбран ни один вариант, я хочу показать диапазон цен.Я не смог найти правильный фильтр или крючок для этого, вы можете помочь?

Вот пара изображений, чтобы показать вам, о чем я говорю;

enter image description here

enter image description here

Код Ягнеш Макваны может быть использован для того, чтобы эта функциональность работала, но мне нужно иметь возможность узнать цену выбранного в настоящий момент варианта.Посмотрите в операторе if ниже $ вариация_прайс должна быть установлена ​​равной текущей выбранной цене вариации;

add_filter( 'woocommerce_variable_sale_price_html', 'detect_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'detect_variation_price_format', 10, 2 );

function detect_variation_price_format( $price, $product ) {

    // get min and max price of varaitions and store in $prices array
    $prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
    //if min and max price are not the same
    if ($prices[0] !== $prices[1]) {
        $variation_price = get selected variation price;
        $price = sprintf( __( $variation_price, 'woocommerce') );
    }   

    return $price;
}

1 Ответ

0 голосов
/ 12 сентября 2018

Здравствуйте, @Rece ниже код полезен для вас, чтобы удалить диапазон цен в WooCommerce.

Вы можете использовать данные крючки для удаления ценового диапазона.

//Remove Price Range
add_filter( 'woocommerce_variable_sale_price_html', 'detect_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'detect_variation_price_format', 10, 2 );

function detect_variation_price_format( $price, $product ) {

    // Main Price
    $prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
    if ($prices[0] !== $prices[1]) {
        $price = $prices[0] !== $prices[1] ? sprintf( __( ”, ‘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( __( '', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );   
    if ( $price !== $saleprice ) {
        $price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
    }
    return $price;
}

Вы можете изменить функцию в зависимости от темы, переопределив шаблон плагина woo-commerce.

Подробнее см. По ссылке: https://annaschneider.me/hide-the-price-range-for-woocommerce-variable-products/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...