Показывать этикетку "нет в наличии", когда товар находится в невыполненных заказах в Woocommerce

В Woocommerce, что касается отображаемого текста о наличии товаров на складе, я ищу способ отображать текст «Нет в наличии», даже если активирован разрешить просроченный заказ, без необходимости уведомления.

Как я могу показать этикетку "нет в наличии", когда товар находится в невыполненных заказах в Woocommerce? Я использую тему витрины


person Martin Exequiel    schedule 26.12.2018    source источник
comment
Не добавляйте комментарий в качестве ответа, так как я не получаю уведомления, под моим ответом есть зона для комментариев… Как новый пользователь получите краткий обзор (30 секунд), чтобы лучше понять StackOverFlow. По умолчанию на страницах архива woocommerce не отображается бирка акций, поэтому вы используете собственный код или плагин: добавьте эту связанную информацию в свой вопрос.   -  person LoicTheAztec    schedule 27.12.2018
comment
Я использую тему витрины.   -  person Martin Exequiel    schedule 27.12.2018


Ответы (1)


Woocommerce позволяет включать отложенные заказы с уведомлением или без него. Когда включено уведомление о досрочном заказе, отображается текст «Доступно при отозванном заказе» и ничего без уведомления.

Когда товары находятся в отставке, в следующем тексте отображается текст «Нет в наличии (может быть оформлен отложенный заказ)», если функция отложенного заказа включена без уведомлений:

add_filter( 'woocommerce_get_availability_text', 'custom_backorders_stock_availability_text', 10, 2 );
function custom_backorders_stock_availability_text( $availability, $product ) {
    if ( $product->managing_stock() && $product->is_on_backorder( 1 ) ) {
        if ( ! $product->backorders_require_notification() ) {
            $availability = __( 'Out of stock (can be backordered)', 'woocommerce' );
        }
    }
    return $availability;
}

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

Настройки продукта (на вкладке инвентаря):

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

Отображаемый текст о наличии запасов (когда он находится в просроченных заказах):

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


Или во всех случаях, когда товар находится в состоянии отставания (даже с уведомлением), используйте вместо этого:

add_filter( 'woocommerce_get_availability_text', 'custom_backorders_stock_availability_text', 10, 2 );
function custom_backorders_stock_availability_text( $availability, $product ) {
    if ( $product->managing_stock() && $product->is_on_backorder( 1 ) ) {
        $availability = __( 'Out of stock (can be backordered)', 'woocommerce' );
    }
    return $availability;
}
person LoicTheAztec    schedule 26.12.2018
comment
Спасибо @loictheaztec, но если у нас был задержан заказ на указанную выше переменную, это не сработает. - person sevoug; 30.10.2020