✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Як змінити типові тексти WooCommerce за допомогою коду

73

WooCommerce переповнений фільтрами, хуками та функціями, які допоможуть вам налаштувати та використовувати плагін у вашій темі чи плагіні. Ось деякі невеликі, але корисні приклади коду, а-ха і практичні вказівки щодо загальних змін різних текстових виводів.

Зміна тексту кнопки «Додати в кошик».

Є два фільтри; один для тексту «додати в кошик» у циклі (woocommerce_product_add_to_cart_text), а інший для кнопки в окремому продукті (woocommerce_product_single_add_to_cart_text):

// Single product view
add_filter('woocommerce_product_single_add_to_cart_text', function($text) {
    return __('Buy this now', 'txtdomain');
});
 
// Loop
add_filter('woocommerce_product_add_to_cart_text', function($text) {
    return __('Buy this', 'txtdomain');
});

Однак майте на увазі, що це перекриває всі тексти «Додати до кошика». Навіть ті, які спочатку були «Вибір варіантів» (варіантні товари) або «Докладніше» (неможливі придбання товарів – немає ціни або їх немає в наявності). Якщо ви бажаєте більш точного налаштування, додайте другий аргумент до цих фільтрів; об’єкт продукту. Використовуйте об’єкт product для умовного керування виходом. Наприклад, за типом продукту або за тим, чи можна придбати продукт:

add_filter('woocommerce_product_add_to_cart_text', function($text, $product) {
    if ($product->is_type('variable')) {
        return __('Take your pick', 'txtdomain');
    }
    if (!$product->is_purchasable()) {
        return __('Read more', 'txtdomain');
    }
    return $text;
}, 10, 2);

Змініть вихід цінового діапазону на змінні та згруповані продукти

За замовчуванням WooCommerce відображатиме найнижчу та найвищу ціну на різноманітні та згруповані продукти з «-» між ними. Ви можете дуже легко змінити цей вихід діапазону. Наприклад, переконайтеся, що відображається лише найнижча ціна у формі «Від:». WooCommerce має один фільтр для змінних продуктів і інший для згрупованих продуктів, тому давайте по черзі розглянемо їх обидва.

Контроль виводу HTML діапазону цін для змінних продуктів здійснюється за допомогою фільтра woocommerce_variable_price_html. Об’єкт продукту надається як другий аргумент.

Усередині функції нам потрібно отримати всі ціни. WooCommerce пропонує зручну функцію для змінних об’єктів продукту, get_variation_prices(). Це повертає масив усіх варіантів цін, відсортованих спочатку за найнижчими. Усе, що нам потрібно зробити, це витягнути перший елемент у масиві цін і красиво його вивести:

add_filter('woocommerce_variable_price_html', function($html, $product) {
    $prices = $product->get_variation_prices(true);
    $from_price = wc_price(current($prices['price']));
    return sprintf(__('From: %s', 'txtdomain'), $from_price. $product->get_price_suffix());
}, 10, 2);

HTML-фільтр виводу цінового діапазону для згрупованих продуктів дуже схожий на змінні продукти, але з однією відмінністю; масив усіх згрупованих «дітей» цін товарів включається як аргумент до фільтру. Фільтр для використання woocommerce_grouped_price_html:

add_filter('woocommerce_grouped_price_html', function($html, $product, $child_prices) {
    $from_price = wc_price(current($child_prices));
    return sprintf(__('From: %s', 'txtdomain'), $from_price. $product->get_price_suffix());
}, 10, 3);

Змінити вихідний текст стану запасів

Якщо ви активували відображення статусу запасу в налаштуваннях WooCommerce, він має відображати точну кількість запасів, що залишилися, у перегляді одного продукту (наприклад, «42 в наявності»). Однак ви можете змінити результат, щоб натомість показувати діапазон, а не точну суму. Або просто «В наявності», якщо ви хочете приховати номер.

Фільтр для цього є, woocommerce_get_stock_htmlі якщо ви включите другий аргумент, ви отримаєте об’єкт продукту. З об’єктом продукту ви можете виконувати необхідні операції для точного налаштування результату. Майте на увазі, що вихідні дані, які можна фільтрувати, загорнуті всередину <p>елемента, і ваші вихідні дані також мають бути загорнуті.

Для простого відображення «В наявності» або «Немає в наявності» цього буде достатньо:

add_filter('woocommerce_get_stock_html', function($html, $product) {
    if ($product->is_in_stock()) {
        return sprintf('<p class="stock in-stock">%s</p>', __('In stock', 'txtdomain'));
    } else {
        return sprintf('<p class="stock out-of-stock">%s</p>', __('Out of stock', 'txtdomain'));
    }
    return $html;
}, 10, 2);

Відображення запасів у «діапазоні значень» можна зробити так:

add_filter('woocommerce_get_stock_html', function($html, $product) {
    $current_stock = $product->get_stock_quantity();
    if ($current_stock <= 0) {
        $new_html = __('Out of stock', 'txtdomain');
    } else if ($current_stock > 500) {
        $new_html = sprintf('500+ %s', __('in stock', 'txtdomain'));
    } else if ($current_stock > 100) {
        $new_html = sprintf('100+ %s', __('in stock', 'txtdomain'));
    } else if ($current_stock > 20) {
        $new_html = sprintf('20+ %s', __('in stock', 'txtdomain'));
    } else {
        $new_html = __('In stock', 'txtdomain');
    }
    return sprintf('<p class="stock">%s</p>', $new_html);
}, 10, 2);

Перейменувати статуси замовлень

Іноді клієнт хоче, щоб різні мітки на статусах замовлення були більш зрозумілими відповідно до практики їхнього веб-магазину. Наприклад, ви можете змінити назву «На утриманні» на «Ненадіслані» або «Завершене» на «Надіслані». Щоб зрозуміти, які замовлення потрібно надіслати, а які вже надіслано. WooCommerce пропонує простий фільтр wc_order_statusesза назвами всіх доступних статусів замовлень.

add_filter('wc_order_statuses', function($order_statuses) {
    $order_statuses['wc-on-hold'] = __('Unsent', 'txtdomain');
    $order_statuses['wc-completed'] = __('Sent', 'txtdomain');
    return $order_statuses;
});

Доступні клавіші wc-pending, wc-processing, wc-on-hold, wc-completed, wc-cancelled, wc-refundedта wc-failed.

Джерело запису: awhitepixel.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі