Как убрать оставленную корзину woocommerce

Я наткнулся на этот код для очистки корзины Woocommerce при загрузке определенных страниц.

Но мне интересно, есть ли способ очистить корзину после того, как она была заброшена?

Для запуска только на первой странице ваша функция должна выглядеть так:

add_action( 'init', 'woocommerce_clear_cart_url' );
function woocommerce_clear_cart_url() {
global $woocommerce;

if ( is_front_page() && isset( $_GET['empty-cart'] ) ) {
$woocommerce->cart->empty_cart();
}

}
Функция is_front_page () возвращает true только на первой странице вашего WordPress сайта. Кроме того, вы можете обнаружить любую другую страницу с функцией is_page (), где вы можете передать любой заголовок страницы, идентификатор или слаг

1

Решение

Из этого вопроса: Установить срок действия корзины WooCommerce

Из того, что я вижу, WooCommerce 2.0.20 имеет запланированное задание обслуживания, которое выполняется два раза в день, и удаляет все сеансы корзины из таблицы параметров WordPress. Время истечения по умолчанию установлено на 48 часов с момента, когда пользователь впервые создал корзину. Я предполагаю, что ваши стандартные подпрограммы планирования WordPress (и задания сервера cron / at) должны будут работать правильно, чтобы это выполнялось.

AFAIK нет способа отрегулировать правило 48 часов через настройки. Вы можете написать фильтр в вашей теме или в «смежном» плагине.

Я немного изменил код, чтобы переключиться на 24-часовой сеанс. Я не уверен, что вы хотите удалять каждые несколько минут, поскольку это может привести к снижению производительности.

add_filter('wc_session_expiring', 'so_26545001_filter_session_expiring' );

function so_26545001_filter_session_expiring($seconds) {
return 60 * 60 * 23; // 23 hours
}

add_filter('wc_session_expiration', 'so_26545001_filter_session_expired' );

function so_26545001_filter_session_expired($seconds) {
return 60 * 60 * 24; // 24 hours
}
5

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector