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

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

11.06.2021

326

При создании сети (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.

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

  • Похожие записи
  • Комментарии
  • Вложения
Апселлы и кросселы

Апселлы и кросселы

У Woocommerce есть функционал Апселлы (аналоги) и Кросселы (сопутствующие). Апселлы Апселлы — лучшие товары которые вы бы рекомендовали в замен данному. К примеру, товары которые лучше по качеству или каким-то Читать далее »

Быстрый просмотр товара без плагина

Быстрый просмотр товара без плагина

В одной из предыдущих статей мы научились вызывать ajax’ом содержимое записи. Теперь настроим и доработаем данный функционал для товаров woocommerce. Создание функционала Техническая часть (скрипты, стили) остается той же что Читать далее »

Отзывы к товарам

Отзывы к товарам

Рассмотрим различные аспекты такого функционала WC как отзывы к товарам. Изображения в отзывах Плагин YITH WooCommerce Advanced Reviews (6000) добавляет в комментарии поле изображение (можно добавлять несколько) и заголовок. Также Читать далее »

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

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

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