Как настроить возможность перетаскивания файлов в область кнопки в Contact Form7?

Как настроить кнопку для возможности перетаскивания файлов, в дополнение к возможности добавления их кликом?
  • 15 июля 2024 г. 12:32
Ответы на вопрос 2
Для добавления функциональности перетаскивания файлов в область кнопки в Contact Form7, вам необходимо внести изменения в код вашей формы.

1. Добавьте следующий скрипт в файл functions.php вашей темы или в файле functions.php плагина:
```php
add_action('wp_footer', 'add_dragdrop_script');
function add_dragdrop_script(){
?>
<script>
document.addEventListener('DOMContentLoaded', function() {
  var dropArea = document.querySelector('.file-drop-area');
  ['dragover', 'dragenter', 'dragleave', 'drop'].forEach(eventName => {
    dropArea.addEventListener(eventName, preventDefaults, false);
  });
  function preventDefaults (e) {
    e.preventDefault();
    e.stopPropagation();
  }
  ['dragover', 'dragenter'].forEach(eventName => {
    dropArea.addEventListener(eventName, highlight, false);
  });
  ['dragleave', 'drop'].forEach(eventName => {
    dropArea.addEventListener(eventName, unhighlight, false);
  });
  function highlight(e) {
    dropArea.classList.add('highlight');
  }
  function unhighlight(e) {
    dropArea.classList.remove('highlight');
  }
  dropArea.addEventListener('drop', handleDrop, false);
  function handleDrop(e) {
    var dt = e.dataTransfer;
    var files = dt.files;
    handleFiles(files);
  }
  function handleFiles(files) {
    files = [...files];
    files.forEach(uploadFile);
  }
  function uploadFile(file) {
    // Загрузка файла на сервер
    var fd = new FormData();
    fd.append('file', file);
    // Не забудьте указать правильный путь к обработчику формы
    fetch('обработчик.php', {
      method: 'POST',
      body: fd
    });
  }
});
</script>
<?php
}
```

2. Замените 'обработчик.php' на путь к обработчику формы Contact Form7, который будет обрабатывать загруженные файлы.

3. В вашей форме Contact Form7 добавьте следующий HTML код:
```html
[file file-903 limit:2mb filetypes:png|jpg] 
<div class="file-drop-area">
  <span class="file-msg">Перетащите сюда файлы</span>
</div>
```
Замените `[file file-903 limit:2mb filetypes:png|jpg]` на ваши настройки добавления файла в форме.

После выполнения этих шагов, пользователи смогут перетаскивать файлы в область кнопки на вашей форме Contact Form7, чтобы добавить их к форме.
Похожие вопросы