Включить обратный суффикс цены для функции, которая отображает настроенные цены на товары в WooCommerce - PullRequest
1 голос
/ 07 мая 2019

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

Проблема, с которой я столкнулся, заключается в том, что она также убивает поле woocommerce_price_suffix из настроек, и я хочу включить его в свою функцию, но не знаю как.

1 Ответ

1 голос
/ 07 мая 2019

Следующее добавит обратно суффикс цены:

//Variable and simple product displayed prices (removing sale price range)
add_filter( 'woocommerce_get_price_html', 'custom_get_price_html', 20, 2 );
function custom_get_price_html( $price, $product ) {
    if( $product->is_type('variable') )
    {
        if( is_user_logged_in() ){
            $price_min  = wc_get_price_to_display( $product, array( 'price' => $product->get_variation_sale_price('min') ) );
            $price_max  = wc_get_price_to_display( $product, array( 'price' => $product->get_variation_sale_price('max') ) );
        } else {
            $price_min  = wc_get_price_to_display( $product, array( 'price' => $product->get_variation_regular_price('min') ) );
            $price_max  = wc_get_price_to_display( $product, array( 'price' => $product->get_variation_regular_price('max') ) );
        }

        if( $price_min != $price_max ){
            if( $price_min == 0 && $price_max > 0 )
                $price = wc_price( $price_max );
            elseif( $price_min > 0 && $price_max == 0 )
                $price = wc_price( $price_min );
            else
                $price = wc_format_price_range( $price_min, $price_max );
        } else {
            if( $price_min > 0 )
                $price = wc_price( $price_min);
        }
        $price .= $product->get_price_suffix()
    }
    elseif( $product->is_type('simple') )
    {
        if( is_user_logged_in() )
            $active_price = wc_get_price_to_display( $product, array( 'price' => $product->get_sale_price() ) );
        else
            $active_price = wc_get_price_to_display( $product, array( 'price' => $product->get_regular_price() ) );

        if( $active_price > 0 )
            $price = wc_price($active_price) . $product->get_price_suffix();
    }
    return $price;
}

Код помещается в файл functions.php вашей активной дочерней темы (или активной темы) . Проверено и работает.

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