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

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

11.06.2021

755

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

Исчезающие сообщения woocommerce

У woocommerce есть встроенная система сообщений: при добавлении товара в корзину, при удалении товара из корзины, при различных ошибках. Но они появляются перед основным контентом, нарушая исходную верстку. Сделаем их Читать далее »

WooCommerce and 1C:Enterprise

WooCommerce and 1C:Enterprise

Разбираем на элементы плагин WooCommerce and 1C:Enterprise/1С:Предприятие Data Exchange. Плагин дает функционал обмена данными между сайтом и программой 1С: Предприятие. Некоторые моменты синхронизации сайта с 1С описаны в статье Интеграция Читать далее »

Купон на следующий заказ

Купон на следующий заказ

Проработаем функционал по отправке купона на следующий заказ. Дополнительные условия: Купон должен отправлять только при наличии в текущем заказе товара из определенной категории Номинал купона либо 30% если сумма следующей Читать далее »

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

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

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