WooCommerce: как установить лимит на загрузку файлов для товаров

Диагностика проблемы: почему важно ограничивать размер загружаемых файлов

В интернет-магазинах на WooCommerce часто используется возможность загрузки файлов покупателями (например, для печати, кастомизации товара или подтверждения документов). Без ограничения размера загружаемых файлов сервер может быстро исчерпать дисковое пространство, а также снизится производительность сайта из-за обработки больших файлов.

Основные признаки отсутствия лимита или слишком большого лимита:

  • Ошибка «HTTP 413 Request Entity Too Large» при загрузке файла
  • Медленная загрузка или подвисание при работе с файлами
  • Переполнение хранилища на сервере

Пошаговое решение: настройка лимита загрузки файлов в WooCommerce

1. Проверка текущих настроек PHP и WordPress

Первым делом проверьте параметры PHP, которые влияют на размер загружаемых файлов:

  • upload_max_filesize — максимальный размер загружаемого файла
  • post_max_size — максимальный размер POST-запроса
  • max_execution_time и max_input_time — время выполнения скрипта

Для проверки создайте файл phpinfo.php с содержимым:

<?php phpinfo(); ?>

Загрузите его на сервер и откройте в браузере. Найдите параметры upload_max_filesize и post_max_size. Значения должны быть не меньше желаемого лимита.

2. Установка лимита в WooCommerce с помощью фильтра

WooCommerce не имеет встроенного интерфейса для ограничения размера загружаемых файлов, но можно программно задать лимит через фильтр woocommerce_file_upload_max_size. Ниже пример, как ограничить размер файла до 5 МБ:

add_filter('woocommerce_file_upload_max_size', function() {
    return 5 * 1024 * 1024; // 5 МБ в байтах
});

Этот код добавьте в файл functions.php вашей дочерней темы или в плагин для кастомного кода.

3. Ограничение типов файлов

Для безопасности и снижения нагрузки полезно ограничивать не только размер, но и типы файлов. Например, разрешить только изображения и PDF:

add_filter('woocommerce_file_upload_mimes', function($mimes) {
    $allowed = [
        'jpg|jpeg|jpe' => 'image/jpeg',
        'png' => 'image/png',
        'gif' => 'image/gif',
        'pdf' => 'application/pdf',
    ];
    return $allowed;
});

Проверка результата после внедрения

Чтобы убедиться, что лимит работает:

  1. Перейдите на страницу товара с загрузкой файла
  2. Попробуйте загрузить файл, размер которого превышает установленный лимит (например, 6 МБ, если лимит 5 МБ)
  3. Вы должны получить ошибку загрузки с соответствующим сообщением
  4. Загрузите файл, который меньше лимита — загрузка должна пройти успешно

Частые ошибки и как их исправить

Ошибка 413 Request Entity Too Large

Причина: сервер или PHP не разрешают загружать файлы такого размера.

Решение: увеличить upload_max_filesize и post_max_size в php.ini или через .htaccess:

php_value upload_max_filesize 10M
php_value post_max_size 10M

или в wp-config.php добавить:

@ini_set('upload_max_filesize', '10M');
@ini_set('post_max_size', '10M');

Лимит не применяется

Причина: код с фильтрами не добавлен или кеширование мешает обновлению.

Решение: проверьте, что код добавлен правильно, очистите кеш сайта и браузера.

Пользователь загружает запрещённый тип файла

Причина: фильтр woocommerce_file_upload_mimes не настроен или конфликт с плагинами.

Решение: добавьте фильтр с разрешёнными типами и проверьте конфликты плагинов.

Практические советы по безопасности и производительности

  • Ограничьте типы файлов. Не позволяйте загружать исполняемые файлы (.php, .js и пр.), чтобы избежать взлома.
  • Обрабатывайте файлы асинхронно. Для больших файлов используйте AJAX-загрузку, чтобы не блокировать интерфейс.
  • Очистка временных файлов. Регулярно удаляйте временные и неиспользуемые файлы, чтобы не переполнять диск.
  • Используйте CDN для хранения файлов. Если размер файлов большой, рассмотрите хранение загружаемых файлов на внешних сервисах (Amazon S3, Google Cloud и др.)
  • Ограничивайте количество загрузок. В WooCommerce можно программно ограничить число попыток загрузки на пользователя для защиты от спама.

Сравнение способов ограничения загрузок в WooCommerce

МетодОписаниеПлюсыМинусы
PHP-настройкиУстанавливает максимальный размер на уровне сервераГлобальный контроль, простотаМожет быть ограничено хостингом, не гибко для разных типов файлов
Фильтр woocommerce_file_upload_max_sizeОграничение размера на уровне WooCommerceГибкость, можно менять для разных условийТребует программирования, не всегда блокирует на уровне сервера
Плагины безопасности и оптимизацииДополнительные настройки и защитаБыстрая настройка, дополнительно улучшает безопасностьНагрузка, потенциальные конфликты, лицензии
WooCommerce: автоматическое изменение стоимости товара при смене вариации
22.05.2026
Как использовать WPCommunity для создания социальной сети на WordPress
29.01.2026
Как удалить или изменить связанные товары в WooCommerce без плагинов
02.05.2026
Как отключить загрузку шрифтов в WordPress для ускорения сайта
18.01.2026
Как использовать WPRemark для автоматизации отзывов в WordPress
15.03.2026