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

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Re: JoomShopping + SMS
« Ответ #210 : 14.10.2016, 17:03:01 »
Если в 3 строке ошибка тогда как правильно вызвать $this->order->payment_id ?

Сложно сказать, не видя всего кода. Попробуйте вставить вывод содержимого, и увидите, в чем ошибка.

Код: php
$text .= JText::_(_JSHOP_ORDER_NUMBER).": ".$this->order->order_number."\n";
$text .= JText::_(_JSHOP_TOTAL).": ".number_format($this->order->order_total, 0, '.', ' ')." ".$this->order->currency_code."\n";
var_dump($this->order->payment_id); die("Пипец где то тут");
$text .= JText::_($this->order->payment_id)."\n";
$text .= "Заказ принят";

Ну и какой текст ошибки то?
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

kit2m2

  • Живу я здесь
  • 3269
  • 268 / 0
  • Беру сайты на полное сопровождение
Re: JoomShopping + SMS
« Ответ #211 : 14.10.2016, 17:05:13 »
Если в 3 строке ошибка тогда как правильно вызвать $this->order->payment_id ?
Читаю, уже которое сообщение муссируется одно и этоже... По моему так:
Код
$text .= JText::_(_JSHOP_ORDER_NUMBER).": ".$this->order->order_number."\n";
$text .= JText::_(_JSHOP_TOTAL).": ".number_format($this->order->order_total, 0, '.', ' ')." ".$this->order->currency_code."\n";
$text .= $this->order->payment_id)."\n";
$text .= "Заказ принят";

$text .= JText::_( Здесь должна быть языковая константа, а не переменная );
Расширения для JoomShopping | Расширения на заказ | Сайты и магазины под ключ: Дизайн, Верстка, Программирование, СЕО-оптимизация, Сопровождение, Перенос на Joomla 4+ и JoomShopping 5+
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: JoomShopping + SMS
« Ответ #212 : 14.10.2016, 17:06:53 »
что такое
как правильно вызвать $this->order->payment_id
? $this->order->payment_id - это id способа заказа. целое число. а не дух :) куда и зачем вы его хотите вызвать?

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

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Re: JoomShopping + SMS
« Ответ #213 : 14.10.2016, 17:14:13 »
$text .= JText::_( Здесь должна быть языковая константа, а не переменная );
Не обязательно. Вот ссылка на док.
Лично мне интересно, что у ТС в $this->order->payment_id содержится. Константа ведь тоже содержит данные, как и переменная, но эти данные взяты из языкового файла.
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

SeBun

  • BanMaster
  • 4018
  • 259 / 5
  • @SeBun48
Re: JoomShopping + SMS
« Ответ #214 : 14.10.2016, 17:15:50 »
что такое? $this->order->payment_id - это id способа заказа. целое число. а не дух
strval?
Если так, то целое должно пристыковываться к строке и автоматом преобразовываться в строку. Или я старею?
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Qverty2012

  • Захожу иногда
  • 107
  • 0 / 0
Re: JoomShopping + SMS
« Ответ #215 : 14.10.2016, 18:53:17 »

Кстати как  правильно вывести через echo все значения кот. нужно передать в SMS? Т.к. после выполнения этот файла сразу переходит на страницу - Заказ выполнен.

И о главном продолжаю дальше во всем разбираться  - обьясните пож. - как происходит переход с одной формы оформления заказа на другую  (с файлами разобрался - address.php, payments.php т.д.) не могу понять как со страницы оформления данных заказчика переходим на выбор оплаты- далее доставки - и тд.

Вот ввесь код файла ordermail.php
Задача получить значение - Вид оплаты, если выбран предоплата - сделать отправку дополнительного SMS с картой для оплаты. Вот на получении значения вида оплаты  получился ступор. То что в получении значения payment  - ошибка  это я понимаю, да и payment id нужен на самом деле а payment_description - короче вот здесь непонятно.
Код
/**
* @version      4.11.2 18.12.2014
* @author       MAXXmarketing GmbH
* @package      Jshopping
* @copyright    Copyright (C) 2010 webdesigner-profi.de. All rights reserved.
* @license      GNU/GPL
*/

defined('_JEXEC') or die();

class jshopOrderMail extends jshopBase{

private $order_id;
private $manuallysend;
private $order;
private $show_percent_tax;
private $hide_subtotal;
private $order_email_descr;
private $order_email_descr_end;
private $text_total;
private $file_generete_pdf_order;
private $config_fields;
private $count_filed_delivery;
private $listVendors;
private $vendors_send_message;
private $vendor_send_order_admin;
private $vendor_send_order;
private $admin_send_order;
private $payment;


public function setData($order_id, $manuallysend = 0){
$this->order_id = $order_id;
$this->manuallysend = $manuallysend;
$this->loadOrderData();
}

public function getOrderId(){
return $this->order_id;
}

public function getManuallysend(){
return $this->manuallysend;
}

public function getPayment(){
return $this->payment;
}


public function getMessage($type, $products = null, $show_customer_info = 1, $show_weight_order = 1, $show_total_info = 1, $show_payment_shipping_info = 1){
$jshopConfig = JSFactory::getConfig();
$dispatcher = JDispatcher::getInstance();
$liveurlhost = JURI::getInstance()->toString(array("scheme",'host', 'port'));

if ($type=='client'){
$client = 1;
}else{
$client = 0;
}
if (is_null($products)){
$products = $this->order->products;
}

$view = $this->getView('checkout');
$view->setLayout("orderemail");
$view->assign('client', $client);
$view->assign('show_customer_info', $show_customer_info);
$view->assign('show_weight_order', $show_weight_order);
$view->assign('show_total_info', $show_total_info);
$view->assign('show_payment_shipping_info', $show_payment_shipping_info);
$view->assign('config_fields', $this->config_fields);
$view->assign('count_filed_delivery', $this->count_filed_delivery);
$view->assign('order_email_descr', $this->order_email_descr);
$view->assign('order_email_descr_end', $this->order_email_descr_end);
$view->assign('config', $jshopConfig);
$view->assign('order', $this->order);
$view->assign('products', $products);
$view->assign('show_percent_tax', $this->show_percent_tax);
$view->assign('hide_subtotal', $this->hide_subtotal);
$view->assign('noimage', $jshopConfig->noimage);
$view->assign('text_total',$this->text_total);
$view->assign('liveurlhost',$liveurlhost);
if ($type=='vendor'){
$dispatcher->trigger('onBeforeCreateTemplateOrderPartMail', array(&$view));
}else{
$dispatcher->trigger('onBeforeCreateTemplateOrderMail', array(&$view));
}
return $view->loadTemplate();
}

public function send(){
$jshopConfig = JSFactory::getConfig();
$dispatcher = JDispatcher::getInstance();

$dispatcher->trigger('onBeforeSendEmailsOrder',
array(&$this->order, &$this->listVendors, &$this->file_generete_pdf_order, &$this->admin_send_order, &$this));

$message_client = $this->getMessage('client');
$message_admin = $this->getMessage('admin');
$this->loadMessageForListVendors();

if ($this->getGeneretePdf()){
$this->order->generatePdf($this->file_generete_pdf_order);
}

$send = array();

//send mail client
if ($this->order->email){
$send['client'] = $this->sendMail('client', $this->order->email, $message_client);
}

//send mail admin
if ($this->admin_send_order){
$send['admin'] = $this->sendMail('admin', $jshopConfig->getAdminContactEmails(), $message_admin);
}

//send message mail vendors
if ($this->vendors_send_message || $this->vendor_send_order){
foreach($this->listVendors as $k=>$vendor){
$send['vendormessage:'.$vendor->id] = $this->sendMail('vendormessage', $vendor->email, $vendor->message, $vendor);
}
}

//send order vendors
if ($this->vendor_send_order_admin){
foreach($this->listVendors as $k=>$vendor){
$send['vendor:'.$vendor->id] = $this->sendMail('vendor', $vendor->email, $message_admin, $vendor);
}
}
//отправляем SMS
if ($this->order->mobil_phone != "") {
$client = new SoapClient ('http://turbosms.in.ua/api/wsdl.html');
$auth = Array (
'login' => 'login',
'password' => 'password'
);
$result = $client->Auth ($auth);

$text .= JText::_(_JSHOP_ORDER_NUMBER).": ".$this->order->order_number."\n";
$text .= JText::_(_JSHOP_TOTAL).": ".number_format($this->order->order_total, 0, '.', ' ')." ".$this->order->currency_code."\n";
/* $text .= $this->payment."\n"; */
$text .= "Заказ принят";
$sms = Array (
'sender' => 'Teh-Shop',
'destination' => $this->order->mobil_phone,
'text' => $text
);

$result = $client->SendSMS ($sms);
                                                 }


public function getSubjectMail($type, $order){
if ($type=='vendormessage'){
$subject = sprintf(_JSHOP_NEW_ORDER_V, $order->order_number, "");
}else{
$subject = sprintf(_JSHOP_NEW_ORDER, $order->order_number, $order->f_name." ".$order->l_name);
}
extract(js_add_trigger(get_defined_vars(), "after"));
return $subject;
}

public function sendMail($type, $recipient, $message, $vendor = null){
$app = JFactory::getApplication();
$jshopConfig = JSFactory::getConfig();
$dispatcher = JDispatcher::getInstance();

$mailfrom = $app->getCfg('mailfrom');
$fromname = $app->getCfg('fromname');
$pdfsend = $this->getPdfSend();
$manuallysend = $this->getManuallysend();
$subject = $this->getSubjectMail($type, $this->order);
$pdfsendtype = $this->getPdfSendType($type);

$mailer = JFactory::getMailer();
$mailer->setSender(array($mailfrom, $fromname));
$mailer->addRecipient($recipient);
$mailer->setSubject($subject);
$mailer->setBody($message);
if ($pdfsendtype){
$mailer->addAttachment($jshopConfig->pdf_orders_path."/".$this->order->pdf_file);
}
$mailer->isHTML(true);
$dispatcher->trigger($this->getSendMailTriggerType($type),
array(&$mailer, &$this->order, &$manuallysend, &$pdfsend, &$vendor, &$this->vendors_send_message, &$this->vendor_send_order));
return $mailer->Send();
}

protected function loadOrderData(){
$jshopConfig = JSFactory::getConfig();

$this->order = JSFactory::getTable('order', 'jshop');
$this->order->load($this->getOrderId());
$this->order->prepareOrderPrint('', 1);
$this->show_percent_tax = $this->order->getShowPercentTax();
$this->hide_subtotal = $this->order->getHideSubtotal();
$this->order->fixConfigShowWeightOrder();
$this->order_email_descr = $this->order->getStaticText('order_email_descr');
if ($this->getManuallysend()){
$order_email_descr_manually = $this->order->getStaticText('order_email_descr_manually');
if (trim($order_email_descr_manually)!=''){
$this->order_email_descr = $order_email_descr_manually;
}
}
$this->order_email_descr_end = $this->order->getStaticText('order_email_descr_end');
$this->text_total = $this->order->getTextTotal();

$this->file_generete_pdf_order = $jshopConfig->file_generete_pdf_order;        
$this->config_fields = $jshopConfig->getListFieldsRegisterType('address');
$this->count_filed_delivery = $jshopConfig->getEnableDeliveryFiledRegistration('address');

$this->listVendors = $this->getListVendors($this->order);
$this->vendors_send_message = $this->getVendorsSendMessage();
$this->vendor_send_order_admin = $this->getVendorSendOrderAdmin($this->order);
$this->vendor_send_order = $this->getVendorSendOrder($this->order);
$this->admin_send_order = $this->getAdminSendOrder($this->order, $this->listVendors);
}

protected function loadMessageForListVendors(){
if ($this->vendors_send_message || $this->vendor_send_order){
foreach($this->listVendors as $k=>$vendor){
if ($this->vendors_send_message){
$show_customer_info = 0;
$show_weight_order = 0;
$show_total_info = 0;
$show_payment_shipping_info = 0;
}
if ($this->vendor_send_order){
$show_customer_info = 1;
$show_weight_order = 0;
$show_total_info = 0;
$show_payment_shipping_info = 1;
}
$vendor_order_items = $this->order->getVendorItems($vendor->id);

$this->listVendors[$k]->message = $this->getMessage(
'vendor', $vendor_order_items, $show_customer_info, $show_weight_order, $show_total_info, $show_payment_shipping_info
);
}
}
}

protected function getPdfSend(){
$pdfsend = 1;
if (JSFactory::getConfig()->send_invoice_manually && !$this->getManuallysend()){
$pdfsend = 0;
}
return $pdfsend;
}

protected function getGeneretePdf(){
return $this->getPdfSend() && JSFactory::getConfig()->generate_pdf;
}

protected function getListVendors($order){
if (JSFactory::getConfig()->admin_show_vendors){
$listVendors = $order->getVendors();
}else{
$listVendors = array();
}
return $listVendors;
}

protected function getVendorsSendMessage(){
return  JSFactory::getConfig()->vendor_order_message_type==1;
}

protected function getVendorSendOrderAdmin($order){
$jshopConfig = JSFactory::getConfig();
return (($jshopConfig->vendor_order_message_type==2 && $order->vendor_type == 0 && $order->vendor_id) || $jshopConfig->vendor_order_message_type==3);
}

protected function getVendorSendOrder($order){
$jshopConfig = JSFactory::getConfig();
$vendor_send_order = $jshopConfig->vendor_order_message_type==2;        
if ($this->getVendorSendOrderAdmin($order)){
$vendor_send_order = 0;
}
return $vendor_send_order;
}

protected function getAdminSendOrder($order, $listVendors){
$admin_send_order = 1;
if (JSFactory::getConfig()->admin_not_send_email_order_vendor_order && $this->getVendorSendOrderAdmin($order) && count($listVendors)){
$admin_send_order = 0;
}
return $admin_send_order;
}

protected function getPdfSendType($type){
$jshopConfig = JSFactory::getConfig();
$pdfsend = $this->getPdfSend();
if ($type=='client'){
$pdfsendtype = $pdfsend && $jshopConfig->order_send_pdf_client;
}
if ($type=='admin'){
$pdfsendtype = $pdfsend && $jshopConfig->order_send_pdf_admin;
}
if ($type=='vendormessage'){
$pdfsendtype = 0;
}
if ($type=='vendor'){
$pdfsendtype = $pdfsend && $jshopConfig->order_send_pdf_admin;
}
return $pdfsendtype;
}

protected function getSendMailTriggerType($type){
if ($type=='client'){
$trigger = 'onBeforeSendOrderEmailClient';
}
if ($type=='admin'){
$trigger = 'onBeforeSendOrderEmailAdmin';
}
if ($type=='vendormessage'){
$trigger = 'onBeforeSendOrderEmailVendor';
}
if ($type=='vendor'){
$trigger = 'onBeforeSendOrderEmailVendorOrder';
}
return $trigger;
}

}


*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: JoomShopping + SMS
« Ответ #216 : 14.10.2016, 23:45:03 »
strval?
Если так, то целое должно пристыковываться к строке и автоматом преобразовываться в строку. Или я старею?
все так. оно и пристыковывается наверняка :) просто ТС-у нужно не id метода, а название
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: JoomShopping + SMS
« Ответ #217 : 15.10.2016, 00:41:23 »
Вот на получении значения вида оплаты  получился ступор.
не очень понимаю, в чем именно ступор? $this->order->payment_id у вас есть, это id способа оплаты. проверяйте, совпадает ли он с нужным, и если да - отправляйте.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Qverty2012

  • Захожу иногда
  • 107
  • 0 / 0
