Как в одном товаре WooCommerce сделать несколько файлов для разных людей?

Ссылка скопирована
1 ответ

Здравствуйте. Суть вопроса заключается в том, что когда покупатель оплачивает товар на WooCommerce, то ему сразу отправляются все файлы, которые прикреплены к товару, а как сделать так, чтоб отправлялся только один из прикрепленных файлов к товару? Либо же есть какой-то плагин, который отдельно загружает и выдает файлы из своей базы по одному?

P.S. Удалять мне его не обязательно, просто чтоб была простейшая система, которая есть абсолютно везде, но видимо WooComerce это обошло стороной...

Дополнительно:

Сперва логику придумай = как WC будет определять какой файл кому отправлять?
И где "везде" есть?

  • Refguser, Какую логику надо придумать... Великолепные ответы :D

    Как это работает в абсолютно во всех магазинах, кроме замечательного WC...
    Добавляется на один товар несколько файлов и покупателю за одну купленную единицу товара отправляется одна единица товара, при том что каждая единица уникальная, а та что уже продана не используется в базе.

  • NikoRiedel, ну раз ты не понимаешь что такое логика работы и не можешь показать "все", то удачи.
  • Ответы:

    Сейчас уже не вспомню точно название, но ищите плагин цифровые товары для WooCommerce

    Все что я нашел, это возможность продажи уникальных лицензионных ключей, но это немного не то что нужно.
    Для кого-то возможно будет полезно "License Manager for WooCommerce", кто продает ключи к играм. Мне же нужен подобный аналог только для файлов

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Дмитрий К. Ответ

    Стандартный цифровой товар WooCommerce прикрепляет файлы к товару, а не к конкретному покупателю. Поэтому после оплаты клиент видит все downloadable files, которые назначены этому товару. Если нужно выдавать каждому покупателю только один файл из набора, нужна отдельная логика распределения.

    Варианты:

    • создать отдельные вариации товара, и к каждой вариации прикрепить свой файл;
    • создать отдельные товары для каждого файла;
    • после оплаты программно назначать заказу один файл;
    • использовать license/download manager-плагин;
    • сделать кастомную таблицу “файл → выдан/не выдан”.

    Самый простой путь без кода — вариативный товар. Каждая вариация имеет свой файл, покупатель выбирает нужный вариант, 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();
    });

    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 не умеет “один случайный файл из набора каждому покупателю” из коробки. Без кода используйте вариации. Для автоматической раздачи нужен кастомный механизм назначения файла заказу.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно