Как в одном товаре WooCommerce сделать несколько файлов для разных людей?
Здравствуйте. Суть вопроса заключается в том, что когда покупатель оплачивает товар на WooCommerce, то ему сразу отправляются все файлы, которые прикреплены к товару, а как сделать так, чтоб отправлялся только один из прикрепленных файлов к товару? Либо же есть какой-то плагин, который отдельно загружает и выдает файлы из своей базы по одному?
P.S. Удалять мне его не обязательно, просто чтоб была простейшая система, которая есть абсолютно везде, но видимо WooComerce это обошло стороной...
Дополнительно:
Сперва логику придумай = как WC будет определять какой файл кому отправлять?
И где "везде" есть?
Как это работает в абсолютно во всех магазинах, кроме замечательного WC...
Добавляется на один товар несколько файлов и покупателю за одну купленную единицу товара отправляется одна единица товара, при том что каждая единица уникальная, а та что уже продана не используется в базе.
Ответы:
Сейчас уже не вспомню точно название, но ищите плагин цифровые товары для WooCommerce
Все что я нашел, это возможность продажи уникальных лицензионных ключей, но это немного не то что нужно.
Для кого-то возможно будет полезно "License Manager for WooCommerce", кто продает ключи к играм. Мне же нужен подобный аналог только для файлов
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Стандартный цифровой товар WooCommerce прикрепляет файлы к товару, а не к конкретному покупателю. Поэтому после оплаты клиент видит все downloadable files, которые назначены этому товару. Если нужно выдавать каждому покупателю только один файл из набора, нужна отдельная логика распределения.
Варианты:
Самый простой путь без кода — вариативный товар. Каждая вариация имеет свой файл, покупатель выбирает нужный вариант, WooCommerce отдаёт только файл этой вариации.
Если файл должен выдаваться случайно или по очереди после оплаты, нужен код. Логика: при создании/оплате заказа выбираем свободный файл, записываем его в order meta, помечаем как выданный и показываем только его.
Пример концепции:
add_action('woocommerce_order_status_completed', function ($order_id) { $order = wc_get_order($order_id); // выбрать свободный файл из своей таблицы/опции // сохранить file_id в meta заказа $order->update_meta_data('_assigned_download_file', $file_id); $order->save(); });
Но перехватить стандартный список downloadable files WooCommerce нужно аккуратно через фильтры, иначе клиент всё равно увидит файлы товара.
Если речь о ключах, лицензиях, уникальных PDF или архивах, лучше использовать плагины license manager/download manager, где уже есть выдача уникальных файлов/ключей и учёт использованных значений.
Итог: стандартный WooCommerce не умеет “один случайный файл из набора каждому покупателю” из коробки. Без кода используйте вариации. Для автоматической раздачи нужен кастомный механизм назначения файла заказу.