Я хотел использовать функцию VM 1.1.8 в Joomla 1.5.22, чтобы разрешить отправку по электронной почте счета-фактуры в формате pdf клиентам, чьи покупки были подтверждены.Я пробовал различные плагины, не работает так, как я хотел.Таким образом, я сам его кодирую.
Чтобы уменьшить зависимость, я решил использовать pdfcrowd.com для преобразования html в pdf, как рекомендовано некоторыми стековыми потоками здесь.Однако сейчас я сталкиваюсь с одной проблемой, когда конвертируемая страница должна быть общедоступной, чтобы pdfcrowd мог видеть вывод, иначе файл pdf закончится только страницей входа администратора.Я гуглял, но ничего не нашел, может быть, я использую неправильные условия поиска.
Я также пытался создать независимую страницу php для отображения публичного счета, но это было слишкоммного хлопот, чтобы все настроить, чтобы оно работало, не заглядывая во внутренности Joomla.
Страница, которую я пытаюсь воспроизвести, -
administrator/index.php?page=order.order_printdetails&order_id=######&no_menu=1&pop=1&tmpl=component&option=com_virtuemart
, что /administrator/components/com_virtuemart/html/order.order_printdetails.php
Кстати, я буду внедрять одноразовую проверку токенов для страницы просмотра счетов, чтобы ее можно было использовать только в течение короткого периода времени для конвертации.Конвертированный счет будет сохранен и, при необходимости, использован позже.
Пожалуйста, сообщите.Спасибо.
РЕДАКТИРОВАТЬ: Спасибо LAS_VEGAS за указание на cURL.Его код работает для публичной страницы.Чтобы получить доступ к авторизованной странице, мне просто нужно добавить код для передачи cookie.
<?php
// no direct access
defined('_JEXEC') or die;
//Store cookie in format compatible with cURL
$cookie = "";
foreach($_COOKIE as $key => $value) {
$cookie .= $key . "=" . $value . "; ";
}
$ch = curl_init();
$fp = fopen("example_page.html", "w");
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/administrator/index.php?page=order.order_printdetails&order_id=######&no_menu=1&pop=1&tmpl=component&option=com_virtuemart");
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>