0 Пользователей и 1 Гость просматривают эту тему.
  • 28 Ответов
  • 1997 Просмотров
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
Доброго времени суток
Потребовалась  полное описание товара при завершении заказа с функцией печати

нашел такой скрипт

Код
require_once(JPATH_VM_ADMINISTRATOR.DS.'models'.DS.'orders.php');
$order = VirtueMartModelOrders::getOrder($this->cart->virtuemart_order_id);
<pre> print_r($order); </pre>
echo $order['details']['ST']->order_number;  /*номер заказа*/
echo $order['details']['ST']->created_on;   /*дата заказа*/

но при вставки его в файл templates/ШАБЛОН /html/com_virtuemart/cartorder_done.php
выдает ошибку 500

при удалении
Код
<pre></pre>

Код
require_once(JPATH_VM_ADMINISTRATOR.DS.'models'.DS.'orders.php');
$order = VirtueMartModelOrders::getOrder($this->cart->virtuemart_order_id);
 print_r($order);
echo $order['details']['ST']->order_number;  /*номер заказа*/
echo $order['details']['ST']->created_on;   /*дата заказа*/

выдает всякую всячину на страницу



убираю
Код
 print_r($order); 

выдает чистую

*

Stasweb

  • Живу я здесь
  • 1087
  • 18
и вот еще проблема при подтверждении доставки и оплаты вылетает ошибка 500 запрос при запросе http://мой сайт/cart/confirm
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
Тема так и осталась актуальной для меня  !
не ужели не возникали такие вопросы
*

Максим Пишняк

  • Живу я здесь
  • 847
  • 35
  • Подразделение Virtuemart Украина
нашел такой скрипт
Где нашел?
и вот еще проблема при подтверждении доставки и оплаты вылетает ошибка 500 запрос при запросе http://мой сайт/cart/confirm
Ссылка? Версия? Сторонние расширения?
Virtuemart 2 работает практически без ошибок. Вы можете поддержать Сообщество, проголосовав за Virtuemart. Присоединяйтесь к нам на Facebook, Google Plus, Linkedin. Подпишитесь на Еженедельник о Virtuemart на Twitter
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
Пробую настроить так
Код
<?php
defined('_JEXEC') or die('');
echo "<h3>".JText::_('COM_VIRTUEMART_CART_ORDERDONE_THANK_YOU')."</h3>";
echo $this->html;
require_once(JPATH_VM_ADMINISTRATOR.DS.'models'.DS.'orders.php');
$order = VirtueMartModelOrders::getOrder($this->cart->virtuemart_order_id); ?>
<table>
  <tr>
    <td><pre><?php echo $order['details']['ST']->virtuemart_order_userinfo_id ?></pre></td>
    <td><?php echo JText::_('COM_VIRTUEMART_ORDER_USER_ID_CART');?></td>
  </tr>
  <tr>
    <td><pre><?php echo $order['details']['ST']->virtuemart_order_id ?></pre></td>
    <td><?php echo JText::_('COM_VIRTUEMART_ORDER_ID_CART');?></td>
  </tr>
  <tr>
    <td><pre><?php echo $order['details']['ST']->virtuemart_user_id ?></pre> </td>
    <td><?php echo JText::_('COM_VIRTUEMART_USER_ID_CART');?></td>
  </tr>
  <tr>
    <td><pre><?php echo $order['details']['ST']->email ?></pre> </td>
    <td><?php echo JText::_('COM_VIRTUEMART_EMAIL_I_DATA_CART');?></td>
  </tr>
  <tr>
    <td><pre><?php echo $order['details']['ST']->order_number ?></pre></td>
    <td><?php echo JText::_('COM_VIRTUEMART_ORDER_NUMER_CART');?></td>
  </tr>
    <tr>
    <td><pre><?php echo $order['details']['ST']->created_on ?></pre></td>
    <td><?php echo JText::_('COM_VIRTUEMART_CREATE_ON_CART');?></td>
  </tr>
    <tr>
    <td><pre><?php echo $order['details']['ST']->order_total ?></pre> </td>
    <td><?php echo JText::_('COM_VIRTUEMART_ORDER_TOTAL_CART');?></td>
  </tr>
    <tr>
    <td><pre><?php echo $order['details']['ST']->order_item_name ?></pre> </td>
    <td><?php echo JText::_('COM_VIRTUEMART_ORDER_ITEM_NAME_CART');?></td>
  </tr>
    <tr>
    <td><pre><?php echo $order['details']['ST']->product_quantity ?></pre> </td>
    <td><?php echo JText::_('COM_VIRTUEMART_PRODUCT_GUANTITY_CART');?></td>
  </tr>
    <tr>
    <td><pre><?php echo $order['details']['ST']->product_item_price ?></pre></td>
    <td><?php echo JText::_('COM_VIRTUEMART_PRODUCT_ITEM_PRICE_CART');?></td>
  </tr>
    <tr>
    <td><pre><?php echo $order['details']['ST']->product_final_price ?></pre> </td>
    <td><?php echo JText::_('COM_VIRTUEMART_PRODUCT_FINAL_PRICE_CART');?></td>
  </tr>
</table>
но переменные не показывает


пустые ячейки
версия ВМ 2.0.24
версия Joomla! 2.5.14
« Последнее редактирование: 18.10.2013, 10:58:23 от Stasweb »
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
или подскажите как выводить переменные именно в конечной карточки товара
я пытаюсь вывести в файле order_done.php
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
 $order['details']['ST'] на  $order['details']['BT']  замените
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
все заработало
вот еще вопрос как мне теперь это все отправить на печать или в пдф
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
А вот с этим сложнее, тут можно использовать вывод иконок через api VirtueMart, однако проблема в том что эти методы выводят компонент в новом окне а  корзина к тому моменту уже удалена  из кэша. Как вариант можно закэшировать  саму страничку. Вставляете этот код в начале файла После строчки defined('_JEXEC') or die('Restricted access');
 
Спойлер
[свернуть]

Затем в коде выводите ваши данные  и иконки:

Спойлер
[свернуть]

В конец файла  добавляете этот код:

Спойлер
[свернуть]

Но это еще не все) Для того чтобы заработала иконка pdf надо сделать еще несколько манипуляций. Во первых придется
хакнуть контроллер.В файле /components/com_virtuemart/controllers/cart.php находим строчку: public function display($cachable = false) меняем содержимое метода:

Спойлер
[свернуть]

Ну и наконец надо создать файл default_pdf.php в папке с файлом order_done.php  со следущим содержимым:

Спойлер
[свернуть]
« Последнее редактирование: 18.10.2013, 22:28:13 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
не работают кнопки PDF и печать

при нажатии на кнопку печати не чего не происходит а при нажатии на кнопку пдф просто белый экран
в чем может быть такая проблема помогите решить
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
В самом Lightbox эти кнопки вобще лучше скрыть а если вы хотите печатать с него просто добавьте условие в код:
Код: php
if ($_GET['print']==1)
echo '<a href="#" onClick="window.print();return false"> Распечатать! </a>';

стилизовать можете как хотите кнопкой или еще как..
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
как и где их можно скрыть?
Печатать мне без разнице можно на прямую с страницы но вот печать не работает при нажатии просто открывается окно
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
замените просто часть кода где иконки вот этим:

Код: php
if ($_GET['print']==1)
echo '<a href="#" onClick="window.print();return false"> Распечатать! </a>';
else {
echo $this->linkIcon($details_url . '&format=pdf', 'COM_VIRTUEMART_PDF', 'pdf_button', false, false);
echo $this->linkIcon($details_url . '&print=1', 'COM_VIRTUEMART_PRINT', 'printButton', 'show_printicon');
}

Кнопка пдф должна работать по идеи если делали как я писал выше, у меня при клике начинается скачивания пдфки, может ошибка где то..
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
не сработало

сделал так
Код
<?php
defined('_JEXEC') or die('');
$url = $GLOBALS['REQUEST_URI'];
$cache_url = md5($url);
if ($_GET['print']==1 || $_GET['format']=='pdf')
{
include ("cache/$cache_url");
exit();
}
ob_start ();
JHTML::_('behavior.modal');
$link = juri::root().'index.php?option=com_virtuemart&view=cart&layout=order_done&tmpl=component';
if ($_GET['print']==1)
echo '<a href="#" onClick="window.print();return false"> Распечатать! </a>';
else {
echo $this->linkIcon($details_url . '&format=pdf', 'COM_VIRTUEMART_PDF', 'pdf_button', false, false);
echo $this->linkIcon($details_url . '&print=1', 'COM_VIRTUEMART_PRINT', 'printButton', 'show_printicon');
}
echo "<h3>".JText::_('COM_VIRTUEMART_CART_ORDERDONE_THANK_YOU')."</h3>";
echo $this->html;
require_once(JPATH_VM_ADMINISTRATOR.DS.'models'.DS.'orders.php'); $order = VirtueMartModelOrders::getOrder($this->cart->virtuemart_order_id);?>
<table>
  <tr>
    <td><?php// echo JText::_('COM_VIRTUEMART_ORDER_USER_ID_CART');?></td>
    <td><pre><?php// echo $order['details']['BT']->virtuemart_order_userinfo_id ?></pre></td>
  </tr>
