Сторінка кошика в WooCommerce (налаштування та редагування шаблону)

Тут же можна змінити назву та додати трохи свого тексту на сторінку. Також задаєте МЕТА тег опису та тайтл за допомогою модуля SEO Yoast.

Налаштування кошика у WooCommerce

У налаштуваннях модуля є різні параметри керування кошиком. Деякі з них знайдете у вкладці "Доставка" - "Варіанти доставки".

У опції «Розрахунки» можна:

Якщо цю опцію вимкнути, посилання на калькулятор видно не буде, але сама інформація про варіанти доставки залишиться.

Як видалити доставку зі сторінки кошика

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

Для вирішення завдання нам знадобиться розмістити у файлі функцій вашої теми (custom-function.php або function.php) наступний хак:

function delshipping_calc_in_cart( $show_shipping ) < if( is_cart() ) < return false; >return $show_shipping; > add_filter( 'woocommerce_cart_ready_to_calc_shipping', 'delshipping_calc_in_cart', 99);

Шаблон кошика WooCommerce

Усі основні файли шаблону для сторінки корзини у WooCommerce знаходяться у папці cart. Нагадую, що редагувати шаблон WooCommerce потрібно після того, як скопіюєте папку templates у свою дочірню тему. За замовчуванням директорія містить декілька файлів:

  • php
  • cart-totals.php
  • cross-sells.php
  • cart-empty.php
  • cart-item-data.php
  • cart-shipping.php
  • mini-cart.php
  • proceed-to-checkout-button.php
  • shipping-calculator.php

Кожен з них відповідає за певні функції, наприклад, у файлі cross-sells.php задається відображення крос продажів, cart-empty.php - виконується обробка порожнього кошика і т.п. Ви можете змінити виведення всіх елементів сторінки так, як це потрібно. Хоча деякі редагування прийнято робити через хакі/сніпети як наприклад у пості про оновлення Ajax кошика.

Давайте розглянемо один приклад, щоб трохи прояснити логіку роботи. Після впровадження хаку з попереднього кроку налаштування WooCommerce кошика ми позбулися доставки, але сторінка все ще виглядає трохи дивно.

Якщо уважно вивчити файли шаблону кошика, то побачите, що відображення блоку під товарами відповідає рядок:

За допомогою утиліти WinGrep можете знайти, де саме використовується ця функція або підглянути інформацію в інтернеті. Виявляється вона задає відображення двох елементів - крос продажів і блоку всього (який видно на скріншоті вище). Відповідний код розміщено в /includes/wc-template-hooks.php:

add_action( 'woocommerce_cart_collaterals', 'woocommerce_cross_sell_display' ); add_action( 'woocommerce_cart_collaterals', 'woocommerce_cart_totals', 10);

Тепер, по суті, у вас є 3 варіанти, щоб усе це приховати:

Це лише один із прикладів роботи з шаблоном, сподіваюся, суть ви вловили. В принципі, є два варіанти його модифікації - у файлах безпосередньо (легше і наочніше), або робота через хуки і функції remove_action / add_action (начебто, вважається правильніше і гнучкіше). Який би варіант ви не вибрали, пам'ятайте, що правки потрібно вносити в копію макету магазину у дочірній темі.

Хак для купонів

Якщо ви використовуєтепромокоди в магазині можна додати відображення нової ціни навпроти кожної позиції. Знайдений сніпет має вигляд:

add_filter( 'woocommerce_cart_item_subtotal', 'bbloomer_if_coupon_slash_item_subtotal', 99, 3); function bbloomer_if_coupon_slash_item_subtotal( $subtotal, $cart_item, $cart_item_key )< Global $woocommerce; // Note: use your own coupon code тут $coupon_code = 'barmada'; if ( $woocommerce->cart->has_discount( $coupon_code )) < // Note: apply our coupon discount multiplier here // In this case, it's a 99% discount, hence I multiply 0.01 $newsubtotal = wc_price( $cart_item['data']->get_price() * 0.01 ) $subtotal = sprintf('%s%s', $subtotal, $newsubtotal); > return $subtotal; >

Якщо код вам не зовсім зрозумілий, загляньте в статтю про WooCommerce купони знижок, де я описав його трохи докладніше (наприкінці нотатки).

[shareaholic app="share_buttons" id="16398"]