/ Плагины / Общая библиотека мультисети

Общая библиотека мультисети

11.06.2021

551

При создании сети (multisite) сайтов возникла проблема с медиабиблиотекой. Проблема состояла в том что главный сайт уже долгое время функционирует, на нем более 500 товаров с несколькими изображениями в каждом. И если пользоваться решением по копированию товаров (контента) с главного сайта на дочерние, при этом создаются и копии всех изображений. Для копирования товаров использовался платный плагин WooCommerce Multisite Product Sync.

Объединение медиабиблиотеки

Создать одну общую библиотеку для всей сети сайтов можно плагином Network Media Library. Его нет в репозитории Woocommerce, но плагин 100% рабочий. Из «настроек» (в самом коде) нужно прописать какой сайт будет считаться главным, с того сайта можно будет удалять и загружать изображения, на остальных сайтах только пользоваться. По умолчанию прописан сайт с ID=2, но главный первый сайт имеет ID=1.

Изменяем WooCommerce Multisite Product Sync (WCMPS)

При создании сети из готового сайта у данного плагина есть инструмент по массовому копированию товаров в дочерние сайты. При этом в частности и происходит копирование медифайлов, в независимости подключили мы плагин Network Media Library или нет (он только создает возможность использовать совместную галерею).

Для категорий и товаров в дочерние сайты можно передавать в виде миниатюры тот же ID что и донорского товара или категории, т.к. он будет доступен для любого сайта сати. Для этого нужно изменить плагин WCMPS, конкретно файл /includes/class-wcmps.php.

Корректировка обновления изображений товаров: строка 472, удаляем условие if ( $copy_media ) и вместо него прописываем

update_post_meta( $destination_item_id, '_thumbnail_id', $thumbnail_id );

Корректировка обновления изображений категорий: строка 672, внутри условия if ( $thumbnail_data != null ) { удаляем все и прописываем:

update_term_meta( $destination_item_id, 'thumbnail_id', $thumbnail_id );

Передача дополнительных фото. Нужно добавить в условие foreach ( $postmeta_fields as $field_key => $field_value ) { (примерно строка 351) следующее:

if ( $_product_image_gallery != null ) {
	// добавление дополнительных изображений
	update_post_meta( $destination_item_id, '_product_image_gallery', $_product_image_gallery );
}

И самое главное, если не нужно копировать изображения по сети — нужно убрать везде код в котором фигурирует функция upload.

Поделиться в соц. сетях:

  • Похожие записи
  • Комментарии
  • Вложения
Upgrade WC

Upgrade WC

Очередная серия улучшений (upgrade) плагина WC. Буду добавлять по мере изучения новые решения. Поиск по SKU (артикулу) Из коробки WC не ищет по артикулам (SKU). Но достаточно установить плагин Search Читать далее »

/
Фильтр по наличию

Фильтр по наличию

Оказывается в последних версиях Woocommerce есть встроенная функция фильтрации по наличию. Через добавление в url параметра filter_stock_status. Можно её использовать для создания фильтра: Функция вывода списка: Функция с условиями вывода Читать далее »

Технология акций на Woocommerce

Технология акций на Woocommerce

В одном из постов я анализировал плагины для создания массовых скидок (акций). В процессе этого мною был выработан довольно универсальный алгоритм создания акций. Переделка плагина Woo Product Category Discount Woo Читать далее »

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

Пока нет комментариев. Будь первым!

Общая библиотека мультисети
Сравнение товаров (Compare)
Рекомендации для васСравнение товаров (Compare)Opttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.