Очистить некоторые мета-корзины woocommerce при выходе - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть личная информация, которую я собираю в процессе оформления заказа и сохраняю на объекте корзины.

Если пользователь выходит из системы, я хочу оставить выбор продукта в корзине без изменений, но удалить 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, пытаясь найти подсказку, и ничего не нашел, ни по общим запросам.

Я знаю, что это супер ниша, но у кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 24 апреля 2020

Ложная тревога, я установил приоритет wp_logout на 5, и он неожиданно начал работать.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...