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

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

Тема в разделе "Вопросы, советы и доработки.", создана пользователем rikitiki, 7 окт 2015.

  1. rikitiki

    rikitiki Местный

    Сообщения:
    749
    Симпатии:
    184
    Баллы:
    43
    Как сделать так, чтобы при создании заказа его реквизиты записывались в файл? Неважно какой - txt, xml и т.д
     
  2. D&B

    D&B Администратор Команда форума Местный

    Сообщения:
    3.266
    Симпатии:
    721
    Баллы:
    113
    А что, в заказах не появляются?
     
  3. rikitiki

    rikitiki Местный

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

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Создание заказа выполняется в транзакции (происходит несколько запросов одновременно), т.е. операция не самая легкая.
    Поэтому встраивать внутрь этой транзакции еще и запись чего-то в файл не самое правильное решение.
    Если у Вас используется сторонний скрипт, то проще использовать для получения любой информации REST API WooCommerce.
     
    Последнее редактирование: 9 окт 2015
    • Нравится Нравится x 1
  5. rikitiki

    rikitiki Местный

    Сообщения:
    749
    Симпатии:
    184
    Баллы:
    43
    Когда покупатель заполнив поля и выбрав оплату нажимает "Подтвердить заказ", то он переходит на страницу заказа. В простейшем виде страница заказа представлена во вложении ниже:
    Именно в этот момент формируется номер заказа и с другими реквизитами закладывается в базу. Я так понимаю никаких транзакций в этот момент не происходит. Просто формируется ордер внутри сайта. После нажатия на кнопку "Оплатить" идёт переход на форму оплаты другого сервера.
    С этого момента и начинают происходить транзакции.
    Вопрос в том, можно ли вставить в шаблон страницы заказа простейший код типа
    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 КБ
      Просмотров:
      7
    Последнее редактирование: 11 окт 2015
  6. rikitiki

    rikitiki Местный

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

    rikitiki Местный

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

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Пробуйте billing_email
     
    • Нравится Нравится x 1
  9. rikitiki

    rikitiki Местный

    Сообщения:
    749
    Симпатии:
    184
    Баллы:
    43
    Исправил строку на:
    PHP:
     $this->$order $order->get_billing_email
    По-прежнему выводит номер заказа. Похоже безразлично что в правой части строки.
    Удалил праву часть равенства оставив:
    PHP:
    $this->$order
    Тоже вывелся номер ордера.Неясно как по такой же схеме добавить адрес email?
     
    Последнее редактирование: 12 окт 2015
    • Креативщик Креативщик x 1
  10. rikitiki

    rikitiki Местный

    Сообщения:
    749
    Симпатии:
    184
    Баллы:
    43
    Креативище Угу ..понял иронию. Над простецким с виду кодом голову ломаю. Вот что значит не знать php:)
     
  11. D&B

    D&B Администратор Команда форума Местный

    Сообщения:
    3.266
    Симпатии:
    721
    Баллы:
    113
    Да без иронии. Я тоже слаб в "накодить". К сожалению ,спецов тут у нас крайне мало.