Как разрешить загрузку с нужным расширением файла docx

Автор Тема: Как разрешить загрузку с нужным расширением файла docx  (Прочитано 1625 раз)

Оффлайн maxim558Автор темы

  • Бизнес оценка: (0)
  • Постоялец
  • ***
  • СПАСИБО: 41
  • Сообщений: 152
  • Карма: 2
  • Пол: Мужской
    • Блог вебмастера, Wordpress

Оффлайн maxim558Автор темы

  • Постоялец
  • ***
Используется бесплатный плагин "Заказать в один клик для WooCommerce". При оформлении заказа есть поле для возможности покупателем прикрепить файл (скриншот), например загрузить реквизиты. Этот файл прикрепляется к заказу и ссылка на него указывается в заказах и письме.

Проблема в том, что прикрепляются не все файлы. Например, прикрепляются jpg, doc, pdf. А вот docx, xls, xlsx уже не загружаются (не прикрепляются).

Обратился к разработчику, на что он ответил, что чтобы включить поддержку всех типов файлов нужно использовать хуки:

  • coderun_oneclickwoo_file_valid_extension - позволит добавить нужное расширение файла;
  • coderun_oneclickwoo_file_valid_mime_types - позволит добавить нужный mime тип файла.

С mime типом файла, вроде, как понятно, в интернете много решений для разрешения загрузки разных типов файлов. Получается вроде того:

Код:
Только зарегистрированные пользователи могут видеть код. Пожалуйста, войдите или зарегистрируйтесь.
А вот, что делать с coderun_oneclickwoo_file_valid_extension непонятно. Что за "нужное расширение файла"? Пытался гуглить, но выдает информацию только по mime-типам.


Оффлайн Val_Ery

  • Бизнес оценка: (0)
  • Старожил
  • ****
  • СПАСИБО: 156
  • Сообщений: 270
  • Карма: 31

Оффлайн Val_Ery

  • Старожил
  • ****
maxim558,
В плагине buy-one-click-woocommerce есть функция check_restriction (см. loadfile.php плагина, строка 123), в которой загружаемые файлы проходят некую проверку. Например, строка 137 - get_valid_extension - проверка расширения файла, а строка 145 - get_valid_mime_types - проверка mime типа.

Дальше, ищите по каталогу плагина функцию get_valid_extension. Она описана в том же файле, строка 163
Код:
Только зарегистрированные пользователи могут видеть код. Пожалуйста, войдите или зарегистрируйтесь.
Вот они, разрешенные для использования в этом плагине расширения! Добавляете свои...

Функция get_valid_mime_types. Также поиском находите, что описана она на строке 169 файла loadfile.php
Код:
Только зарегистрированные пользователи могут видеть код. Пожалуйста, войдите или зарегистрируйтесь.
Здесь перечислен весь список mime-типов, который авторы плагина смогли составить :) Обратите внимание на строку application/vnd.openxmlformats-officedocument.wordprocessingml.document - это и есть ваш docx.

По итогу...
Mime тип для docx в плагине уже прописан. Вам остается только добавить соответствующее расширение (extension) в массив (см. первый код). Ну, или можете через apply_filter добавлять docx...

Еще. Здесь - https://www.freeformatter.com/mime-types-list.html - список mime типов, вдруг понадобиться

Оффлайн maxim558Автор темы

  • Бизнес оценка: (0)
  • Постоялец
  • ***
  • СПАСИБО: 41
  • Сообщений: 152
  • Карма: 2
  • Пол: Мужской
    • Блог вебмастера, Wordpress

Оффлайн maxim558Автор темы

  • Постоялец
  • ***
Дальше, ищите по каталогу плагина функцию get_valid_extension. Она описана в том же файле, строка 163
Код:
Только зарегистрированные пользователи могут видеть код. Пожалуйста, войдите или зарегистрируйтесь.

Спасибо за помощь.
Как раз и сам разработчик ответил. Не хватало вот этого:

Код:
Только зарегистрированные пользователи могут видеть код. Пожалуйста, войдите или зарегистрируйтесь.


 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
1482 Просмотров
Последний ответ 11-05-2012, 07:03:26
от vadimcucherencko
4 Ответов
2299 Просмотров
Последний ответ 15-03-2014, 23:24:41
от budavnik
0 Ответов
595 Просмотров
Последний ответ 18-12-2014, 15:32:18
от Вадим Костин
2 Ответов
584 Просмотров
Последний ответ 13-03-2015, 09:02:03
от Надежда vk
9 Ответов
2512 Просмотров
Последний ответ 27-10-2015, 09:44:33
от Sorokin Vladimir