Новости Joomla

Joomla 6: Автоматические обновления ядра в Joomla

Joomla 6: Автоматические обновления ядра в Joomla

👩‍💻 Joomla 6: Автоматические обновления ядра в Joomla. В октябрьском номере официального журнала Joomla - Joomla Community Magazine вышла статья David Jardin, где рассказывается о внедрении функционала автоматического обновления ядра Joomla.❓Почему сейчас? Joomla же жила как-то 20 лет без автоматических обновлений?Это оказалась самая востребованная за последнее время от пользователей Joomla функция. Но, основная причина внедрения - проблемы безопасности. Всякий раз, когда в новой версии Joomla устраняется уязвимость, злоумышленники начинают анализировать код, чтобы выяснить, какая именно уязвимость была исправлена. И как только они это выясняют - начинается разработка автоматизированных скриптов для взлома как можно большего количества сайтов. Затем доступы к автоматически взломанным сайтам продаются в профильных чатах и ресурсах "пачками" по несколько сотен тысяч или миллионов сайтов. Ваш сайт могли взломать несколько лет назад, но воспользоваться уязвимостью могут не сразу, а тогда, когда у злоумышленников возникнет необходимость. И только после этого вы может быть узнаете об этом.Анализ патча, понимание проблемы и разработка скрипта требуют времени. И если владелец сайта не обновит его до истечения этого срока, сайт может быть взломан. А хакеры действуют быстро! Для критических, легко эксплуатируемых уязвимостей речь идёт о временном окне в 10–12 часов — и этого времени явно недостаточно, чтобы все успели обновить свои сайты.Здесь выходят на первый план автоматизированные обновления: проект Joomla теперь может активно устанавливать обновления (и, следовательно, исправления безопасности) на сайты, чтобы гарантировать, что сайты действительно обновляются вовремя.🕘 От первых идей до реализации прошло 5 лет. И здесь можно вспомнить, как в Joomla 5.1 внедрили TUF - The Update Framework, позволяющий устанавливать защищённое соединение между сайтом и сервером обновлений и исключает возможность supply chain attack (атаки на цепочку поставок).Об особенностях реализации и требованиях к сайту читаем подробнее в статье на JCM.@joomlafeed#joomla #secutiry #jcm

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™

Первый выпуск журнала NorrNext в честь 20-й годовщины Joomla™. Интервью с волонтёрами 🎈Ну что, друзья, вот и настал этот долгожданный момент. Мы выпустили первое издание собственного журнала под эгидой NorrNext, который включает в себя интервью с видными деятелями сообщества из разных стран и континентов.Общий нарратив: показать, что нас объединяет (Joomla) и узнать больше о людях, которые вносят свой вклад в развитие платформы в своих сообществах. 20 лет — это много. Давайте же узнаем о коллегах 🎁 Первый цикл включает такие страны, как Австрия, Испания, Латвия, Россия, Румыния, Тайланд, Черногория, Чехия.⚙️ С кем интервью: ✔️ Владимир Елисеев 🇷🇺✔️ Дмитрий Рекун 🇱🇻✔️ Дмитрий Цымбал 🇷🇺✔️ Евгений Сивоконь 🇷🇺 ✔️ Сергей Толкачёв 🇷🇺✔️ Dénes Székely 🇷🇴✔️ Jan Pavelka 🇨🇿✔️ Miljan Vujosevic 🇲🇪✔️ Sergio Iglesias 🇪🇸✔️ Sigrid Gramlinger 🇦🇹✔️ Pisan Chueatchatchai 🇹🇭‼️ Новые интервью будут добавляться до конца декабря 2025. Заходите по ссылке время от времени💡👉 Читать далее

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

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Информация о заказе
« : 03.08.2011, 01:38:44 »
На последней странице "Спасибо за ваш заказ" есть ссылка на подробную информацию о заказе.
Как вместо этой ссылки вывести как раз эту полную информацию?

[вложение удалено Администратором]
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Информация о заказе
« Ответ #1 : 03.08.2011, 23:32:07 »
\components\com_virtuemart\themes\default\templates\pages\checkout.thankyou.tpl.php

строки  79-83
<p>
   <a href="<?php $sess->purl(SECUREURL.basename($_SERVER['PHP_SELF'])."?page=account.order_details&order_id=". $order_id)?>" onclick="if( parent.parent.location ) { parent.parent.location = this.href.replace(/index2.php/, 'index.php' ); };">
       <?php echo $VM_LANG->_('PHPSHOP_ORDER_LINK')?>
    </a>
</p>

удалить и вместо их дописать

<?
header("Location:http://www.ВАШСАЙТ.COM/index.php?page=account.order_details&order_id=$order_id&option=com_virtuemart&Itemid=2");
?>

т.е. ваша ссылка на страницу "Информация о заказе" и вместо числа конкретного order_id после "=" пишем переменную $order_id



Веб-разработка: заказ. Только новая разработка.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Информация о заказе
« Ответ #2 : 04.08.2011, 02:19:15 »
fsv, спасибо! +1
Работает, но только на половину!)))
Как теперь вверху вывести "Спасибо за ваш заказ"? А то ка то не правильно получается - покупатели не поймут, что заказ принят.
Если вставить этот кусок в самое начало account.order_details.tpl.php - пустая страница
Код
<h3><?php echo $VM_LANG->_('PHPSHOP_THANKYOU')?></h3>
<p>
  <?php
  echo vmCommonHTML::imageTag( VM_THEMEURL .'images/button_ok.png', 'Success', 'center', '48', '48' ); ?>
    <?php echo $VM_LANG->_('PHPSHOP_THANKYOU_SUCCESS')?>
 
