У меня есть веб-сайт на базе woocommerce
, на котором я хочу удалить все предыдущие элементы корзины, когда пользователь входит в систему во время оформления заказа.
Я сделал вход в систему обязательным, поэтому во время оформления заказа может быть много пользователей.
Пример
Пользователь x вошел в систему и добавил товар в корзину.
2 Bags
Пользователь x вышел из системы через некоторое время и добавил продукт в корзину без входа в систему
1 Tshirt
Во время оформления заказа, когда его просят войти, вот как выглядит его корзина
2 Bags
1 Tshirt
Это то, что я хочу
1 Tshirt
Что я пробовал
Приведенный ниже код работает, но проблема в том, что он удаляет содержимое корзины при входе с любой страницы. Я только хочу, чтобы это работало на странице оформления заказа.
function clear_persistent_cart_after_login( $user_login, $user ) {
$blog_id = get_current_blog_id();
if ( metadata_exists( 'user', $user->ID, '_woocommerce_persistent_cart_' . $blog_id ) ) {
delete_user_meta( $user->ID, '_woocommerce_persistent_cart_' . $blog_id );
}
}
add_action('wp_login', 'clear_persistent_cart_after_login', 10, 2);
Я попытался проверить url
, но он не работает
function clear_persistent_cart_after_login( $user_login, $user ) {
$current_url = get_permalink();
if($current_url == "http://website.com/checkout/"){
$blog_id = get_current_blog_id();
if ( metadata_exists( 'user', $user->ID, '_woocommerce_persistent_cart_' . $blog_id ) ) {
delete_user_meta( $user->ID, '_woocommerce_persistent_cart_' . $blog_id );
}
}
}
add_action('wp_login', 'clear_persistent_cart_after_login', 10, 2);
Я нашел статьи, связанные с этой темой, но из-за своих базовых знаний по woocommerce я не могу их использовать.
1. Очистить постоянные корзины для клиентов (пользователи зарегистрировались более 30 дней назад)
2. Связанная проблема, но не совсем
Любая помощь приветствуется