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

wp_mail() WP 1.2.1

Отправляет письмо на почту. Похожа на mail() в PHP.

Имя отправителя по умолчанию: WordPress, а email по умолчанию: wordpress@yoursite.com. Их можно переписать изменив заголовок письма на:

From: Example User <email@example.com>

Функция использует фильтры wp_mail_from и wp_mail_from_name, которые влияют на адрес email'a и имя отправителя, соответственно. Поле "от кого" собирается заново. Если указан только параметр wp_mail_from (email), то имя указываться не будет вообще: (From: email@example.com)

Тип письма по умолчанию text/plain, а значит в теле письма нельзя использовать html теги. Изменить тип письма можно через фильтр wp_mail_content_type или указав заголовок: content-type: text/html.

Кодировка по умолчанию соответствует кодировке блога (обычно utf-8). Кодировка устанавливается через фильтр wp_mail_charset.

Это функция типа pluggable — её можно заменить из плагина. Это значит, что она будет работать только после подключения всех плагинов, до этого момента функция еще не определена... Поэтому нельзя вызывать эту и зависящие от нее функции прямо из кода плагина. Их нужно вызывать через хук plugins_loaded или позднее, например хук init.

Замена (переопределение) — в плагине можно создать функцию с таким же названием, тогда она заменит текущую фукнцию.

Используется в: wp_new_user_notification().
Хуки из функции:
Возвращает

true, если удалось отправить письмо и false, если нет.

true не означает, что письмо дошло до адресата, а означает только то, что функция проделала всю процедуру отправки письма без ошибок.

Использование

wp_mail( $to, $subject, $message, $headers, $attachments );
$to(строка/массив) (обязательный)
email получателя письма. Несколько получателей указываются в массиве или через запятую в строке.
По умолчанию: нет
$subject(строка) (обязательный)
Тема письма (заголовок).
По умолчанию: нет
$message(строка) (обязательный)
Тело письма (содержание, контент).
По умолчанию: нет
$headers(строка/массив)

Заголовки письма, указывающие на его атрибуты. Для продвинутого использования. Может быть:

  • from - от кого. Пр. webmaster@example.com
  • content-type - text/html, text/plain
  • cc - birthdayarchive@example.com
  • bcc - birthdaycheck@example.com
  • reply-to - FromEmail@example.com
  • и любые другие произвольные параметры.

По умолчанию: ''

$attachments(строка/массив)
Файлы, которые следует прикрепить к письму. Указываем полный путь до файла (название файла включительно). Если нужно прикрепить несколько файлов указываем их названия в массиве или в строке через перенос строки.
По умолчанию: ''

Примеры

#1. Пример отправки письма

Отправим письмо от My Name <myname@mydomain.com> с прикрепленным файлом attach.zip:

// удалим фильтры, которые могут изменять заголовок $headers
// remove_all_filters( 'wp_mail_from' );
// remove_all_filters( 'wp_mail_from_name' );

$attachments = array(WP_CONTENT_DIR . '/uploads/attach.zip');
$headers = 'From: My Name <myname@mydomain.com>' . "\r\n";

wp_mail('test@test.com', 'Тема', 'Содержание', $headers, $attachments);

// test@test.com - кому отправляем.

#2. Пример использования массива для указания заголовков письма:

// подразумевается что $to, $subject, $message уже определены...

// удалим фильтры, которые могут изменять заголовок $headers
// remove_all_filters( 'wp_mail_from' );
// remove_all_filters( 'wp_mail_from_name' );

$headers = array(
	'From: Me Myself <me@example.net>',
	'content-type: text/html',
	'Cc: John Q Codex <jqc@wordpress.org>',
	'Cc: iluvwp@wordpress.org', // тут можно использовать только простой email адрес
);

wp_mail( $to, $subject, $message, $headers );

#3. Отправим письмо двум пользователям сразу и зададим формат письма html:

$multiple_to_recipients = array(
	'recipient1@example.com',
	'recipient2@foo.example.com'
);

