В некоторых интернет магазинах, которые я делаю, например для онлайн курсов у меня включен Прямой заказ. В обход корзины. Да и бывают обычные магазины, где люди заказывают только одну позицию.
Но во всяких кешах "этих ваших" может повиснуть прошлый товар.
Долго искал как можно прям на странице чекаута убирать ненужные товары. Нашел. Делюсь. Возможно этот материал поможет не только мне сделать покупательских опыт для своих клиентов приятным.
Инструкция:
Тут все просто
1 - идем на фтп сайта, заходим в директорию активной темы, находим там папку woocommerce (public_html/wp-content/themes/название_вашей_темы/woocommerce/)
2 - создаем в ней папку с именем checkout
3 - из папки с плагинами, с папки вукомерса, копируем файл шаблона review-order.php (public_html/wp-content/plugins/woocommerce/templates/checkout) в нашу свежесозданную папку
Это мы все сделали, чтоб при обновлении вукомерса, наши труды не рухнули
4 - Открываем этот файл после копирования в редакторе и добавляем сначала интерфейс кнопки удаления, столбец для нее.
Тут на скрине видно куда поставить код:
Сам код для вставки:
<th class="product-remove">Удалить</th>
5 - Теперь добавим саму функцию, которая будет удалять, по нажатию ненужные товары. Ее можно взять из файла cart.php тоже в шаблонах вукомерса, в папке cart. Вот сам код:
<td class="product-remove">
<?php
echo apply_filters(
'woocommerce_cart_item_remove_link',
sprintf(
'<a href="%s" class="remove" aria-label="%s" data-product_id="%s" data-product_sku="%s">×</a>',
esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
esc_html__( 'Remove this item', 'woocommerce' ),
esc_attr( $product_id ),
esc_attr( $_product->get_sku() )
),
$cart_item_key
);
?>
</td>
Вставляем его в наш созданный файл, перед строчкой <td class="product-name">
Должно выглядеть вот так:
5,5 - Вукомерс может что-то изменить в коде в процессе обновлений, поэтому этот код лучше брать из файла cart.php
6 - Сохраняем файл, тестируем, ставим лайки))
Дисклеймер, но в конце - умники, которые все и так знали и все и так умели - идите дальше, значит эта статья-заметка не для вас.
Если есть варианты как сделать что-то лучше или решить красивее - пишите в каменты. И вопросы тоже пишите, что знаю - отвечу.