Зная, как пользоваться action hook и filter hook можно с легкостью внести изменения на странице корзины. Например, добавить скидочный купон, которым пользователь может воспользоваться перед тем, как приступит к оплате.
Как добавить скидочный купон на страницу корзины
Для этого воспользуемся уже знакомым нам плагином Simply Show Hooks.
Допустим, мы хотим поместить купон после названия страницы, то есть слова «корзина».
Для этого нам подходит action: woocommerce_check_cart_items.
Но для начала с помощью плагина ACF добавим купон на страницу товара. Если вы не знаете, как это сделать, ознакомьтесь с этой статьей.
Если коротко, то на создадим новую группу с полем image для станицы Корзина.
Зайдем на страницу и добавим изображение купона.
Итак, мы добавили купон и теперь можем вывести его на экран.
В файле functions.php пропишем следующий код
/* добавить купон в корзину */ function carolinaspa_add_banner_card(){ global $post; $image_url = get_field('bunner', $post->ID); if($image_url):?> <img src="<?php echo $image_url ?>" alt="coupon"> <?php endif; } add_action("woocommerce_check_cart_items", "carolinaspa_add_banner_card");
Добавить кнопку «очистить корзину»
Для удобства пользователей можно добавить кнопку, которая позволит очистить корзину одним нажатием.
Сделаем это с помощью хука woocommerce_cart_actions
В functions.php пишем
/* Добавить кнопку удалить из корзины */ function carolinaspa_empty_cart_button(){ ?> <a class="button" href="?empty-cart=true">Очистить корзину</a> <?php } add_action("woocommerce_cart_actions", "carolinaspa_empty_cart_button");
Мы видим, что появилась кнопка, однако при нажатии товар не исчезает. Зато появляется такая строка http://woocom/cart/?empty-cart=true
Чтобы удалить товары нужно написать следующую функцию, которая проверяет наличие запроса ?empty-cart=true в адресной строке
function carolinaspa_empty_cart(){ if(isset($_GET['empty-cart'])): global $woocommerce; $woocommerce->cart->empty_cart(); endif; } add_action("init", "carolinaspa_empty_cart");
В следующей статье внесем некоторые изменения на станице оформления заказа.