add_filter( 'wp_mail_content_type', 'set_html_content_type' );

wp_mail( $multiple_to_recipients, 'The subject', '<p>The <em>HTML</em> message</p>' );

// Сбросим content-type, чтобы избежать возможного конфликта
remove_filter( 'wp_mail_content_type', 'set_html_content_type' );

function set_html_content_type() {
	return 'text/html';
}

#4. Настройка параметров отправки через фильтры

#1 Этот пример показывает как изменить тип письма на html, используя фильтр wp_mail_content_type:
add_filter('wp_mail_content_type', create_function('', 'return "text/html";'));
wp_mail('me@example.net', 'The subject', '<p>The <em>HTML</em> message</p>');
#2 Укажем свой адрес email в заголовке письма:
add_filter( 'wp_mail_from', 'vortal_wp_mail_from' );
function vortal_wp_mail_from( $email_address ){
	return 'xxx@yyy.com';
}
// получим заголовок: WordPress <xxx@yyy.com>
#3 Укажем имя в заголовке письма:
add_filter( 'wp_mail_from_name', 'vortal_wp_mail_from_name' );
function vortal_wp_mail_from_name( $email_from ){
	return 'XXX';
}
// получим заголовок: XXX <wordpress@yoursite.com>

Заметки

Для работы этой функции сервер должен работать с SMTP и должен быть установлен smtp_port в php.ini.

Код wp mail: wp-includes/pluggable.php VER 4.9.1

