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 — это не имеет значения.

Было

Стало

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

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

16 комментариев
  • Vasya

    20.04.2017

    Большой респект за материал, но ПЛИИИЗ избавься от слов-паразитов. Хотя бы звук в видео пермонтируй вырежи их. Это ежесекундное «Да?» просто бесит. За ним уже и «на самом деле» не кажется напряжным.

    • Артем

      23.04.2017

      Спасибо за критику, постараюсь исправиться

    • Андрей

      26.04.2017

      function вашатема_setup() {
      add_theme_support( ‘wc-product-gallery-zoom’ );
      add_theme_support( ‘wc-product-gallery-lightbox’ );
      add_theme_support( ‘wc-product-gallery-slider’ );
      }
      add_action( ‘after_setup_theme’, ‘вашатема_setup’ );

      я не спец в коде, но может должно так?

      • Артем

        26.04.2017

        С чего бы? вашатема_setup() — не более чем название функции, и может быть любым, только на латинице написанным

  • Сергей

    27.04.2017

    Столкнулся с проблемой. В версии 2.7 удалял ненужные поля на странице оформления заказа и все прекрасно работало, в файле functions.php добавлял код:
    add_filter( ‘woocommerce_checkout_fields’ , ‘custom_override_checkout_fields’ );
    function custom_override_checkout_fields( $fields ) {
    unset($fields[‘billing’][‘billing_company’]);
    unset($fields[‘billing’][‘billing_address_2’]);
    unset($fields[‘billing’][‘billing_postcode’]);
    unset($fields[‘billing’][‘billing_country’]);
    return $fields;
    }
    add_filter(‘woocommerce_billing_fields’, ‘wc_npr_filter_phone’ );
    function wc_npr_filter_phone($address_fields) {
    $address_fields[‘billing_email’][‘required’] = false;
    $address_fields[‘billing_state’][‘required’] = false;
    $address_fields[‘billing_address_1’][‘required’] = false;
    return $address_fields;
    }
    В версии 3 из за этого кода не отправляются заказы, выдает ошибку «Пожалуйста, введите адрес для продолжения.» Не знаете с чем это связано.

    • Артем

      06.05.2017

      Данный код удаляет поля из формы оформления заказа и снимает обязательность заполнения. Точно не скажу, но походе что некоторые фильтры изменились

  • Дизайнер

    20.05.2017

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

  • Мастер

    05.06.2017

    Я тоже пользуюсь WooCommerce, мне нравиться этот плагин, и мой интернет — магазин стал работать лучше.

  • Декли

    14.06.2017

    Для меня эта программа новая, и мне было интересно про нее почитать, тем более если я собираюсь открывать свой интернет-магазин.

    • Артем

      22.06.2017

      Это не программа, а плагин

  • Мария

    30.10.2017

    Странным образом записывается код картинок:

    Хотелось бы видеть такой код:

    В чем может быть причина? Как исправить? Или это теперь у всех так?

    WordPress 4.8.2 с WC.3.2.1 и темой оформления Storefront.2.2.5

    • Артем

      06.11.2017

      Это нормальный код, так картинки масштабируются на мобилках

      • Мария

        07.11.2017

        Опытным путем удалось выяснить, что это Jetpack дает такую «бяку». Как вы оцениваете необходимость его присутствия для сайта?

  • Андрей

    10.11.2017

    Привет!!! Коллеги, нужна срочно помощь по Ву!!! Обновился, теперь отсутствует вкладка «оплата при доставке» (наложенный платеж) https://prnt.sc/h8ov6v Запускал настройщик по новой, там ставил галку. НО В НАСТРОЙКАХ ЭТОГО НЕТ!!!ПОМОГИТЕ!!!!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *
php js HTML CSS Code

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

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

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

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