Re: JoomShopping + SMS
« Ответ #218 : 15.10.2016, 21:01:04 »
Сложно сказать, не видя всего кода. Попробуйте вставить вывод содержимого, и увидите, в чем ошибка.

Код: php
$text .= JText::_(_JSHOP_ORDER_NUMBER).": ".$this->order->order_number."\n";
$text .= JText::_(_JSHOP_TOTAL).": ".number_format($this->order->order_total, 0, '.', ' ')." ".$this->order->currency_code."\n";
var_dump($this->order->payment_id); die("Пипец где то тут");
$text .= JText::_($this->order->payment_id)."\n";
$text .= "Заказ принят";

Ну и какой текст ошибки то?

Вот -  NULL Пипец РіРґРµ то тут
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: JoomShopping + SMS
« Ответ #219 : 15.10.2016, 22:13:18 »
$this->order->payment_method_id
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Qverty2012

  • Захожу иногда
  • 107
  • 0 / 0
Re: JoomShopping + SMS
« Ответ #220 : 15.10.2016, 22:46:42 »
string(1) "6" result
*

Qverty2012

  • Захожу иногда
  • 107
  • 0 / 0
Re: JoomShopping + SMS
« Ответ #221 : 15.10.2016, 22:48:05 »
Как получить не номер по порядку, а именно строковое значение?
P.s как избавиться от крякозябров?
« Последнее редактирование: 15.10.2016, 22:53:07 от Qverty2012 »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: JoomShopping + SMS
« Ответ #222 : 15.10.2016, 23:10:40 »
это и не номер по порядку. это id метода оплаты. его и сравнивайте с нужным. для чего вам строковое значение?

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

