Оптимизация WooCommerce путём переноса заказов в отдельную таблицу

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

Бэкграунд

В WooCommerce 3.0 появился долгожданный CRUD (Create, Read, Update и Delete) интерфейс, благодаря которому появилась возможность унифицировать способ хранения и получения данных WooCommerce.

Однако заказы по-прежнему хранятся в WordPress как пользовательские типы записей, причем каждая дополнительная часть информации о заказе (адрес выставления счета, адрес доставки, налоги, итоги и т. д.) хранится в мета записях.

Не секрет, что WooCommerce создает более 40 отдельных мета записей для каждого отдельного заказа. Если у вашего магазина в день появляется хотя бы 10 заказов, то в таблице мета записей создаётся 400 новых строк каждый день!

Чем больше таблица мета записей, тем дольше будут выполняться запросы, что потенциально замедляет время загрузки страницы для вас и ваших посетителей.

Плагин WooCommerce Custom Orders Table использует WooCommerce CRUD для сохранения данных о заказе в единую произвольную таблицу, оптимизированную для запросов WooCommerce.

Один заказ создает только одну новую строку с минимальным влиянием на производительность.

Требования

Для правильной работы WooCommerce Custom Orders Table необходим WooCommerce 3.5.1 или выше.

Если вы хотите перенести существующие данные о заказах, у вас должна быть возможность запускать команды WP-CLI в вашей среде WooCommerce.

Миграция

После установки и активации плагина вам нужно будет перенести заказы из мета записей во вновь созданную таблицу заказов.

Самый простой способ сделать это – через WP-CLI. Плагин поставляется с тремя командами, которые помогут вам в этом процессе.

Подсчёт количества заказов для миграции

Если вы хотите увидеть количество заказов, которые еще не были перемещены в новую таблицу заказов, вы можете быстро получить это значение с помощью команды count:

wp wc orders-table count

Миграция заказов в новую таблицу

Команда migrate перенесёт наиболее распространенные мета записи для заказов WooCommerce в единую таблицу базы данных, оптимизированную для производительности вашего магазина.

wp wc orders-table migrate

Опции

--batch-size=<размер> – количество заказов, которое обрабатывается за одну итерацию. По умолчанию 100.

--save-post-meta – предотвращает удаление мета записей из таблицы wp_postmeta при успешной миграции в новую таблицу.

Копирование заказов обратно в мета записи

Если вам потребуется вернуть данные о заказах обратно в таблицу wp_postmeta (например при удаление плагина WooCommerce Custom Orders Table), вы можете откатить миграцию в любое время с помощью команды backfill.

wp wc orders-table backfill

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

Опции

--batch-size=<размер> – количество заказов, которое обрабатывается за одну итерацию. По умолчанию 100.

Сотрудничество

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

Источник: https://www.kobzarev.com/wordpress/woocommerce-custom-orders-table/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

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

%d такие блоггеры, как: