Как можно добавить дополнительное поле для скачиваемого файла Woocommerce?
Здравствуйте. Возник такой вопрос, как можно добавить дополнительное поле для скачиваемого файла Woocommerce? В интернете к сожалению почему то не смог найти ни решение, ни какого то плагина для этого. Может кто то раньше сталкивался с такой задачей? Отправляю скрин куда нужно добавить кастомное поле
Дополнительно:
Произвольные поля. И мануалов и самых разных плагинов (от общего применения до конкретно для woo) - пруд пруди.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

В WooCommerce скачиваемые файлы товара хранятся в meta-поле
_downloadable_filesкак массив. Добавить дополнительное поле именно к каждой строке скачиваемого файла можно, но это уже не “галочка в настройках”, а кастомизация админки товара и сохранения данных.Самый устойчивый вариант — хранить дополнительные данные в отдельном meta-поле товара, привязывая их к ID файла загрузки. Например, WooCommerce у каждого download имеет ключ, и по нему можно сохранить описание, версию, язык, лицензию или другой параметр.
Пример логики сохранения:
add_action('woocommerce_admin_process_product_object', function ($product) { if (empty($_POST['my_download_extra']) || !is_array($_POST['my_download_extra'])) { return; } $clean = []; foreach ($_POST['my_download_extra'] as $download_id => $value) { $clean[sanitize_text_field($download_id)] = sanitize_text_field($value); } $product->update_meta_data('_my_download_extra', $clean); });
Сложность в том, что поле нужно ещё аккуратно вывести в админке рядом с каждой строкой файла. Для этого обычно добавляют JS в экран редактирования товара или используют хуки WooCommerce, если нужная версия их поддерживает.
Если задача проще — добавить общее поле к товару, не к каждому файлу, сделайте обычный product meta box или вкладку. Если поле должно влиять на доступ к скачиванию или выводиться покупателю, обязательно учитывайте права пользователя и не отдавайте закрытые данные напрямую через шаблон.