Qverty2012

  • Захожу иногда
  • 107
  • 0 / 0
Re: JoomShopping + SMS
« Ответ #223 : 15.10.2016, 23:31:35 »
это и не номер по порядку. это id метода оплаты. его и сравнивайте с нужным. для чего вам строковое значение?

настройте сервер на UTF-8 кодировку
спс. И все же как получить строковое значение? 
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: JoomShopping + SMS
« Ответ #224 : 15.10.2016, 23:36:00 »
запрос сделайте в базу, по этому id получите название. не представляю, для чего это нужно, почему не сравнивать числа.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Hvaekar

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
Re: JoomShopping + SMS
« Ответ #225 : 08.05.2018, 11:28:23 »
Как сделать отправку SMS при смене статуса заказ (как сделал ее я для себя) посредством turbosms. JoomShopping 4.17.0 (должно подойти начиная с 4.11.0)

Вставляем код:
Код
//send sms client
if ($order->phone != "") {

$client = new SoapClient ('http://turbosms.in.ua/api/wsdl.html');

$auth = Array (
'login' => 'Логин turbosms',
'password' => 'Пароль turbosms'
);

$order->load($order_id);

$status = JSFactory::getTable('orderStatus', 'jshop');
$status->load($order->order_status);
$lang = JSFactory::getLang();
$name = $lang->get("name");
$order->status = $status->$name;

$result = $client->Auth ($auth);
$text .= JText::_(_JSHOP_ORDER_NUMBER2).ltrim($order->order_number,'0')." ".$order->status = mb_strtolower($status->$name).".";
if ($this->include_comment && $this->comments != "") {
$text .= JText::_('\n'.$this->comments.'');
}


$sms = Array (
'sender' => 'Подпись turbosms',
'destination' => $order->phone,
'text' => $text
);

$result = $client->SendSMS ($sms);
};

