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

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
А вы смотрите на условие в самом чекауте

Код
        $statictext = JTable::getInstance("statictext","jshop");
        $rowstatictext = $statictext->loadData("order_finish_descr");
        $text = $rowstatictext->text;
        
...
        
        if (trim(strip_tags($text)) == ""){
            $view_name = "checkout";
            $view_config = array("template_path"=>JPATH_COMPONENT."/templates/".$jshopConfig->template."/".$view_name);
            $view = $this->getView($view_name, getDocumentType(), '', $view_config);
            $view->setLayout("finish");
            $view->display();
        }else{
            print $text;
        }

Получается что шаблон finish вызывается только когда statictext не заполнен.

Если же в настройках магазина заполнили statictext - шаблон finish вообще не задействуется.

ЗЫ: разработчикам - вывод напрямую из контроллера минуя view и шаблон!
« Последнее редактирование: 03.10.2012, 13:45:09 от SDKiller »
*

nevigen

  • Moderator
  • 10431
  • 862 / 25
  • http://n*****n.com
хмм...  :)
ну да я тестил на дефолтном.. с пустым... :)
родное спасибо за заказ :)
дальше не лезли :)

Ну тогда 18 евро или ждать плагина от СДКиллера ;)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Вообще это косяк поскольку такой подход неоправдан.

Кто мешает в контроллере сделать assign того же $text во view и выводить по человечески?

Соответственно в шаблоне бы по условию выводилось - если text пустой - то спасибо за заказ, иначе - статиктекст

Зачем делать print из контроллера?
*

SDKiller

  • Живу я здесь
  • 2706
  • 329 / 5
  • ...ergo sum
Для ТС - быстрый хак контроллера (вернее исправление)

В фукнции finish() контроллера checkout заменяем

Код
        if (trim(strip_tags($text)) == ""){
            $view_name = "checkout";
            $view_config = array("template_path"=>JPATH_COMPONENT."/templates/".$jshopConfig->template."/".$view_name);
            $view = $this->getView($view_name, getDocumentType(), '', $view_config);
            $view->setLayout("finish");
            $view->display();
        }else{
            print $text;
        }

на

Код
        if (trim(strip_tags($text)) == ""){   
            $text = '';
        }

        $view_name = "checkout";
        $view_config = array("template_path"=>JPATH_COMPONENT."/templates/".$jshopConfig->template."/".$view_name);
        $view = $this->getView($view_name, getDocumentType(), '', $view_config);
        $view->setLayout("finish");

        $view->assign('text', $text);

        $view->display();

в шаблоне finish меняем

Код
<p><?php print _JSHOP_THANK_YOU_ORDER?></p>

на

Код
<?php
if (!empty($this->text)) {
    echo $this->text;
} else {
?>
<p><?php print _JSHOP_THANK_YOU_ORDER?></p>
<?php
}
?>

Ну и выводите решение от dmitry_stas где вам нужно - при таком раскладе должно сработать.
*

nevigen

  • Moderator
  • 10431
  • 862 / 25
  • http://n*****n.com
Ну можно на доработку предложить..
хотя думаю после платного аддона шаровой доработки не будет :)

У МАКСов видать тоже глаза не кругом успевают смотреть...
Оптимизация тяжелее написания иногда :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Опять пришел SDKiller и все разрулил)))
Большое спасибо SDKiller, dmitry_stas и nevigen! Благодаря Вам вопрос решился.

Кстати, если кто то не понял для чего это делалось. Теперь можно подключить магазин к любому партнерскому сервису, с оплатой за заказы или %. Просто ставим туда же код отслеживания и сообщаем ему номер и сумму заказа, которые мы вытащили на последнюю страницу заказа.

*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
да понятно все, зачем делалось. статус заказа только не забудьте проверять перед выдачей в партнерку
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

linykc

  • Осваиваюсь на форуме
  • 30
  • 13 / 0
Доброго всем времени суток,
развивая тему, как вытащить еще и содержимое заказа?

вот такое не работает...
Код
<?php print $order->product_name; ?> <br />
    <?php print $order->product_ean; ?><br />
    <?php print $order->product_quantity; ?><br />
    <?php print $order->product_item_price; ?><br />
   
    <?php  print formatprice($order->product_quantity * $order->product_item_price); ?><br />

объясните нубу, где вообще найти название  переменной? ("product_name" этоу часть)

зарание спасибо
*

moolkin

  • Захожу иногда
  • 65
  • 15 / 0
разработчики молодцы - добавили всё это в базовый функционал.
Цитировать
объясните нубу, где вообще найти название  переменной? ("product_name" этоу часть)

попробуй вывести сначала вот так:
Код
print_r($order);

Увидишь все возможные переменные.. дальше разберёшься

делаю и помогаю делать сайты на джумле.
кому интересно - стучитесь в мой профиль на фри-лансе
https://www.free-lance.ru/users/Moolkin/
или в аську/скайп
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Друзья!
В продолжение этой темы, загвоздка вышла маленькая, help!