<?php
function wp_mail( $to, $subject, $message, $headers = '', $attachments = array() ) {
	// Compact the input, apply the filters, and extract them back out

	/**
	 * Filters the wp_mail() arguments.
	 *
	 * @since 2.2.0
	 *
	 * @param array $args A compacted array of wp_mail() arguments, including the "to" email,
	 *                    subject, message, headers, and attachments values.
	 */
	$atts = apply_filters( 'wp_mail', compact( 'to', 'subject', 'message', 'headers', 'attachments' ) );

	if ( isset( $atts['to'] ) ) {
		$to = $atts['to'];
	}

	if ( !is_array( $to ) ) {
		$to = explode( ',', $to );
	}

	if ( isset( $atts['subject'] ) ) {
		$subject = $atts['subject'];
	}

	if ( isset( $atts['message'] ) ) {
		$message = $atts['message'];
	}

	if ( isset( $atts['headers'] ) ) {
		$headers = $atts['headers'];
	}

	if ( isset( $atts['attachments'] ) ) {
		$attachments = $atts['attachments'];
	}

	if ( ! is_array( $attachments ) ) {
		$attachments = explode( "\n", str_replace( "\r\n", "\n", $attachments ) );
	}
	global $phpmailer;

	// (Re)create it, if it's gone missing
	if ( ! ( $phpmailer instanceof PHPMailer ) ) {
		require_once ABSPATH . WPINC . '/class-phpmailer.php';
		require_once ABSPATH . WPINC . '/class-smtp.php';
		$phpmailer = new PHPMailer( true );
	}

	// Headers
	$cc = $bcc = $reply_to = array();

	if ( empty( $headers ) ) {
		$headers = array();
	} else {
		if ( !is_array( $headers ) ) {
			// Explode the headers out, so this function can take both
			// string headers and an array of headers.
			$tempheaders = explode( "\n", str_replace( "\r\n", "\n", $headers ) );
		} else {
			$tempheaders = $headers;
		}
		$headers = array();

		// If it's actually got contents
		if ( !empty( $tempheaders ) ) {
			// Iterate through the raw headers
			foreach ( (array) $tempheaders as $header ) {
				if ( strpos($header, ':') === false ) {
					if ( false !== stripos( $header, 'boundary=' ) ) {
						$parts = preg_split('/boundary=/i', trim( $header ) );
						$boundary = trim( str_replace( array( "'", '"' ), '', $parts[1] ) );
					}
					continue;
				}
				// Explode them out
				list( $name, $content ) = explode( ':', trim( $header ), 2 );

				// Cleanup crew
				$name    = trim( $name    );
				$content = trim( $content );

				switch ( strtolower( $name ) ) {
					// Mainly for legacy -- process a From: header if it's there
					case 'from':
						$bracket_pos = strpos( $content, '<' );
						if ( $bracket_pos !== false ) {
							// Text before the bracketed email is the "From" name.
							if ( $bracket_pos > 0 ) {
								$from_name = substr( $content, 0, $bracket_pos - 1 );
								$from_name = str_replace( '"', '', $from_name );
								$from_name = trim( $from_name );
							}

							$from_email = substr( $content, $bracket_pos + 1 );
							$from_email = str_replace( '>', '', $from_email );
							$from_email = trim( $from_email );

						// Avoid setting an empty $from_email.
						} elseif ( '' !== trim( $content ) ) {
							$from_email = trim( $content );
						}
						break;
					case 'content-type':
						if ( strpos( $content, ';' ) !== false ) {
							list( $type, $charset_content ) = explode( ';', $content );
							$content_type = trim( $type );
							if ( false !== stripos( $charset_content, 'charset=' ) ) {
								$charset = trim( str_replace( array( 'charset=', '"' ), '', $charset_content ) );
							} elseif ( false !== stripos( $charset_content, 'boundary=' ) ) {
								$boundary = trim( str_replace( array( 'BOUNDARY=', 'boundary=', '"' ), '', $charset_content ) );
								$charset = '';
							}

						// Avoid setting an empty $content_type.
						} elseif ( '' !== trim( $content ) ) {
							$content_type = trim( $content );
						}
						break;
					case 'cc':
						$cc = array_merge( (array) $cc, explode( ',', $content ) );
						break;
					case 'bcc':
						$bcc = array_merge( (array) $bcc, explode( ',', $content ) );
						break;
					case 'reply-to':
						$reply_to = array_merge( (array) $reply_to, explode( ',', $content ) );
						break;
					default:
						// Add it to our grand headers array
						$headers[trim( $name )] = trim( $content );
						break;
				}
			}
		}
	}

	// Empty out the values that may be set
	$phpmailer->clearAllRecipients();
	$phpmailer->clearAttachments();
	$phpmailer->clearCustomHeaders();
	$phpmailer->clearReplyTos();

	// From email and name
	// If we don't have a name from the input headers
	if ( !isset( $from_name ) )
		$from_name = 'WordPress';

	/* If we don't have an email from the input headers default to wordpress@$sitename
	 * Some hosts will block outgoing mail from this address if it doesn't exist but
	 * there's no easy alternative. Defaulting to admin_email might appear to be another
	 * option but some hosts may refuse to relay mail from an unknown domain. See
	 * https://core.trac.wordpress.org/ticket/5007.
	 */

	if ( !isset( $from_email ) ) {
		// Get the site domain and get rid of www.
		$sitename = strtolower( $_SERVER['SERVER_NAME'] );
		if ( substr( $sitename, 0, 4 ) == 'www.' ) {
			$sitename = substr( $sitename, 4 );
		}

		$from_email = 'wordpress@' . $sitename;
	}

	/**
	 * Filters the email address to send from.
	 *
	 * @since 2.2.0
	 *
	 * @param string $from_email Email address to send from.
	 */
	$from_email = apply_filters( 'wp_mail_from', $from_email );

	/**
	 * Filters the name to associate with the "from" email address.
	 *
	 * @since 2.3.0
	 *
	 * @param string $from_name Name associated with the "from" email address.
	 */
	$from_name = apply_filters( 'wp_mail_from_name', $from_name );

	try {
		$phpmailer->setFrom( $from_email, $from_name, false );
	} catch ( phpmailerException $e ) {
		$mail_error_data = compact( 'to', 'subject', 'message', 'headers', 'attachments' );
		$mail_error_data['phpmailer_exception_code'] = $e->getCode();

		/** This filter is documented in wp-includes/pluggable.php */
		do_action( 'wp_mail_failed', new WP_Error( 'wp_mail_failed', $e->getMessage(), $mail_error_data ) );

		return false;
	}

	// Set mail's subject and body
	$phpmailer->Subject = $subject;
	$phpmailer->Body    = $message;

	// Set destination addresses, using appropriate methods for handling addresses
	$address_headers = compact( 'to', 'cc', 'bcc', 'reply_to' );

	foreach ( $address_headers as $address_header => $addresses ) {
		if ( empty( $addresses ) ) {
			continue;
		}

		foreach ( (array) $addresses as $address ) {
			try {
				// Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
				$recipient_name = '';

				if ( preg_match( '/(.*)<(.+)>/', $address, $matches ) ) {
					if ( count( $matches ) == 3 ) {
						$recipient_name = $matches[1];
						$address        = $matches[2];
					}
				}

				switch ( $address_header ) {
					case 'to':
						$phpmailer->addAddress( $address, $recipient_name );
						break;
					case 'cc':
						$phpmailer->addCc( $address, $recipient_name );
						break;
					case 'bcc':
						$phpmailer->addBcc( $address, $recipient_name );
						break;
					case 'reply_to':
						$phpmailer->addReplyTo( $address, $recipient_name );
						break;
				}
			} catch ( phpmailerException $e ) {
				continue;
			}
		}
	}

	// Set to use PHP's mail()
	$phpmailer->isMail();

	// Set Content-Type and charset
	// If we don't have a content-type from the input headers
	if ( !isset( $content_type ) )
		$content_type = 'text/plain';

	/**
	 * Filters the wp_mail() content type.
	 *
	 * @since 2.3.0
	 *
	 * @param string $content_type Default wp_mail() content type.
	 */
	$content_type = apply_filters( 'wp_mail_content_type', $content_type );

	$phpmailer->ContentType = $content_type;

	// Set whether it's plaintext, depending on $content_type
	if ( 'text/html' == $content_type )
		$phpmailer->isHTML( true );

	// If we don't have a charset from the input headers
	if ( !isset( $charset ) )
		$charset = get_bloginfo( 'charset' );

	// Set the content-type and charset

	/**
	 * Filters the default wp_mail() charset.
	 *
	 * @since 2.3.0
	 *
	 * @param string $charset Default email charset.
	 */
	$phpmailer->CharSet = apply_filters( 'wp_mail_charset', $charset );

	// Set custom headers
	if ( !empty( $headers ) ) {
		foreach ( (array) $headers as $name => $content ) {
			$phpmailer->addCustomHeader( sprintf( '%1$s: %2$s', $name, $content ) );
		}

		if ( false !== stripos( $content_type, 'multipart' ) && ! empty($boundary) )
			$phpmailer->addCustomHeader( sprintf( "Content-Type: %s;\n\t boundary=\"%s\"", $content_type, $boundary ) );
	}

	if ( !empty( $attachments ) ) {
		foreach ( $attachments as $attachment ) {
			try {
				$phpmailer->addAttachment($attachment);
			} catch ( phpmailerException $e ) {
				continue;
			}
		}
	}

	/**
	 * Fires after PHPMailer is initialized.
	 *
	 * @since 2.2.0
	 *
	 * @param PHPMailer $phpmailer The PHPMailer instance (passed by reference).
	 */
	do_action_ref_array( 'phpmailer_init', array( &$phpmailer ) );

	// Send!
	try {
		return $phpmailer->send();
	} catch ( phpmailerException $e ) {

		$mail_error_data = compact( 'to', 'subject', 'message', 'headers', 'attachments' );
		$mail_error_data['phpmailer_exception_code'] = $e->getCode();

		/**
		 * Fires after a phpmailerException is caught.
		 *
		 * @since 4.4.0
		 *
		 * @param WP_Error $error A WP_Error object with the phpmailerException message, and an array
		 *                        containing the mail recipient, subject, message, headers, and attachments.
		 */
		do_action( 'wp_mail_failed', new WP_Error( 'wp_mail_failed', $e->getMessage(), $mail_error_data ) );

		return false;
	}
}

