在注销时清除一些woocommerce购物车的元数据。

问题描述 投票:0回答:1

我有一些个人信息,我在结账过程中建立并保存在购物车对象上。

如果用户注销,那么我想保留购物车中的产品选择,但删除我已经添加到购物车中的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的源码,寻找一个提示,但没有发现任何东西,也没有通过一般的搜索。

我知道这是超小众的,但有人有办法吗?

woocommerce hook-woocommerce
1个回答
0
投票

虚惊一场,我把wp_logout的优先级设置为5,突然就开始工作了。

我当时想象的是,就在我想使用会话的时候,会话已经被破坏了,或者类似的情况。

© www.soinside.com 2019 - 2024. All rights reserved.