В общем, понадобилось мне на странице "выбора способа оплаты"(надеюсь понятно написал) вытащить переменную, отвечающую за валюту, а именно вот эту
Код
$order->currency_code
Это нужно для того, чтобы убрать из списка "способов оплаты" тот способ, который не содержит эту валюту в рамках этой сессии. На простом языке, если в данный момент выбрана национальная валюта "сум", то инпуты-радио, работающие на рубли или доллары не появляются в списке для выбора способа оплаты.

Как было указан выше способ, я его применил, т.е.

Код
$session = JFactory::getSession();
$order_id = $session->get('jshop_end_order_id');
$order = JTable::getInstance('order', 'jshop');
$order->load($order_id);

Загвоздка в том, что
Код
$order
появилась, но как массив с пустыми значениями.
Код
print_r($order);
например выводит следующее
Код
Array ( ) [order_id] => [order_number] => [user_id] => [order_total] => [order_subtotal] => [order_tax] => [order_tax_ext] => [order_shipping] => [order_payment] => [order_discount] => [shipping_tax] => [payment_tax] => [currency_code] => [currency_code_iso] => [currency_exchange] => [order_status] => [order_created] => [order_date] => [order_m_date] => [shipping_method_id] => [delivery_times_id] => [payment_method_id] 
весь код целиком писать нет смысла, и так видно, что значения не выводятся.
Подмогните советом, как вытащить значение
Код
$order->currency_code
?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
это говорит о том, что вы либо неверно инициализируете переменную $order, либо манипулируете ей до сохранения заказа. судя по тому, что вы пытаетесь отобрать способы оплаты, скорее второе.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Цитировать
либо манипулируете ей до сохранения заказа
ну это как бы и есть условие, что вытащить эту переменную именно на этой странице, я же писал, для чего это надо.
Цитировать
неверно инициализируете переменную $order,
ну поэтому я и обращаюсь за советом, господа!

Выбор способа оплаты - это этап, когда уже определены цены, атрибуты там разные и валюта в том числе. Ведь где то они же есть?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну так и глянули бы тогда, что именно записывается в $order->currency_code при сохранении заказа  ;)

посмотрите содержимое JSFactory::getConfig()

уверен, найдете много интересного
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Упс, тут немного отлучился.

Да, действительно, очень много интересного я нашел
Цитировать
посмотрите содержимое JSFactory::getConfig()
но, черт возьми, то что мне надо не обнаружил. :(

Попробую еще раз попросить о помощи и объясню ситуацию.
На этой странице
\components\com_jshopping\templates\default\checkout\payments.php
списком выводится активные виды оплаты. Выводится через цикл foreach. Что бы отсечь ненужные способы из этого списка, надо добавить условие if в этот цикл. Для условия if необходимо значение $order->currency_code

Так вот, не получается вытащить именно на этой странице $order->currency_code

Вот этот способ не помогает

Код
$session = JFactory::getSession();
$order_id = $session->get('jshop_end_order_id');
$order = JTable::getInstance('order', 'jshop');
$order->load($order_id);

этот способ выводит массив с пустыми значениями

Этот тоже

Код
JSFactory::getConfig()

а этот выводит все что хочешь, но типа валюты там нет, просмотрел по нескольку раз.

Как же все-таки мне заполучить  
Код
$order->currency_code
именно на этой странице, а не при сохранении заказа  Help!! :dry:
« Последнее редактирование: 09.02.2013, 15:32:32 от rafaello9 »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Цитировать
а этот выводит все что хочешь, но типа валюты там нет, просмотрел по нескольку раз.

а JSFactory::getConfig()->currency_code - это что?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

turbolamer

  • Захожу иногда
  • 249
  • 12 / 0
Мне кажется, Вы не туда копаете.

Думаю стоит посмотреть откуда берется валюта на странице просмотра корзины
/shop/cart/view

хотя у себя я ничего такого не нашел.

Просто по логике, она как то отображается на странице корзины, значит и на следующих страницах это можно перехватить

А вы пытаетесь вытащить переменную, которая пишется в базу после подтверждения заказа, то есть ее скорее всего вообще не существует на этом этапе


Но это так, предположения, могу ошибаться
*

rafaello9

  • Захожу иногда
  • 152
  • 2 / 0
Цитировать
а JSFactory::getConfig()->currency_code - это что?
Браво, браво!
 :D yes! :D
Говорят же что на носу очки не видно.
dmitry_stas , запишите, за мной магарыч!!
Спасибо!
*

Brooksus

  • Давно я тут
  • 641
  • 169 / 0
  • Ща спою...
В принципе можно вытащить весь заказ на эту страницу, для этого можно использовать плагин "Guest user registration" и немного изменить файл finish.php
Код
<?php 
$session = JFactory::getSession();
$order_id = $session->get('jshop_end_order_id');
$order = JTable::getInstance('order', 'jshop');
$order->load($order_id);
 
<div>
<iframe class="wrapper" frameborder="0" style="width:700px; height:700px" src="<?php print SEFLink('index.php?option=com_jshopping&controller=user&task=order&order_id='.$order_id.'&tmpl=component',0,0,$jshopConfig->use_ssl)?>">
</iframe>
</div>

<p><?php print _JSHOP_THANK_YOU_ORDER?></p>
Как видно из кода информация о заказе выводится в iframe со страницы управления заказами авторизированного пользователя.
Посмотреть пример можно, как всегда на сайте http://pvi.spb-ies.ru/ Выбирайте заказ без регистрации. Оформление заказа происходит в два клика.
Остается только решить вопрос  с попыткой повторной покупки без регистрации с тем же e-mail, но это уже отдельная тема к плагину.., мне кажется я где то такую темку уже видел.., вот она http://joomlaforum.ru/index.php/topic,256405.0.html
« Последнее редактирование: 06.03.2013, 01:34:22 от Brooksus »
Или + или YM41001160794290, или WMR R189734255107, а лучше все сразу и много.
*

Vitos

  • Захожу иногда
  • 161
  • 6 / 0
У меня подобный вопрос, отдельную тему решил не создавать.
Не могу вытащить текст из дополнительного поля ('ext_field_1') на странице "Адрес" и вывести на странице "Подтвердить заказ".
Подскажите кто знает, буду оч благодарен.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а как вытаскиваете?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Vitos

  • Захожу иногда
  • 161
  • 6 / 0
а как вытаскиваете?
Извините, не могу сейчас скинуть код, нахожусь на работе. Но перепробовал много вариантов :)
Смотрел как выводится на других страничках, и в админке. Даже с помощью javascript пробовал (знаю что крайность). К моему стыду - не получилось.
*

