Web разработка > WordPress

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

(1/1)

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:
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:

--- Цитата: Val_Ery от 10-05-2021, 21:49:48 ---Дальше, ищите по каталогу плагина функцию get_valid_extension. Она описана в том же файле, строка 163

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

--- Конец цитаты ---

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


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

Навигация

[0] Главная страница сообщений

Перейти к полной версии