• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Как записать реквизиты заказа в текстовый файл?

rikitiki

Специалист
Местный
Как сделать так, чтобы при создании заказа его реквизиты записывались в файл? Неважно какой - txt, xml и т.д
 

D&B

Администратор
Команда форума
Местный
А что, в заказах не появляются?
 

rikitiki

Специалист
Местный
Появляются, но мне для скрипта обрабатывающего http-уведомление необходимо, который живёт своей жизнью вне Wordpress-Woocommerce. Чтобы не делать выборку из mysql.
 

searchingman

Гуру
Местный
Появляются, но мне для скрипта обрабатывающего http-уведомление необходимо, который живёт своей жизнью вне Wordpress-Woocommerce. Чтобы не делать выборку из mysql.
Создание заказа выполняется в транзакции (происходит несколько запросов одновременно), т.е. операция не самая легкая.
Поэтому встраивать внутрь этой транзакции еще и запись чего-то в файл не самое правильное решение.
Если у Вас используется сторонний скрипт, то проще использовать для получения любой информации REST API WooCommerce.
 
Последнее редактирование:
  • Like
Реакции: D&B

rikitiki

Специалист
Местный
Когда покупатель заполнив поля и выбрав оплату нажимает "Подтвердить заказ", то он переходит на страницу заказа. В простейшем виде страница заказа представлена во вложении ниже:
Именно в этот момент формируется номер заказа и с другими реквизитами закладывается в базу. Я так понимаю никаких транзакций в этот момент не происходит. Просто формируется ордер внутри сайта. После нажатия на кнопку "Оплатить" идёт переход на форму оплаты другого сервера.
С этого момента и начинают происходить транзакции.
Вопрос в том, можно ли вставить в шаблон страницы заказа простейший код типа
PHP:
$name_file = "email.txt";
$fp = fopen($name_file, "w+");
$mytext = "email".$contact. "Заказ". $order"\r\n"; // Исходная строка
$test = fwrite($fp, $mytext); // Запись в файл
if ($test) { $fp2 = 'Данные в файл успешно занесены.';}
else { $fp2 ='Ошибка при записи в файл.';}
fclose($fp); //Закрытие файла
При открытии страницы заказа данные заказа, хотя бы адрес email, должны записываться в текстовый лог.
После оплаты правильней конечно делать выборку скриптом из mysql, а не из текстового лога. Но для меня это сложней так я совсем не знаю mysql.
Да и в Woocommerce там всё запутвно:
По минимуму нужно записать в лог номер заказа и соответствующий почтовый адрес покупателя и по нему отправить письмо, так как адрес не приходит в обычном http-уведомлении.
 

Вложения

  • gat-2-3.jpg
    gat-2-3.jpg
    20 KB · Просмотры: 7
Последнее редактирование:

rikitiki

Специалист
Местный
В общем записывает при нажатии на кнопку "Подтвердить заказ" и открытии страницы заказа, если поместить код в функцию public function receipt_page($order) шлюза, прописав чёткий путь до текстового файла. Однако записывает только заголовки, те что в кавычках. Получается строка типа:
Значения переменных не записывает. Я пока не уяснил как правильно переменные в код записать. Наверное какой-то цикл должен быть для вывода значений массива в текстовый файл.
 
Последнее редактирование:

rikitiki

Специалист
Местный
Безуспешно перепробовав много чего, совсем отчаявшись, напоследок наобум вывел перед кодом первой вот такую строку:
PHP:
$this->$order = $order->get_order_number;
Заглянул в текстовый файл и с удивлением обнаружил, что номер заказа записался!!!
Теперь бы ещё код для вывода email заказа найти? Заранее благодарю, если кто откликнется и поможет!
 
Последнее редактирование:

rikitiki

Специалист
Местный
Исправил строку на:
PHP:
 $this->$order = $order->get_billing_email;
По-прежнему выводит номер заказа. Похоже безразлично что в правой части строки.
Удалил праву часть равенства оставив:
PHP:
$this->$order
Тоже вывелся номер ордера.Неясно как по такой же схеме добавить адрес email?
 
Последнее редактирование:

rikitiki

Специалист
Местный
Креативище Угу ..понял иронию. Над простецким с виду кодом голову ломаю. Вот что значит не знать php:)
 

D&B

Администратор
Команда форума
Местный
Да без иронии. Я тоже слаб в "накодить". К сожалению ,спецов тут у нас крайне мало.
 
Сверху Снизу