На моей домашней странице https://www.mamafrica.it/ У меня есть два модуля для foundraiser. Каждый из этих модулей содержит формы
Это упрощенный пример двух форм:
<form id="give-form-201" enctype="multipart/form-data" action="https://www.mamafrica.it/?payment-mode=xxxx" data-id="201" method="post">
<input class="give-input required" type="text" name="give_first" autocomplete="given-name" placeholder="Nome" id="give-first" value="" required="" aria-required="true">
<input class="give-input" type="text" name="give_last" autocomplete="family-name" id="give-last" placeholder="Cognome" value="">
</form>
и
<form id="give-form-201" enctype="multipart/form-data" action="https://www.mamafrica.it/?payment-mode=xxxx" data-id="201" method="post">
<input class="give-input required" type="text" name="give_first" autocomplete="given-name" placeholder="Nome" id="give-first" value="" required="" aria-required="true">
<input class="give-input" type="text" name="give_last" autocomplete="family-name" id="give-last" placeholder="Cognome" value="">
</form>
Все работает нормально, но я добавил новый способ оплаты офлайн ("Donazione con bonifico"). В этом случае донор должен добавить файлы с квитанцией о банковском переводе. Я добавляю эту строку в обе формы
<input id="fileToUpload" name="fileToUpload" type="file" accept=".pdf,.jpg">
Проблема в том, что отправка прикрепленного файла работает только с первой формой! Все остальные поля правильно отправляются и сохраняются в базе данных, но имя файла не сохраняется и не отправляется в моей области загрузки на моем сайте.
Я использую плагин givewp и у меня нет полного контроля над кодом , но проблема в этой части МОЕГО кода (в файле function.phè)
$ _FILES ['fileToUpload'] ['name'] всегда пуст во вторых формах.
function give_mamafrica_donations_save_custom_fields( $payment_id ) {
if (!empty($_FILES['fileToUpload']['name'])) {
$timestamp = time();
$userfile_name = $timestamp . "-" . $_FILES['fileToUpload']['name'];
//$message = wp_strip_all_tags( $_FILES['fileToUpload']['name'], true );
$message = wp_strip_all_tags($userfile_name, true );
give_update_payment_meta( $payment_id, 'fileToUpload', $message );
//percorso della cartella dove mettere i file caricati dagli utenti
$uploaddir = get_stylesheet_directory() . '/myuploadpath/';
//Recupero il percorso temporaneo del file
$userfile_tmp = $_FILES['fileToUpload']['tmp_name'];
//recupero il nome originale del file caricato
//copio il file dalla sua posizione temporanea alla mia cartella upload
if (move_uploaded_file($userfile_tmp, $uploaddir . $userfile_name)) {
//Se l'operazione è andata a buon fine...
echo 'File inviato con successo.';
}else{
//Se l'operazione è fallta...
echo 'Upload NON valido!';
}
}
}
add_action( 'give_insert_payment', 'give_mamafrica_donations_save_custom_fields' );
Я пытался использовать другой идентификатор / имя для входного файла
<input id="fileToUpload-201" name="fileToUpload-201" type="file" accept=".pdf,.jpg">
and
<input id="fileToUpload-202" name="fileToUpload-202" type="file" accept=".pdf,.jpg">
Но проблема остается (также я не могу изменить код плагина для обработки разных имен)
Вы можете мне помочь?
С уважением, Марко