Как изменить текст доступности в WooComerce в зависимости от условий - PullRequest
0 голосов
/ 04 мая 2020

Я использую следующий код

add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);
function wcs_custom_get_availability( $availability, $_product ) {

    // Change In Stock Text
    if ( $_product->is_in_stock() ) {
        $availability['availability'] = __('Available!', 'woocommerce');
    }
    // Change Out of Stock Text
    if ( ! $_product->is_in_stock() ) {
        $availability['availability'] = __('Sold Out', 'woocommerce');
    }
    return $availability;
}

Приведенный выше код работает для стандартных продуктов, но не для продаж. Я стараюсь соответствующим образом адаптировать текст.

1 Ответ

0 голосов
/ 04 мая 2020

Поскольку у вас есть доступ к $product объекту

is_on_sale() - Возвращает, продается продукт или нет.

is_on_backorder() - Проверьте, есть ли продукт находится на предзаказе

Более подробная информация о поиске информации о продукте

https://docs.woocommerce.com/wc-apidocs/class-WC_Product.html

https://businessbloomer.com/woocommerce-easily-get-product-info-title-sku-desc-product-object/

function wcs_custom_get_availability( $availability, $_product ) {

    // Change In Stock Text
    if ( $_product->is_in_stock() ) {
        $availability['availability'] = __('in stock', 'woocommerce');
    }

    // Change Out of Stock Text
    if ( ! $_product->is_in_stock() ) {
        $availability['availability'] = __('Sold Out', 'woocommerce');
    }

    // On backorder
    if ( $_product->is_on_backorder() ) {
        $availability['availability'] = __('On backorder', 'woocommerce');
    }

    // On sale
    if ( $_product->is_on_sale() ) {
        $availability['availability'] = __('On sale', 'woocommerce');
    }

    return $availability;
}
add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 10, 2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...