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

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

11.06.2021

802

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

[site-socialshare]
  • Похожие записи
  • Комментарии
  • Вложения
Отключить кнопку Купить (чекбокс)

Отключить кнопку Купить (чекбокс)

Сделаем возможность у некоторых товаров отключать кнопку купить. Добавляем поле (чекбокс) Скрываем кнопку Добавить в корзину в карточке товара Изменяем кнопку В корзину в категориях Тут не получится отключить хуком, Читать далее »

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

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

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

Новинка (товар NEW полем)

Новинка (товар NEW полем)

Ранее были рассмотрены варианты добавления лэйбла New полуавтоматическим способом (последние созданные товары, либо по времени от текущего), либо назначением метки NEW. Здесь разберем как сделать данный функционал полем и какие Читать далее »

/

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

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

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