Cвязанные функции

Из раздела: Без рубрики

wp_mail 13 комментариев
Вопросы 4 Все
  • Иван

    Помогите пожалуйста разобраться с такой проблемой:

    Так работает:

    mail('web@xxx.com.ua', 'Заявка', $info, 'Content-Type: text/html; charset=utf-8; \n\r From: <a href="mailto:web@xxx.com.ua" rel="nofollow">web@xxx.com.ua</a>\n\r');

    а так нет:

    wp_mail('web@xxx.com.ua', 'Заявка', $info, 'Content-Type: text/html; charset=utf-8; \n\r From: <a href="mailto:web@xxx.com.ua" rel="nofollow">web@xxx.com.ua</a>\n\r');

    пишет: Call to undefined function wp_mail() in... callback.php

    Поставил WP SMTP, настроил, тестовое письмо из панели плагина отправляется нормально.

    В чем может быть дело?

    Ответить4 года назад #
    • Kama4697

      Вы где используете функцию? Первое что пришло на ум - вы среду WordPress не подгрузили, поэтому функция не определена и не работает. Если на какой-то отдельной странице используете, подключите сначала среду ВП:

      /*** Загружаем WordPress ***/
      require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
      5
      Ответить4 года назад #
      • Иван

        Спасибо, действительно забыл подключить, капец.

        Ответить4 года назад #
  • Нонна cайт: delniesoveti.ru @

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

    Ответить3.4 года назад #
  • campusboy1951 cайт: www.youtube.com/c/wpplus

    Не могу разрешить проблему. Локалка построена на OpenServer. Везде стоит UTF-8. Вот функция:

    function info_block ($class, $text){
      if ( !empty($_POST['sendmail']) ) {
       $message = '<h1>Спасибо, что стали нашим клиентом</h1><p>Для входа в личный кабинет используйте свой ИНН вместо логина. Пароль для входа '.$_POST['password'].'</p>';
       $headers[] = 'From: Me Myself <me@example.net>';
       $headers[] = 'content-type: text/html';
       $checkMail = wp_mail( $_POST['email'], "Reg my site", $message, $headers);
       if ( $checkMail )$text .= '. На его почту отправлен логин и пароль для входа в личный кабинет.';
      }
      $info = '<div id="message" class="'.$class.'"><p><strong>'.$text.'</strong></p></div>';
      echo $info;
     }

    Если в $headers в какой либо ячейке массива писать кириллицей, к примеру, вместо "Me Myself" написать "Дима", то это всё коверкается. Зато $message прекрасно передаёт кириллицу. Куда копнуть?

    Ответить1.8 года назад #
    • lincaseidhe62 cайт: ardeya.ru

      Привет! Как решили проблему, если решили? smile вдруг тоже когда-то появится) щас пока полет нормальный...

      Ответитьгод назад #
  • А можно ли в wp_mail() подгрузить второй email из метаполя ?

    Ответитьгод назад #
  • Александр cайт: aleksandrrogotkov.ru

    Есть проблема, может не совсем туда пишу, не приходят письма с паролем тем кто зарегистрировался, куда смотреть что делать????

  • Антон

    Кама, день добрый. Помоги пожалуйста

    <?php get_header(); ?>
    <?php
    require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
    if(trim($_POST['imya[]']) === '') {
    		$imyaError = 'Пожалуйста, заполните поле.';
    		$hasError = true;
    	} else {
    		$imya[]= trim($_POST['imya[]']);
    	}
    if(trim($_POST['familiya[]']) === '') {
    		$familiyaError = 'Пожалуйста, заполните поле.';
    		$hasError = true;
    	} else {
    		$familiya[]= trim($_POST['familiya[]']);
    	}
    if(trim($_POST['otchestvo[]']) === '') {
    		$vozrastError = 'Пожалуйста, заполните поле.';
    		$hasError = true;
    	} else {
    		$otchestvo[]= trim($_POST['otchestvo[]']);
    	}
    $subject = 'Тема';
    $to = 'mail@mail.ru';
    $email = 'mail2@gmail.com';
    $message = ' Имя: $imya[] \n\n Фамилия: $familiya[] \n\n Отчество: $otchestvo[] \n\n ';
    $headers = 'From: me ' . "\r\n" . 'Reply-To: ' . $email;
    wp_mail( $to, $subject, $message, $headers);
    $emailSent = true;
    unset($_POST);
    ?>
    
    <script  src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script type="text/javascript">
    function add_row()
    {
     $rowno=$("#additional_table tr").length;
     $rowno=$rowno+1;
    
     $("#additional_table tr:last").after("<tr id='row"+$rowno+"'><td>Имя * <input type='text' name='imya[]' id='imya[]' placeholder='Введите Имя'></td><td>Фамилия * <input type='text' id='familya[]' name='familya[]' placeholder='Введите Фамилию'></td><td>Отчество * <input type='text' name='otchestvo[]' id='otchestvo[]' placeholder='Отчество '></td><td><input type='button' value='УДАЛИТЬ' onclick=delete_row('row"+$rowno+"')></td></tr>");
    }
    function delete_row(rowno)
    {
     $('#'+rowno).remove();
    }
    </script>
    
     <div id="primary" class="content-area page-content">
    		<main id="main" class="site-main" role="main">
    				<div class="container">
    					<div class="row">
    
    <div id="wrapper">
    	<div id="form_div">
    		<form action="<?php the_permalink(); ?>" id="myform" method="post" enctype="multipart/form-data">
    
      <table id="additional_table" align=center>
       <tr id="row1">
    	<td>Имя * <input type="text" name="imya[]" id="imya[]" placeholder="Имя"  class="required" value="<?php if(isset($_POST['imya[]'])) echo $_POST['imya[]'];?>"></td>
    <?php if($imyaError != '') { ?>
    
    							</br><span class="error"><?=$imyaError;?></span>
    
    						<?php } ?>
    	<td>Фамилия * <input type="text" name="familya[]" id="familya[]" placeholder="Фамилия"></td>
    	<td>Отчество * <input type="text" name="otchestvo[]" id="otchestvo[]" placeholder="Отчество "></td>
       </tr>
      </table>
      <input type="button" onclick="add_row();" value="Добавить">
      <input type="submit" name="submit_row" value="Подтвердить">
     </form>
    </div>
    
    </div>
    
    					</div><!--/.row-->
    				</div><!--/.container-->
    		</main><!-- #main -->
    	</div><!-- #primary -->
    <?php get_footer(); ?>

    Функция add_row добавляет дополнительные input для ввода, но функция wp_mail не передает ничего. Вроде он от имени mail2@gmail.com должен отправить письмо mail@maul.ru, но ничего, все пусто!!
    ОЧЕНЬ ПРОЩУ, мозг уже взрывается, помоги!
    Спасибо заранее

  • vitstar20 cайт: starovoitov-v.ru

    Добрый день! А есть возможность отправки файлов загруженных через форму ? Просто как я сейчас понимаю тут нужно указывать полный путь для файла что бы он прикрепился. Так же я понял ?

    • Kama4697

      При загрузке файла через форму, он размещается во временный каталог см $_FILES вот этот путь можно указать... После обработки скрипта такие файлы обычно сразу удаляются...

  • FrankyJo cайт: junnot.info

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

    if (isset($_POST['subject-form'])) {
    
    	 if (isset($_POST['name'])) {
    		 $name = $_POST['name'];
    		 if ($name == '') {
    			 unset($name);
    		 }
    	 }
    
    	if (isset($_POST['surname'])) {
    		$surname = $_POST['surname'];
    		if ($surname == '') {
    			unset($surname);
    		}
    	}
    
    	if (isset($_POST['street'])) {
    		$street = $_POST['street'];
    		if ($street == '') {
    			unset($street);
    		}
    	}
    
    	if (isset($_POST['area'])) {
    		$area = $_POST['area'];
    		if ($area == '') {
    			unset($area);
    		}
    	}
    
    	if (isset($_POST['appointment'])) {
    		$appointment = $_POST['appointment'];
    		if ($appointment == '') {
    			unset($appointment);
    		}
    	}
    
    	if (isset($_POST['metro'])) {
    		$metro = $_POST['metro'];
    		if ($metro == '') {
    			unset($metro);
    		}
    	}
    
    	if (isset($_POST['phone'])) {
    		$phone = $_POST['phone'];
    		if ($phone == '') {
    			unset($phone);
    		}
    	}
    
    	$file_bti = ' Файл бти не прикрепили';
    	$file_treaty = 'Файл договоа не прикрепили';
    	if (isset($_POST['file_treaty'])) {
    		$file_treaty = $_POST['file_treaty'];
    	}
    	if (isset($_POST['file_bti'])) {
    		$file_bti = $_POST['file_bti'];
    	}
    
    	if (isset($_POST['subject-form'])) {
    		$subject = $_POST['subject-form'];
    		if ($subject == '') {
    			unset($subject);
    		}
    	}
    
    	if(isset($_FILES['file_treaty'])){
    		$file_treaty=$_FILES['file_treaty']['name'];
    		$filepath_treaty = $_FILES['file_treaty']['tmp_name'];
    
    	}else{
    		$file_treaty = 'Файл договоа не прикрепили';
    		$filepath_treaty = '';
    	}
    
    	if(isset($_FILES['file_bti'])){
    		$file_bti=$_FILES['file_bti']['name'];
    		$filepath_bti = $_FILES['file_bti']['tmp_name'];
    	}else{
    		$file_bti = 'Файл договоа не прикрепили';
    		$filepath_bti = '';
    	}
    
    	$attachments = array(WP_CONTENT_DIR.$filepath_bti);
    	if (isset($name) && isset($surname) && isset($street) && isset($area) && isset($appointment) && isset($metro) && isset($phone) && isset($subject)) {
    		$address = "sined007@gmail.com";
    		$message = "Имя: $name \nФамилия: $surname \nАдрес недвижимости: $street \nПлощадь: $area \nНазначение: $appointment \nМетро: $metro \nТелефон: $phone";
    //         Договор аренды: $file_treaty $filepath_treaty ,  План БТИ: $file_bti $filepath_bti ;
    
    		$send = mail($address, $subject, $message, $attachments);
    		if ($send == 'true') {
    			?>
    			<div style="display: block; position: absolute; top: 0px; left:0px; background: rgba(255, 255, 255, 0.8);width: 100%; height: 150px;">
    				<h2 class="aligncenter" style="text-align: center">Спасибо! Ваша заявка отправлена.</h2></div>
    			<script type="text/javascript">
    				function loads(){
    					window.location="../";
    				}
    				setTimeout(loads, 3000);
    			</script>
    			<?php
    		} else {
    			?>
    			<div style="display: block; position: absolute; top: 0px; left:0px; background: rgba(255, 255, 255, 0.8);width: 100%; height: 150px;">
    				<h2 class="aligncenter" style="text-align: center">Ошибка, сообщение не отправлено!</h2></div>
    			<script type="text/javascript">
    				function loads(){
    					window.location="../";
    				}
    				setTimeout(loads, 3000);
    
    			<?php
    		}
    	} else {
    		?>
    		<div style="display: block; position: absolute; top: 0px; left:0px; background: rgba(255, 255, 255, 0.8);width: 100%; height: 150px;">
    		<h2 class="aligncenter" style="text-align: center">Вы заполнили не все поля, необходимо вернуться назад!</h2></div>
    		<script type="text/javascript">
    		function loads(){
    		window.location="../";
    		 }
    		setTimeout(loads, 3000);
    		</script>
    
    	   <?php
    
    	 } ?>
    
    	<?php
    } ?>
    Ответитьмесяц назад #

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

Ваш комментарий