У меня есть личная информация, которую я собираю в процессе оформления заказа и сохраняю на объекте корзины.
Если пользователь выходит из системы, я хочу оставить выбор продукта в корзине без изменений, но удалить pii, который я добавил в корзину.
Я тестировал этот код в другом месте, в обычном шаблоне, и он очищает корзину:
public function clear_pii_from_cart()
{
if (WC()->cart == null) {
return;
}
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
unset(WC()->cart->cart_contents[$cart_item_key]['personalinfo']);
}
// save to cart
WC()->cart->set_session();
}
Но когда я его вызываю из действия wp_logout
информация все еще остается в корзине после выхода из системы.
Я не могу понять, как войти в нее, чтобы увидеть, с какими структурами данных я имею дело.
Он просто выходит из системы и, похоже, ничего не делает.
Я знаю, что ловушка работает, потому что, если я вставлю die();
, я получу пустую страницу.
I Я прочесал исходный код WooCommerce на github, пытаясь найти подсказку, и ничего не нашел, ни по общим запросам.
Я знаю, что это супер ниша, но у кого-нибудь есть идеи?