в функцию "sendMail" файла /components/com_jshopping/models/orderchangestatus.php, у меня это строка 186. Код нужно вставить перед "return $mailer->Send();"
Логин, пароль, подпись поставить свои. Параметру "_JSHOP_ORDER_NUMBER2" определить значение в языковом файле.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин - Вывод значения поля из таблицы продуктов в корзине JoomShopping

Автор draff

Ответов: 3
Просмотров: 804
Последний ответ 26.02.2024, 07:00:01
от kit2m2
Плагин - Товар на складе или Товар под заказ для JoomShopping [Скачать]

Автор kit2m2

Ответов: 58
Просмотров: 9275
Последний ответ 18.05.2023, 12:59:00
от Akeksandr
[Решено] Комплект товаров JoomShopping - конструктор

Автор vgromov

Ответов: 96
Просмотров: 28192
Последний ответ 14.12.2022, 15:21:24
от kit2m2
Функционал сравнение товаров в JoomShopping

Автор falur

Ответов: 53
Просмотров: 13469
Последний ответ 22.08.2022, 09:54:16
от kit2m2
[скачать] Выбор отделения Новой Почты для JoomShopping 4+

Автор v42bis

Ответов: 18
Просмотров: 3644
Последний ответ 06.07.2022, 07:17:06
от denxio