У бізнесі електронної торгівлі одним із ключових аспектів є правильна робота системи доставки товарів. Часто магазини пропонують своїм клієнтам різні варіанти доставки, включаючи безкоштовну. В WooCommerce, одному з найпопулярніших рішень для створення інтернет-магазинів на платформі WordPress, налаштування безкоштовної доставки та виключення вартості доставки з загальної суми кошика може бути важливою задачею.
Один із часто зустрічаючихся вимог до інтернет-магазинів – це можливість надавати безкоштовну доставку для певних замовлень або при досягненні певної суми кошика. Іноді магазини хочуть також виключити вартість доставки з загальної суми кошика, щоб покупці знали реальну вартість товарів без урахування вартості доставки.
Для досягнення цих цілей можна скористатися різними методами та хуками, які надає WooCommerce. Одним із можливих варіантів є використання фільтра або хука для редагування загальної суми кошика перед тим, як вона буде відображена користувачеві.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function exclude_shipping_from_cart_total( $cart ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return; $shipping_total = 0; // Calculate total shipping cost foreach ( WC()->session->get('shipping_for_package_0')['rates'] as $rate ) { $shipping_total += $rate->cost; } // If free shipping is set, exclude shipping cost from cart total if ( WC()->cart->needs_shipping() && WC()->cart->get_shipping_total() == 0 ) { $cart->total -= $shipping_total; $cart->subtotal -= $shipping_total; } } add_action( 'woocommerce_calculate_totals', 'exclude_shipping_from_cart_total', 10, 1 ); |
У цьому коді ми використовуємо хук woocommerce_calculate_totals
, який викликається при розрахунку загальної суми кошика. В функції exclude_shipping_from_cart_total
ми перевіряємо, чи потрібно доставку (якщо так, то чи вона безкоштовна) і виключаємо вартість доставки з загальної суми кошика, якщо це необхідно.
Цей метод дозволяє налаштувати безкоштовну доставку та виключити вартість доставки з загальної суми кошика в WooCommerce, забезпечуючи користувачам зрозумілу та зручну покупкову досвід.