Вопрос по PHP и Wordpress (wp_mail)

12
SEoSashok
На сайте с 16.07.2012
Offline
25
1844

Приветствую.

Подскажите как правильно прописать переменные вместо $message? -


$message = 'Текст в сообщении передается'; // а вот переменные нет $message = $name;
wp_mail( 'my@site.ru', 'Тема', $message);

Есть три переменных для тела письма:

$name

$phone

$sity

Именно их содержимое и хочется отослать письмом...

Спасибо.

N
На сайте с 10.02.2010
Offline
51
#1
SEoSashok:
Приветствую.

Подскажите как правильно прописать переменные вместо $message? -


$message = 'Текст в сообщении передается'; // а вот переменные нет $message = $name;
wp_mail( 'my@site.ru', 'Тема', $message);


Есть три переменных для тела письма:
$name
$phone
$sity
Именно их содержимое и хочется отослать письмом...

Спасибо.

$message = "От: ".$name.", телефон: ".$phone.", город: ".$sity;

В $message будет а-ля "От: Вася Пупкин, телефон: 123-45-67, город: Иваново"

SEoSashok
На сайте с 16.07.2012
Offline
25
#2

nchdel, В этом то и дело, что приходит только -

От: , телефон: , город:

Хотя параллельно делаю проверку через -

<form action="<?php bloginfo('template_directory'); ?>/send.php" class="well" method="post" >

и все данные из массива выводятся и отображаются нормально -

send.php

<?php 
echo $name;
echo $phone;
echo $sity;
?>

Пробовал и так, всё одно...

$message = $_POST['name'];

ну никак не видит wp_mail эти данные, переданные через массив.

6666
На сайте с 10.01.2005
Offline
505
#3

SEoSashok, а раздел "вебстроительство" типа для лохов?

Каждое мое сообщение проверила и одобрила Елена Летучая. (c) Для меня очень важно все что Вы говорите! (http://surrealism.ru/123.mp3) .
SEoSashok
На сайте с 16.07.2012
Offline
25
#4

6666, Сорри... перенесите, если можно.

N
На сайте с 10.02.2010
Offline
51
#5
SEoSashok:
nchdel, В этом то и дело, что приходит только -
От: , телефон: , город:

Хотя параллельно делаю проверку через -
<form action="<?php bloginfo('template_directory'); ?>/send.php" class="well" method="post" >

и все данные из массива выводятся и отображаются нормально

Или я чего-то не понимаю, или данные из формы Вы передаете в send.php, который у Вас просто выводит данные на экран. Из send.php и должна вызываться функция wp_mail

SEoSashok
На сайте с 16.07.2012
Offline
25
#6

nchdel, Данные передаю в php файл, чтобы вывести их через echo и убедиться, что они там есть... А так, этот php не нужен.

Вот без лишнего файла, всё рядом..


<?php
if($_POST){
$name = $_POST['name'];
$phone = $_POST['phone'];
$sity = $_POST['sity'];
$message = "От: ".$name.", телефон: ".$phone.", город: ".$sity;
wp_mail( 'my@site.ru', 'Тема', $message );
}
?>

<!--Форма-->
<form class="well" method="post" >
.......
</form>

В результате приходит письмо с содержимым: От: , телефон: , город:

***91 и ***93 это квадратные скобки, которые сертч так отображает.

IL
На сайте с 20.04.2007
Offline
435
#7

Если заменить код на такое - что выдаст?

if($_POST){
print_r($_POST); die();
}
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
N
На сайте с 10.02.2010
Offline
51
#8

И сам html-код формы покажите

SEoSashok
На сайте с 16.07.2012
Offline
25
#9

ivan-lev, Много букв вместо формы...

Array ( [wp_customize] => on [theme] =>
......

татйл сайта, тему, цвета, шаблон и т.д.

---------- Добавлено 14.09.2012 в 18:18 ----------

nchdel, дело тут не в форме, т.к. данные из формы уходят в массив и благополучно выводятся через print и echo. Они есть в массиве, но они не присваиваются именно к переменной $message и не выводятся в теле сообщения.

Вот, весь код полностью, обработка данных + форма -


<?php
if($_POST){
$name = $_POST['name'];
$phone = $_POST['phone'];
$sity = $_POST['sity'];
//$message = 'Текст в сообщении передается';
$message = "От: ".$name.", телефон: ".$phone.", город: ".$sity;
wp_mail( 'my@site.ru', 'Тема', $message );
}
?>

<form class="well" method="post" >
<label>Форма:</label>
<fieldset>
<div class="control-group">
<div class="controls">
<input type="text" class="span2" name="name" id="name" placeholder="Ваше имя…" required>
<input type="text" class="span2" name="phone" id="phone" placeholder="Ваше телефон…" required>
<input type="text" class="span2" name="sity" id="sity" placeholder="Ваше город…" required>
<input type="submit" class="btn btn-success" name="submit" value="Отправить">
</div>
</div>
</fieldset>
</form>


---------- Добавлено 14.09.2012 в 19:58 ----------

И еще... Работа wp_mail, в данном коде, не ждёт нажатия кнопки Отправить, а при обновлении страницы с формой, сразу срабатывает на отправку, а потом еще раз, при нажатии на кнопку.
maldivec
На сайте с 04.11.2008
Offline
160
#10

Так вы проверьте вот так-то:


if($_POST){
$name = $_POST***91;'name'***93;;
$phone = $_POST***91;'phone'***93;;
$sity = $_POST***91;'sity'***93;;
//$message = 'Текст в сообщении передается';
$message = "От: ".$name.", телефон: ".$phone.", город: ".$sity;
echo $message; //выдаст и он вам ту строку, которую в ыхотите получить.
wp_mail( 'my@site.ru', 'Тема', $message );
}
?>

Потому что судя по всему просто нечего присваивать переменным у вас.

SEoSashok:
Работа wp_mail, в данном коде, не ждёт нажатия кнопки Отправить, а при обновлении страницы с формой, сразу срабатывает на отправку,

Это ерунда какая-то. У вас по мимо отправки формы что ли есть POST запросы при обращении к странице?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий