Intereting Posts
Скрыть корзину, когда она пуста wp Query Сообщения для отображения в Nivo Slider Поиск с использованием WP_Query Использование фильтра дает ошибку «резервное копирование этого сообщения в вашем браузере отличается от версии ниже» Изменение параметров ссылок при наведении указателя на заголовок сообщения Создание и редактирование сообщений с передней стороны Добавление класса к первому сообщению в пользовательском цикле с использованием фильтра post_class Как автоматически импортировать внешние изображения в Upload Ограничение доступа к странице Один комментарий для каждого пользователя за сообщение таможенный архив по годам После обновления wordpress 4.5 моя домашняя страница и изображения не отображаются проблема миграции файлов с https на сайт http mock – как увидеть сайт-макет Нужен совет по настройке темы и темам для детей Проблема с форматом Post

В чем разница между WC () и $ woocommerce

Я хочу отключить некоторые переменные сеанса WooCommerce, потому что при загрузке страницы крючки, которые я использую, не запускаются, что оставляет предыдущие данные сеанса, заполняющие таблицу доставки выписки.

В рамках любых функций, доступных из обратных вызовов hook, я могу получить доступ к VaCommerce session vars, например:

WC()->session->get('foo');

Однако, если за пределами этих обратных вызовов WC не определен. Я пробовал настройку:

global $woocommerce; и доступ через $woocommerce->session->__unset('foo'); но получил уведомление:

Попытка получить свойство не объекта

и ошибка:

Неустранимая ошибка: Непринятая ошибка: вызов функции-члена __unset () в нуле

Итак, ясно, что этот $woocommerce глобальный – это не то же самое, что WC (что, как я полагаю, вызывается крючками?)

Я думаю, что я могу отключить эти переменные, используя один из первых крючков, которые будут срабатывать на странице проверки, но мне стало интересно:

В чем разница между WC() и $woocommerce ? Разве не оба способа доступа к методам WooCommerce?

wc(); возвращает экземпляр Singleton из WooCommerce чтобы предотвратить необходимость использования глобальных переменных.

WC устанавливает глобальную $woocommerce таким образом: $GLOBALS['woocommerce'] = wc(); , поэтому использование одного или другого похоже на одно и то же …

РЕДАКТИРОВАТЬ

О ваших ошибках вы получили их, потому что не была установлена $woocommerce->session . WC инициализирует WC_Session_Handler только по интерфейсу или запросам CRON. Выберите подходящий крючок.