我有一些个人信息,我在结账过程中建立并保存在购物车对象上。
如果用户注销,那么我想保留购物车中的产品选择,但删除我已经添加到购物车中的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();
中,然后我得到一个空白页。
我在github上梳理了WooCommerce的源码,寻找一个提示,但没有发现任何东西,也没有通过一般的搜索。
我知道这是超小众的,但有人有办法吗?
虚惊一场,我把wp_logout的优先级设置为5,突然就开始工作了。
我当时想象的是,就在我想使用会话的时候,会话已经被破坏了,或者类似的情况。