WordPress как на ладони

Как через форму загрузить файл и отправить на почту?

Здравствуйте все!

Возникла проблемка, т.к. я не владею программированием. К делу:

Есть форма на сайте:

<tr>
<td colspan="2" align="center">
<p><input style="color:#05ff0a;" type="file" title="Загрузите документ" name="documents" accept="image/jpeg, application/pdf"><br>
<span style="font-size: 12px; color: gray;">Возможно ....<br>
....</span></p>
</td>
</tr>

как прикрепить файл и его отправить на почту?

Частичный код PHP:

if (isset($_POST['documents'])) {$documents = $_POST['documents'];}

if(isset($submit)):

$filename = trim(html_filter($file_name));
/* Сюда впишите свою эл. почту */
$address = "dkp_noreply@lbolimp.ru";

/* А здесь прописывается текст сообщения, \n - перенос строки */
$mes = "Данные продавца \n\nФамилия, имя, отчество: $nameSeller \nДата рождения: $dateSeller \nПАСПОРТ: \nСерия: $nameSellerPS \nНомер: $nameSellerPN \nКем выдан: $nameSellerPI \nКод подразделения: $nameSellerPU \nДата выдачи: $dateSellerPI\n Адрес регистрации: $nameSellerAR\n\nДАННЫЕ ПОКУПАТЕЛЯ \n\nФамилия, имя, отчество: $nameBuyer \nДата рождения: $dateBuyer \nПАСПОРТ: \nСерия: $nameBuyerPS \nНомер: $nameBuyerPN \nКем выдан: $nameBuyerPI \nКод подразделения: $nameBuyerPU \nдата выдачи: $dateBuyerPI \nАдрес регистрации: $nameBuyerAR \n\nДАННЫЕ из ПТС \n\nПаспорт Транспортного Средства: \nсерия: $namePOtVS \nномер: $namePOtVN \nНаименование организации, выдавшей паспорт: $namePOtVOIP \nАдрес: $namePOtVAOIP \nДата выдачи паспорта: $datePOtV \n\nДАННЫЕ СТС \n\nСвидетельство о регистрации ТС: \nсерия: $nameRegCertS \nномер: $nameRegCertN \nРегистрационный знак: $nameRegCertRS \nИдентификационный номер (VIN): $nameRegCertVIN \nМарка, модель: $nameRegCertMM \nТип ТС: $nameRegCertTV \nКатегория ТС (ABCD, прицеп): $nameRegCertCV \nГод выпуска ТС: $nameRegCertYV\nМодель двигателя: $nameRegCertME \nДвигатель №:$nameRegCertNE \nШасси (рама) №:$nameRegCertCE \nКузов (коляска) №: $nameRegCertBN \nЦвет: $nameRegCertC \nМощность двигателя, кВт/л.с.: $nameRegCertPE \nРабочий объём двигателя, см3: $nameRegCertJVE \nРазрешённая max масса, кг: $nameRegCertMaxW \nМасса без нагрузки, кг: $nameRegCertRegCertMaxWL \nПаспорт ТС: \nсерия: $namePOtVS1 \nномер: $namePOtVN1 \n\nДАННЫЕ О ПЛАТЕЛЬЩИКЕ \n\nВаша фамилия: $nameDatPSurname \nВаше имя: $nameDatPName \nВаше отчество: $nameDatPMN \nЭл. почта: $email \nКонтактный телефон: $tel \nВаш заказ: $TCoSC \nКомментарий: $body \nДокумент: $documents";

/* А эта функция как раз занимается отправкой письма на указанный вами email */

//Если прикреплен файл
if($filename!="" and $file_size>0):
if(XMail($address,$TCoSC,$mes,$documents,$file)==1){header("Location:?send=ok");}
endif;
//Если Не прикреплен файл
if($filename=="" or $file_size==0):
if(EMail($address,$TCoSC,$mes)==1){header("Location:?send=ok");}
endif;
if ($send == 'true')
{
echo $a = "<br>\nТакже Вы можете воспользоваться ..... \n<br>\n<br>\n<a href='http://.....ru/usluga/.....><img src='http://.......ru/feedbackmess/image/....online(500x221).png' border=0 title='Перейти'></a><br>\n<br>\nСообщение успешно отправлено.<br><br>\nВы будете перенаправлены на форму оплаты в течении 10 секунд.<br>\n<br>\nЕсли не хотите ждать, <a href='http://......ru/...../'>нажмите на эту ссылку</a> чтобы перейти к оплате сразу.";
}
else
{
echo $a = "<a href='http:/..../feedback>'><img src='http://.../feedbackmess/image/...jpg' border=0 title='Перейти'></a><br>\nК большому разочарованию, Ваше сообщение не отправлено.<BR> По всей видимости вы что-то, где-то не указали в форме, <br>\nи Вы будете перенаправлены обратно в течении 10 секунд. <br>\nНо вы можете не ждать и самостоятельно вернуться обратно<br>\n Просто нажмите <a href=http://..../feedback>сюда</a>";
}

 

0
Гость
9.1 год назад
  • 0
    campusboy4742 www.youtube.com/c/wpplus

    Если это делается на базе WP, а мы тут именно этот движок рассматриваем, то советую поставить плагин Contact Form 7, в нем Вы это реализуете в считанные минуты.

    Комментировать
  • 0
    Kama9602

    Вам вместо функции XMail (да и вместо EMail) нужно использовать встроенную функцию WordPress wp_mail().

    Пример из описания, который как раз подходит под ваши нужды:

    // это
    if(XMail($address,$TCoSC,$mes,$documents,$file)==1){header("Location:?send=ok");}
    
    // заменяем на это
    
    // удалим фильтры, которые могут изменять заголовок $headers
    // remove_all_filters( 'wp_mail_from' );
    // remove_all_filters( 'wp_mail_from_name' );
    
    $files = array( $_FILES['file1']['file_name'] ); // путь к файлу который прикрепляем
    //$headers = 'From: My Name <myname@mydomain.com>' . "\r\n";
    
    // отправляем письмо
    $send = wp_mail( $address, $TCoSC, $mes, '', $files );
    
    if( $send ){
    	header("Location:?send=ok");
    }
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация