Как разрешить загрузку больших файлов в WooCommerce: практическое руководство

Диагностика проблемы ограничения загрузки файлов в WooCommerce

В WooCommerce при работе с цифровыми товарами часто возникает необходимость загружать большие файлы (например, видео, архивы, программы). Однако стандартные настройки PHP и WordPress ограничивают максимальный размер загружаемых файлов, что вызывает ошибки типа "Размер файла превышает максимально допустимый" или "HTTP ошибка" при попытке загрузить файл через админ-панель.

Для диагностики текущих лимитов загрузки можно выполнить следующие действия:

  • Перейти в Консоль – Медиафайлы – Добавить новый и попытаться загрузить файл нужного размера.
  • Проверить значения upload_max_filesize, post_max_size и max_execution_time в PHP через phpinfo() или плагины типа Health Check.
  • В админке WooCommerce проверить настройки цифровых товаров: WooCommerce – Настройки – Товары – Загрузка файлов.

Если лимит установлен ниже необходимого, загрузка больших файлов невозможна.

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

1. Изменение настроек PHP

Основные параметры, влияющие на загрузку файлов:

  • upload_max_filesize: максимальный размер загружаемого файла;
  • post_max_size: максимальный размер данных POST-запроса (должен быть больше upload_max_filesize);
  • max_execution_time: максимальное время выполнения скрипта;
  • memory_limit: ограничение памяти на выполнение скрипта;

Для изменения этих параметров добавьте или отредактируйте файл php.ini в корне сервера или подкаталоге сайта:

upload_max_filesize = 128M
post_max_size = 130M
max_execution_time = 300
memory_limit = 256M

Если доступа к php.ini нет, можно попробовать изменить эти параметры через .htaccess (для Apache):

php_value upload_max_filesize 128M
php_value post_max_size 130M
php_value max_execution_time 300
php_value memory_limit 256M

2. Настройка WordPress

В wp-config.php можно задать лимит загрузки файлов с помощью константы:

define('WP_MEMORY_LIMIT', '256M');

Также убедитесь, что в functions.php вашей темы или в отдельном плагине нет ограничений на загрузку, например:

@ini_set('upload_max_size' , '128M');
@ini_set('post_max_size', '130M');
@ini_set('max_execution_time', '300');

3. Настройка WooCommerce

В WooCommerce проверьте настройки цифровых товаров:

  1. Перейдите в WooCommerce – Настройки – Товары – Загрузка файлов.
  2. Проверьте параметр "Максимальный размер файла для загрузки". Если он установлен, увеличьте его до необходимого значения.

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

После внесения изменений выполните следующие проверки:

  1. Перезагрузите сервер (если возможно) или выполните phpinfo() для подтверждения новых значений upload_max_filesize и post_max_size.
  2. Попробуйте загрузить файл нужного размера через Медиафайлы – Добавить новый и через интерфейс загрузки цифрового товара в WooCommerce.
  3. Проверьте, что файл успешно загружается без ошибок.

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

  • Изменения не применились: сервер использует другой php.ini или конфигурация перезаписывается. Проверьте, какой php.ini активен через phpinfo(), и редактируйте именно его.
  • Ошибка HTTP при загрузке: возможно, max_execution_time слишком мал, или серверный модуль безопасности блокирует запрос. Увеличьте время выполнения и проверьте логи сервера.
  • Ограничение в WooCommerce не снимается: проверьте, не установлен ли лимит через код в functions.php или плагинах, например, с помощью хуков upload_size_limit.

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

  • Не устанавливайте слишком большие значения upload_max_filesize без необходимости — это может создавать нагрузку на сервер.
  • Ограничьте типы файлов для загрузки в WooCommerce через фильтр woocommerce_file_upload_mimes:
add_filter('woocommerce_file_upload_mimes', function($mimes) {
    $mimes = array(
        'pdf' => 'application/pdf',
        'zip' => 'application/zip',
        'mp4' => 'video/mp4'
    );
    return $mimes;
});
  • Используйте CDN и внешние хранилища (например, Amazon S3) для хранения больших файлов, чтобы снизить нагрузку на сервер.
  • Настройте регулярное удаление временных файлов и кэширование для оптимизации сайта.

Сравнение вариантов решения проблемы загрузки больших файлов в WooCommerce

МетодПлюсыМинусыКогда применять
Изменение php.ini / .htaccessПолный контроль, работает для всего сайтаТребует доступа к серверу, может быть запрещено хостингомКогда есть доступ к серверным файлам
Правки в wp-config.php и functions.phpПростая настройка, доступна на любом хостингеНе всегда полностью снимает ограничения PHPПри ограниченном доступе к серверу
Настройки WooCommerceУдобно, не требует кодаОграничено настройками плагинаДля контроля загрузок цифровых товаров
Использование внешних хранилищ (CDN, S3)Снижает нагрузку, масштабируемоДополнительные затраты и настройкаДля крупных проектов с большим трафиком
Как отключить Emoji в WordPress для ускорения сайта
21.01.2026
Как использовать хук pre_get_posts для отображения категорий в WooCommerce
26.05.2026
Как использовать PHPMailer в WordPress для отправки писем
04.03.2026
Как изменить функциональность формы регистрации WordPress без плагинов
16.12.2025
Как избежать проблем с блокировкой базы данных в WordPress
26.02.2026