Замените пустые и нулевые отображаемые цены текстом и в вариантах продукта WooCommerce

#php #wordpress #woocommerce #price #variations

#php #wordpress #woocommerce #Цена #варианты продукта

Вопрос:

Мне нужны аргументы. $blank_price и $zero_price . Если цена продукта оставлена пустой (не заполненной), на странице продукта будет отображаться значение $blank_price аргумента, а если цена продукта установлена в 0, должно отображаться значение из $zero_price аргумента.

Мне нужно, чтобы это работало как для простых, так и для переменных продуктов (вариаций).

Вот что у меня есть на данный момент, которое отлично работает для простых продуктов. Мне нужна помощь в добавлении кода для переменных продуктов.

Код:

 add_filter( 'woocommerce_get_price_html', 'empty_and_zero_price_display', 20, 2 );
function empty_and_zero_price_display( $price, $product ) {
    $blank_price = __('Price not yet set', 'woocommerce');
    $zero_price = __('Free', 'woocommerce');

    if( $product->is_type('simple') ) {
        if ( '' === $product->get_price() ) {
            return $blank_price;
        } else if (0 == $product->get_price() ) {
            return $zero_price;
        }
    }
    return $price;
}
  

Приветствуется любая помощь.

Комментарии:

1. @LoicTheAztec вы помогли мне на днях, могу я попросить вас взглянуть на это (если у вас есть время)? Большое вам спасибо.

2. Я ответил на этот вопрос так…

Ответ №1:

Чтобы это работало и для вариантов переменного продукта, попробуйте этот слегка измененный код:

 add_filter( 'woocommerce_get_price_html', 'empty_and_zero_price_display', 20, 2 );
function empty_and_zero_price_display( $price, $product ) {
    $blank_price = __('Price not yet set', 'woocommerce');
    $zero_price = __('Free', 'woocommerce');

    if( ! $product->is_type('variable') ) {
        if ( '' === $product->get_price() ) {
            return $blank_price;
        } else if (0 == $product->get_price() ) {
            return $zero_price;
        }
    }
    return $price;
}
  

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

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

введите описание изображения здесь