<br /><br />
<?php echo $VM_LANG->_('PHPSHOP_EMAIL_SENDTO').": <strong>". $user->user_email . '</strong>'; ?><br />
</p>
« Последнее редактирование: 04.08.2011, 02:46:03 от Katerina01 »
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Информация о заказе
« Ответ #3 : 04.08.2011, 12:04:44 »
В самом начале не надо. Попробуйте где-нибудь в стр.23 после
if( $db->f('order_number')) {
?>

У меня сейчас нет возможности проверить и что-нибудь точнее подсказать. Может быть вечером, если будет время.

Веб-разработка: заказ. Только новая разработка.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Информация о заказе
« Ответ #4 : 04.08.2011, 12:33:26 »
Чуток промахнулась вставляла до этой строчки.

Теперь вставила как надо, из всего куска работает только это:

<?php
    echo vmCommonHTML::imageTag( VM_THEMEURL .'images/button_ok.png', 'Success', 'center', '48', '48' ); ?>

Короче картинка есть, а текста нет.
Наверное придется прямо в файле писать.....


[вложение удалено Администратором]
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Информация о заказе
« Ответ #5 : 04.08.2011, 12:41:41 »
не после 23, а после стр.25
<div class="pathway"><?php echo $vmPathway; ?></div>
вставьте, т.к pathway по идее должен быть выше
ну и после pathway переносы строк для красоты, если надо -  <br /><br />

почему остальное не выводится, надо посмотреть

UPD:
попробуйте в account.order_details.tpl.php
после стр.18
mm_showMyFileName( __FILE__ );
добавить
global $VM_LANG;

« Последнее редактирование: 04.08.2011, 12:46:50 от fsv »
Веб-разработка: заказ. Только новая разработка.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Информация о заказе
« Ответ #6 : 04.08.2011, 12:50:25 »
Да pathway мне здесь и не нужен, я его уберу. У меня как бы в принципе нет учетной записи - все покупки без регистрации.
Просто интересно почему только картинка выводится?
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Информация о заказе
« Ответ #7 : 04.08.2011, 12:53:38 »
Цитировать
UPD:
попробуйте в account.order_details.tpl.php
после стр.18
mm_showMyFileName( __FILE__ );
добавить
global $VM_LANG;

тоже нет текста, хотя направление вроде бы правильное
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Информация о заказе
« Ответ #8 : 05.08.2011, 00:03:11 »
Katerina01,
в \components\com_virtuemart\themes\default\templates\pages\checkout.thankyou.tpl.php
ничего удалять не надо, после всего в конце дописать не то, что я ранее указал, а лучше

<?php
vmRedirect( $sess->url(SECUREURL.basename($_SERVER['PHP_SELF'])."?page=account.order_details&order_id=". $order_id));
?>



Веб-разработка: заказ. Только новая разработка.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Информация о заказе
« Ответ #9 : 05.08.2011, 01:52:17 »
Кстати в первом варианте я ничего и не удаляла - просто вставила в самом конце - работало и так.

А это не работает:
Код
<?php
vmRedirect( $sess->url(SECUREURL.basename($_SERVER['PHP_SELF'])."?page=account.order_details&order_id=". $order_id));
?>

Редирект на главную получается, после нажатия кнопки "оформить заказ"

А если взять нужное из account.order_details.tpl.php и положить в checkout.thankyou.tpl.php
 как заставить чтобы потом это все работало? Наверное это самый трудновыполнимый вариант. Пока что оставила 1 вариант, текст забила руками. :-(
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Информация о заказе
« Ответ #10 : 05.08.2011, 02:50:14 »
А это не работает:
Код
<?php
vmRedirect( $sess->url(SECUREURL.basename($_SERVER['PHP_SELF'])."?page=account.order_details&order_id=". $order_id));
?>

Странно, у меня работает. После нажатия на кнопку "Оформить заказ" перебрасывает в сам заказ (Информация о заказе).
Первый вариант универсальный, второй "более VM" ).

А если взять нужное из account.order_details.tpl.php и положить в checkout.thankyou.tpl.php

Только, наверное, наоборот. Во-первых детальный просмотр заказа нужен, и также потому что из checkout.thankyou.tpl.php перебрасывает в account.order_details.tpl.php.
Веб-разработка: заказ. Только новая разработка.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Информация о заказе
« Ответ #11 : 05.08.2011, 04:50:16 »
fsv, постараюсь объяснить логику...
Там где у нас "Спасибо за ваш заказ" т.е. по сути это checkout.thankyou.tpl.php, у меня еще форма QIWI, в которой уже забита общая стоимость покупки вкл. доставку (order_total).
Все оформление проходит в 2 шага и покупатель не видит Общую сумму (включая доставку) и пугается когда в этой форме сумма больше чем та Итоговая сумма в корзине (там только итог по товарам без доставки).
Поэтому мне на этой странице нужно показать покупателю Хотя Бы заказанные товары, цены и Итоговую сумму включая доставку!
Отсюда вопрос:
Цитировать
А если взять нужное из account.order_details.tpl.php и положить в checkout.thankyou.tpl.php
А ссылка на account.order_details.tpl.php пусть бы так и жила своей жизнью в конце страницы!)))
Но беда в том что своими силами у меня не вышло так сделать. Все попытки приводят к пустой странице.
Вы предложили другой вариант - перебрасывать сразу на account.order_details.tpl.php. Вариант хорош, но текст VM_LANG не выводится (в принципе поправимо) и покупателю придется долго напрягаться чтобы отыскать этот ИТОГ (придется отредактировать account.order_details.tpl.php и опять же он лишается Полной информации)
Сори если сильно много букв....интернет маркетинг - тонкая наука.....в 2-х словах не расскажешь)))
*

fsv

  • Moderator
  • 2781
  • 411 / 2
Re: Информация о заказе
« Ответ #12 : 05.08.2011, 09:33:08 »
....Наверное это самый трудновыполнимый вариант. Пока что оставила 1 вариант, текст забила руками. :-(

Для того, чтобы в account.order_details.tpl.php выводился кусок кода из checkout.thankyou.tpl.php с переменными из языкового файла (то, что и не отображалось), надо
ИЗ
\administrator\components\com_virtuemart\languages\checkout\russian.php
'PHPSHOP_THANKYOU' => 'Спасибо за Ваш заказ.',
'PHPSHOP_THANKYOU_SUCCESS' => 'Ваш заказ принят!',
'PHPSHOP_EMAIL_SENDTO' => 'Подтверждающее письмо было выслано по адресу',
скопировать В
\administrator\components\com_virtuemart\languages\common\russian.php

Когда проверял это, последнее ваше объяснение не видел. Но, если надо наоборот, то аналогично...




Веб-разработка: заказ. Только новая разработка.
*

ELLE

  • Глобальный модератор
  • 4505
  • 893 / 0
Re: Информация о заказе
« Ответ #13 : 05.08.2011, 21:20:13 »
Цитировать
Для того, чтобы в account.order_details.tpl.php выводился кусок кода из checkout.thankyou.tpl.php с переменными из языкового файла, надо...
Проверила - работает.

В итоге сделала так: берем нужные куски из account.order_details.tpl.php и вставляем в конце checkout.thankyou.tpl.php
В моем случае это:
Код
<!-- Begin Order Items Information --> 
 <tr class="sectiontableheader">
   <th align="left" colspan="2"><?php echo $VM_LANG->_('PHPSHOP_ORDER_ITEM')?></th>
 </tr>
 <tr>
   <td colspan="4">
<?php
$dbdl = new ps_DB;
/* Check if the order has been paid for */
if ($db->f("order_status") == ENABLE_DOWNLOAD_STATUS && ENABLE_DOWNLOADS) {

$q = "SELECT `download_id` FROM #__{vm}_product_download WHERE";
$q .= " order_id =" .(int)$vars["order_id"];
$dbdl->query($q);

// $q = "SELECT * FROM #__{vm}_product_download WHERE order_id ='" . $db->f("order_id")
// $dbbt->query($q);


// check if download records exist for this purchase order
if ($dbdl->next_record()) {
echo "<b>" . $VM_LANG->_('PHPSHOP_DOWNLOADS_CLICK'). "</b><br /><br />";

echo($VM_LANG->_('PHPSHOP_DOWNLOADS_SEND_MSG_3').DOWNLOAD_MAX.". <br />");

$expire = ((DOWNLOAD_EXPIRE / 60) / 60) / 24;
echo(str_replace("{expire}", $expire, $VM_LANG->_('PHPSHOP_DOWNLOADS_SEND_MSG_4')));

echo "<br /><br />";
}
//else {
//echo "<b>" . $VM_LANG->_('PHPSHOP_DOWNLOADS_EXPIRED'). "</b><br /><br />";
//}
}
?>
   </td>
 </tr>
 <!-- END HACK EUGENE -->
 <tr>
   <td colspan="2">

<table width="100%" cellspacing="0" cellpadding="2" border="0">
       <tr align="left">
         <th><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_QTY')?></th>
         <th><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_NAME')?></th>
         <th><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_SKU')?></th>
         <th><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_PRICE')?></th>
         <th align="right"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_TOTAL')?>&nbsp;&nbsp;&nbsp;</th>
       </tr>
       <?php
       $dbcart = new ps_DB;
       $q  = "SELECT * FROM #__{vm}_order_item ";
       $q .= "WHERE #__{vm}_order_item.order_id='$order_id' ";
       $dbcart->query($q);
       $subtotal = 0;
       $dbi = new ps_DB;
$dbdel = new ps_DB;

       while ($dbcart->next_record()) {

        if ($db->f("order_status") == ENABLE_DOWNLOAD_STATUS && ENABLE_DOWNLOADS) {
        /* search for download record that corresponds to this order item */
        $q = "SELECT `download_id`, `file_name`, `download_max`, `end_date` FROM #__{vm}_product_download WHERE";
        $q .= " `order_id`=" . intval($vars["order_id"]);
        $q .= " AND `product_id`=". intval($dbcart->f("product_id"));
        $dbdl->query($q);

        }
        /* END HACK EUGENE */

        $product_id = null;

// ***** Add product_publish to SELECT statement.

        $dbi->query( "SELECT product_id, product_publish FROM #__{vm}_product WHERE product_sku='".$dbcart->f("order_item_sku")."'");
        $dbi->next_record();
        $product_id = $dbi->f("product_id" );

// ***** Set new flag to guard against the output of the product link by checking existance of product and its published status.

$link_to_product = (!empty( $product_id ) && ($dbi->f('product_publish') == 'Y'));
?>
       <tr align="left">
         <td valign="top"><?php $dbcart->p("product_quantity"); ?></td>
         <td valign="top"><?php
             if ($dbdl->next_record()) {

// First output a link to the product or just the product name if the product has been removed.

if( $link_to_product) {
echo '<a href="'.$sess->url( $mm_action_url."index.php?page=shop.product_details&product_id=$product_id").'" title="'.$dbcart->f("order_item_name").'">';
}

  echo $dbcart->f("order_item_name");

if( $link_to_product) {
echo "</a>";
}

// ***** This is all new code to output multiple links and download expiration details.

// Now loop through each download and output links to each filename.

do {

$download_id = $dbdl->f('download_id');
$download_max = (int)$dbdl->f('download_max');
$end_date = (int)$dbdl->f('end_date');
$time = time();

// If the download has maxed out or expired then delete it from the database and don't display it.

if (($download_max < 1) || (($end_date != 0) && ($time > $end_date))) {
$q ="DELETE FROM #__{vm}_product_download";
$q .=" WHERE download_id = '" . $download_id . "'";
$dbdel->query($q);
$dbdel->next_record();
} else {

// Hyperlink the downloadable order item direct to the downloadFunction.

// ***** NOTE: URL changed to directly access download file.
// ***** NOTE: May wish to consider adding classname to <p> for easier control of layout and maybe change <p> to <div>.

$url = $sess->url( $mm_action_url."/index.php?option=com_virtuemart&page=shop.downloads&func=downloadRequest");
echo '<p><a href="'."$url&download_id=".$download_id.'" title="'.$VM_LANG->_('PHPSHOP_DOWNLOADS_LINK').'">'
. '<img src="'.VM_THEMEURL.'images/download.png" alt="'.$VM_LANG->_('PHPSHOP_DOWNLOADS_LINK').'" align="left" border="0" />'
. $dbdl->f('file_name')
. '</a><br/>(';

// Output downloads remaining and expiration date.

// ***** NOTE: May wish to set this up as a configuration option or leave it to the developer as it is in a theme template.

if ($download_max > 1)
echo str_replace("{count}", $download_max, $VM_LANG->_('PHPSHOP_DOWNLOADS_REMAINING'));
else
echo str_replace("{count}", $download_max, $VM_LANG->_('PHPSHOP_DOWNLOAD_REMAINING'));

if ($end_date > 0)
echo str_replace("{date}", date('d/m/y', $end_date), $VM_LANG->_('PHPSHOP_DOWNLOAD_VALID_UNTIL'));


echo ')<p>';
}
  } while ($dbdl->next_record());
 }
        else {

// ***** Change guard to use new flag $link_to_product instead of !empty( $product_id )

        if( $link_to_product) {
          echo '<a href="'.$sess->url( $mm_action_url."index.php?page=shop.product_details&product_id=$product_id").'" title="'.$dbcart->f("order_item_name").'">';
          }
          $dbcart->p("order_item_name");
          echo " <div style=\"font-size:smaller;\">" . $dbcart->f("product_attribute"). "</div>";

// ***** Change guard to use new flag $link_to_product instead of !empty( $product_id )

          if( $link_to_product) {
          echo "</a>";
          }
        }
?>
         </td>
         <td valign="top"><?php $dbcart->p("order_item_sku"); ?></td>
         <td valign="top"><?php /*
$price = $ps_product->get_price($dbcart->f("product_id"));
$item_price = $price["product_price"]; */
if( $auth["show_price_including_tax"] ){
$item_price = $dbcart->f("product_final_price");
}
else {
$item_price = $dbcart->f("product_item_price");
}
echo $CURRENCY_DISPLAY->getFullValue($item_price, '', $db->f('order_currency'));

          ?></td>
         <td valign="top" align="right"><?php $total = $dbcart->f("product_quantity") * $item_price;
         $subtotal += $total;
         echo $CURRENCY_DISPLAY->getFullValue($total, '', $db->f('order_currency'));
          ?>&nbsp;&nbsp;&nbsp;</td>
       </tr><?php
       }
?>
       <tr>
         <td colspan="4" align="right">&nbsp;&nbsp;</td>
         <td>&nbsp;</td>
       </tr>
       <tr>
         <td colspan="4" align="right"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_SUBTOTAL')?> :</td>
         <td align="right"><?php echo $CURRENCY_DISPLAY->getFullValue($subtotal, '', $db->f('order_currency'))?>&nbsp;&nbsp;&nbsp;</td>
       </tr>

<tr>
         <td colspan="4" align="right"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_SHIPPING')?> :</td>
         <td align="right"><?php
         $shipping_total = $db->f("order_shipping");
         if ($auth["show_price_including_tax"] == 1)
         $shipping_total += $db->f("order_shipping_tax");
         echo $CURRENCY_DISPLAY->getFullValue($shipping_total, '', $db->f('order_currency'));

           ?>&nbsp;&nbsp;&nbsp;</td>
       </tr>


<tr>
         <td colspan="3" align="right">&nbsp;</td>
         <td colspan="2" align="right"><hr/></td>
       </tr>
       <tr>
         <td colspan="4" align="right">
         <strong><?php echo $VM_LANG->_('PHPSHOP_CART_TOTAL').": "; ?></strong>
         </td>
         
         <td align="right"><strong><?php  
         $total = $db->f("order_total");
         echo $CURRENCY_DISPLAY->getFullValue($total, '', $db->f('order_currency'));
         ?></strong>&nbsp;&nbsp;&nbsp;</td>
       </tr>
 <?php
 if ($auth["show_price_including_tax"] == 1) {
 ?>
       

        <?php
 }
 ?>    <tr>
         <td colspan="3" align="right">&nbsp;</td>
         <td colspan="2" align="right"><hr/></td>
       </tr>
       <tr>
         <td colspan="3" align="right">&nbsp;</td>
         <td colspan="2" align="right"><?php
echo ps_checkout::show_tax_details( $db->f('order_tax_details'), $db->f('order_currency') );
           ?>&nbsp;&nbsp;&nbsp;</td>
       </tr>
     </table>
   </td>
 </tr>
</table>
 <!-- End Order Items Information -->

В итоге получаем такую картинку (вложение)
т.е. после оформления заказа покупатель  видит заказанные товары, общую сумму покупки и может сразу произвести платеж.
P.S отдельное спасибо fsv за помощь *DRINK*

[вложение удалено Администратором]
« Последнее редактирование: 05.08.2011, 21:28:11 от Katerina01 »
*

step09

  • Захожу иногда
  • 65
  • 0 / 0
Re: Информация о заказе
« Ответ #14 : 31.08.2011, 13:55:24 »
Спасибо, мне помогло
*

Henzel

  • Новичок
  • 2
  • 0 / 0
Re: Информация о заказе
« Ответ #15 : 29.09.2011, 00:31:54 »
Привет!
Вопрос не в тему, но где вы взяли модуль для qiwi кошелька для VirtueMart? всё никак не могу найти, подскажите, пожалуйста
*

Henzel

  • Новичок
  • 2
  • 0 / 0
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Уведомление на 2 почтовых ящика при заказе товара.

Автор M.Imperator

Ответов: 35
Просмотров: 25925
Последний ответ 10.07.2019, 17:43:33
от hmr
При заказе не отправляются письма на электронную почту

Автор vsokol

Ответов: 5
Просмотров: 4153
Последний ответ 29.05.2016, 07:17:31
от vsokol
Прикрепить файлы в письмо с уведомлением о заказе

Автор sashgera

Ответов: 0
Просмотров: 3706
Последний ответ 16.05.2016, 14:18:32
от sashgera
[Решено] Изображение и ссылка на товар в теле письма о заказе

Автор zmancer

Ответов: 18
Просмотров: 11434
Последний ответ 11.03.2016, 22:28:28
от Pustota
Добавить категорию товара в уведомлении о заказе. Решено

Автор niggatub

Ответов: 7
Просмотров: 4781
Последний ответ 14.07.2015, 11:30:29
от FlahsAxel