Woocomerce 3.0. Что нового и как с этим бороться?

Обновился Woocomerce и теперь на момент записи видео и написания этой статьи актуальная версия 3.0.1. Давайте разбираться, что в нем нового.

Новые галереи

Полностью обновилась галерея, теперь она отлично работает на мобильных устройствах и несет на борту сразу три функционала: зум, слайдер, лайтбокс. Данную галреею требуется подключать в поддержку темы, просто так работать не будет. Достаточно добавить в файл functions.php

Добавлять просто так нельзя! Надо вешать на хук after_setup_theme.  Правильно будет так

Можно подключать не всё сразу, а только нужное. Например, только слайдер или только лайтбокс. Смотря какой проект

Заголовки в H2

После обновления на страницах: магазин, архивы, рубрики, похожие записи в заголовках товаров изменились заголовки с H3 на H2. Может поплыть верстка. Если для вас это критично, то достаточно в файл functions.php добавить измененную функцию, чтобы переопределить то, что есть

Предупреждение: функция product_type вызвана неправильно

Для разработчиков

Теперь нельзя напрямую вызывать тип продукта, только через метод get_type(). Проверяйте свой код и меняйте.

на

Предупреждение: функция id вызвана неправильно

Для разработчиков

Теперь нельзя напрямую вызывать ID продукта, только через метод get_ID(). Проверяйте свой код и меняйте.

на

Новый класс CRUD

Вольный перевод этой статьи и этой с моими примечаниями)

До этого релиза (имеется ввиду Woocommerce 3.0), было несколько способов для разработчиков записывать данные в базу данных для заказов, продуктов и так далее. Получение данных также может быть сделано несколькими способами. Все это требует от разработчика знать, какой тип данных , они пытаются изменить, и это было не идеально: отнимало много времени и было сложным процессом.

Для оптимизации хранения данных, мы (разработчики Woocommerce) должны убедиться , что разработчики используют единый метод написания и извлечение данных . Вот почему вводится класс CRUD с этом релизе.

CRUD (СПОУ) обозначает Create, Read, Update, Delete (Создать, Прочитать, Обновить, Удалить)- четыре основные операции , которые можно сделать. С классами CRUD добавлеными в WooCommerce 3,0, вы можете изменять заказы, товары, клиенты, зоны достави, платежные системы и купоныс меньшим количеством кода через единую систему .

Преимущества этого дополнения:

  • Определяем данные для каждого ресурса и контролируем его поток и проверку
  • Вам нужно только знать имена данных с которыми вы работает, а не из типов или внутренних деталей
  • Эти данные могут быть перемещены в другом месте  (например , пользовательские таблицы) , не затрагивая существующий код
  • Меньше кода означает меньше изменений, плюс дополнительные тесты

Примеры использования CRUD

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

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

Теперь пример CRUD:

Я знаю, что у заказа есть свойство первого и последнего имени, но мне не нужно знать, что это пост-мета, или что ключи — это _billing_first_name и _billing_last_name. Если эти ключи изменились в будущем, этот код не будет затронут.

Получение данных из базы данных следует аналогичной схеме. Старый:

Новое:

Когда это возможно, классы CRUD должны обрабатывать в основном чтение и запись данных. Любой связанный шаблон, такой как получение HTML, должен быть перемещен в функцию шаблона.

Примеры запросов к ресурсам

Поскольку в дальнейшем мы намерены переместить данные в пользовательскую таблицу, важно, чтобы мы предложили способ запроса данных, не проходя сам WordPress. Опять же, разработчику не нужно знать, что заказы — это пользовательский тип записи с именем shop_order — это не имеет значения.

Было

Стало

Вот, это то что нашел и смог исправить. Пишите в коментах, что увидели и с чем столкнулись. Будем разбираться.

Всем успехов!

12 комментариев

  1. Vasya 20.04.2017
    • Артем 23.04.2017
    • Андрей 26.04.2017
      • Артем 26.04.2017
  2. Сергей 27.04.2017
    • Артем 06.05.2017
  3. Олеся 03.05.2017
  4. Дизайнер 20.05.2017
  5. Мастер 05.06.2017
  6. Декли 14.06.2017
    • Артем 22.06.2017

Оставить комментарий

Нажимая на кнопку отправить, я принимаю условия пользовательского соглашения , а также ознакомлен и согласен с политикой конфиденциальности и даю согласие на обработку моих персональных данных

Подписывайся!

Подписывайся!

Подписывайтесь на новости сайта, чтобы ничего не пропустить

Спасибо, что подписались!