Vitos

  • Захожу иногда
  • 161
  • 6 / 0
Итак, если смотреть в файл previewfinish.php, то первое что приходит в голову - это:
Код
<?php print $this->invoice_info['ext_field_1'] ?>
<?php print $this->delivery_info['ext_field_1'] ?>
Но ничего не происходит, хотя  <?php print $this->delivery_info['f_name'] ?> работает.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а причем тут previewfinish.php вообще?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Vitos

  • Захожу иногда
  • 161
  • 6 / 0
Страница "Подтвердить заказ" - или я что-то не понимаю?
*

nevigen

  • Moderator
  • 10431
  • 862 / 25
  • http://n*****n.com
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Vitos

  • Захожу иногда
  • 161
  • 6 / 0
Всем спасибо, разобрался.
Нужно было в файл
\components\com_jshopping\controllers\checkout.php
добавить (примерно 740 строка):
Код
$invoice_info['ext_field_1'] = $adv_user->ext_field_1;
теперь в previewfinish.php пишем куда нужно
Код
<?php print $this->invoice_info['ext_field_1'] ?>
и все работает. Печалит только, что это хак, хотелось бы обновляться нормально.
*

Bartlebi

  • Захожу иногда
  • 75
  • 1 / 0
Эм.. Куда-то мое сообщение потерлось.
Повторю.
Как вытаскивать данные о заказе, а именно наименование (или ИД) каждой позиции внутри заказа, а также их количество и цену за единицу?
Вывел список из print_r($order);
Но там нет нужных вещей..
« Последнее редактирование: 01.05.2014, 15:59:48 от Bartlebi »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bartlebi

  • Захожу иногда
  • 75
  • 1 / 0
Спасибо, будем пробовать.
*

Bartlebi

  • Захожу иногда
  • 75
  • 1 / 0
Все прекрасно работает, но есть одно но. Если товаров в заказе более 1, то в скрипт передается только один параметр, что, вобщем-то, ожидаемо. Вопрос как правильно передать массив из php в js?
Не кидайте ссылками на json_encode и прочие вещи, сам не осилю. Если у кого есть желание помочь, то милости прошу.
Подставить значения необходимо в сюда:
Код
var yaParams = {
  order_id: "12345",
  order_price: "123.00",
  currency: "RUR",
  exchange_rate: 1,
  goods:
                 [
                                {
                                  id: "123",
                                  name: "product1",
                                  price: "100.00",
                                  quantity: "20"
                                },  
                  ]
};
</script>
« Последнее редактирование: 01.05.2014, 17:58:26 от Bartlebi »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вставить на главную страницу заголовок и описание?

Автор art22

Ответов: 1
Просмотров: 710
Последний ответ 20.06.2023, 16:17:41
от kit2m2
Плагин - Товар на складе или Товар под заказ для JoomShopping [Скачать]

Автор kit2m2

Ответов: 58
Просмотров: 9198
Последний ответ 18.05.2023, 12:59:00
от Akeksandr
[Решено] - Заказ на одной странице

Автор shurakana

Ответов: 58
Просмотров: 16485
Последний ответ 16.03.2023, 09:53:16
от kit2m2
MSI Юзабилити "Списка заказов" Красим заказ в цвет его статуса

Автор Cerber

Ответов: 22
Просмотров: 9168
Последний ответ 16.12.2021, 13:31:33
от Mister Shadow
Поиск заказа по номеру телефона клиента

Автор Shiffer

Ответов: 19
Просмотров: 2344
Последний ответ 07.12.2021, 19:43:38
от anatol81n