</table>
    <pre> <?php// echo print_r($order);?> </pre>
<?php
$cache = ob_get_contents();
ob_end_clean ();
echo $cache;
$fp = @fopen ("cache/$cache_url", "w");
@fwrite ($fp, $cache);
@fclose ($fp);
?>

*

zomby6888

  • Живу я здесь
  • 1484
  • 167
$details_url на $link замените
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
вот что получилось

но на печать так и не уходит

в коде я заменил
Код
if ($_GET['print']==1)
echo '<a href="#" onClick="window.print();return false"> Распечатать! </a>';
else {
echo $this->linkIcon($link . '&format=pdf', 'COM_VIRTUEMART_PDF', 'pdf_button', false, false);
echo $this->linkIcon($link . '&print=1', 'COM_VIRTUEMART_PRINT', 'printButton', 'show_printicon');
}
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
я забыл что иконки из кэша берутся все равно вот как вариант, у меня работает:

Спойлер
[свернуть]

тоесть иконки в начало помещаем чтобы они не кэшировались
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
при нажатии на печать открывается окно

иконок там не но на печать так и не идет
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
странно ну а если кнопку вывести вместо ссылки
echo '<a href="#" onClick="window.print();return false"> Распечатать! </a>';
на
echo '<button class="button" onClick="window.print();return false"> Распечатать </button>';
поменять?
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
та же ситуация просто открывает окно а на печать так и не идет
Спойлер
[свернуть]

*

zomby6888

  • Живу я здесь
  • 1484
  • 167
Спойлер
[свернуть]

вот так должно быть
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
Все заработало
а вот кнопочку с области печати убрать можно
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
Можно. можно джаваскриптом но мне больше всего нравится так)
Код: css
<style type="text/css">
@media print  {
button.button { display: none;}
}
</style>
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
Вот Возник еще вопрос как вывести поля  доставку и оплату
перечень всех заказов в корзине
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
Способы оплаты и доставки:
Спойлер
[свернуть]
интернет-блог: http://websiteprog.ru
*

Stasweb

  • Живу я здесь
  • 1087
  • 18
Все сделал так
Спойлер
[свернуть]

работает нормально спасибо
*

zomby6888

  • Живу я здесь
  • 1484
  • 167
список всех заказов пользователя:
Спойлер
[свернуть]
интернет-блог: http://websiteprog.ru
*

itckarpatia

  • Осваиваюсь на форуме
  • 152
  • 4
Подскажите как еще вывести ссылку на заказанный товар и фото.

Код
<?php
defined('_JEXEC') or die('');
echo "<h1 class='vm-page-title'>".JText::_('COM_VIRTUEMART_CART_ORDERDONE_THANK_YOU')."</h1>";

echo $this->html;
echo "<br>";
echo "<h3 class='zakaz'>".JText::_('COM_VIRTUEMART_MAIL_SHOPPER_OTP')."</h3>";
require_once(JPATH_VM_ADMINISTRATOR.DS.'models'.DS.'orders.php');
$order = VirtueMartModelOrders::getOrder($this->cart->virtuemart_order_id); ?>


<script type="text/javascript" src="//static.sprosikupi.ru/js/widget/sprosikupi.bootstrap.js">
</script>

<script type="text/javascript">
window.spkPushOrder({
    "apiKey" : "7dc8850dc3b1090e0e3c9b",
    "order"  : "<?php echo $order['details']['BT']->order_number; ?>",
    "email"  : "<?php echo $order['details']['BT']->email; ?>",
    "name":  "<?php echo $order['details']['BT']->first_name; ?>",
    "created": Math.floor((new Date()) / 1000),
    "items"  : [
        {
            "good"  : "<?php echo $order['items']['0']->order_item_sku; ?>",
            "title" : "<?php echo $order['items']['0']->order_item_name; ?>",
            "url"   : "http://www.optom.net.ua/",
            "image" : " "
        },   

]
});
</script>
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться