Перейти к содержимому


Фотография
* * * * * 3 Голосов

Отправляем СМС при успешном оформлении заказа

рецепт смс jbzoo 2.0+ api

Сообщений в теме: 53

#21 Cheren-dow

Cheren-dow

Отправлено 25 September 2014 - 07:04

webstudia, в настройках установили разрешение на отправку сообщений? Можете дать доступы к вашему сайту + FTP ? Попробую разобраться. 


  • 0
Изображение
 

#22 solohub

solohub

Отправлено 25 September 2014 - 07:32

Он удаляет значение имени отправителя, но сама переменная остается же но пустая, может из-за этого проблема.


  • 1

#23 Cheren-dow

Cheren-dow

Отправлено 25 September 2014 - 10:44

solohub, возможно. Попробуйте удалить все 

'source' => '',

После отправки попробуйте посмотреть что вернет результат

var_dump($adminSend);

  • 0
Изображение
 

#24 solohub

solohub

Отправлено 25 September 2014 - 10:47

походу автор отступил о решения проблемы


  • 0

#25 webstudia

webstudia

Отправлено 25 September 2014 - 12:14

Я тут. просто сегодня попозже погоняю систему. ещё поменял тариф на смс сервисе. сказали должно отправляться


  • 0

#26 solohub

solohub

Отправлено 25 September 2014 - 12:23

Вы когда отправляете посмотрите так же в отчете смс доставки, на самом сервисе


  • 0

#27 webstudia

webstudia

Отправлено 25 September 2014 - 12:28

Вы когда отправляете посмотрите так же в отчете смс доставки, на самом сервисе

нигде не нашёл такой отчёт... везде пусто было вообще

хотя мне оператор сервиса звонила и сказала что видела что я отправлять пытался...

где посмотреть эти отчёты?!

ща начал тестировать. отпишусь


Сейчас снов отправить попытался...

Вот что показал сейчас отчёт.

pHtgLta.png


Но ничего не пришло по смс ни на один из номеров...


  • 0

#28 solohub

solohub

Отправлено 25 September 2014 - 12:30

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


  • 1

#29 webstudia

webstudia

Отправлено 25 September 2014 - 12:33

 

solohub, возможно. Попробуйте удалить все 

'source' => '',

После отправки попробуйте посмотреть что вернет результат

var_dump($adminSend);

'source' => '', у меня и так везде пустой был и остаётся

var_dump($adminSend);  а куда это вставить?!

Вставил прямо сразу после конца вставляемого кода, но ничего не показало...

прикладываю свой jbevent.basket.php

<?php
/**
 * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
 *
 * @package     jbzoo
 * @version     2.x Pro
 * @author      JBZoo App http://jbzoo.com
 * @copyright   Copyright (C) JBZoo.com,  All rights reserved.
 * @license     http://jbzoo.com/license-pro.php JBZoo Licence
 * @coder       Denis Smetannikov <denis@jbzoo.com>
 */

// no direct access
defined('_JEXEC') or die('Restricted access');


/**
 * Class JBEventBasket
 */
class JBEventBasket extends JBEvent
{

    /**
     * On after order saved
     * @param AppEvent $event
     */
    public static function saved($event)
    {
        $app    = self::app();
        $params = $event->getParameters();

        $appParams = $params['appParams'];
        $item      = $params['item'];
        $subject   = JText::_('JBZOO_CART_NEW_ORDER_CREATE');

        if ((int)$appParams->get('notificaction-create', 1)) {

            // to admin
            $adminEmail = $appParams->get('global.jbzoo_cart_config.admin-email');
            if ($adminEmail) {
                $adminLayout = $appParams->get('global.jbzoo_cart_config.email-admin-layout');
                $app->jbemail->sendByItem($adminEmail, $subject, $item, $adminLayout);
            }

            // to user email from profile
            $userEmail = JFactory::getUser()->email;
            if ($userEmail) {
                $userLayout = $appParams->get('global.jbzoo_cart_config.email-user-layout');
                $app->jbemail->sendByItem($userEmail, $subject, $item, $userLayout);
            }

            // to email from order field
            $emailElement = $appParams->get('global.jbzoo_cart_config.element-useremail');
            if ($element = $item->getElement($emailElement)) {
                $data = $element->data();
                if (isset($data[0]['value']) && !empty($data[0]['value'])) {
                    $userLayout = $appParams->get('global.jbzoo_cart_config.email-user-layout');
                    $app->jbemail->sendByItem($data[0]['value'], $subject, $item, $userLayout);
                }
            }
/*****************SMS*****************************************************/
$totalPrice = $item->getElement('1af7e792-bcff-4a6c-9bdb-dd5023b0251a')->getTotalPrice();

        if ((int)$appParams->get('global.jbzoo_cart_config.notificaction-sms', 1)) {
            jimport('sms.transport');
            $smsApi = new Transport();

            $adminPhones        = $app->jbstring->parseLines($appParams->get('global.jbzoo_cart_config.admin-phones'));
            $userNameElementId  = $appParams->get('global.jbzoo_cart_config.element-username');
            $userPhoneElementId = $appParams->get('global.jbzoo_cart_config.element-userphone');

            if ($adminPhones && $usernameElement = $item->getElement($userNameElementId)) {
                $userNameData = $usernameElement->data();

                if (isset($userNameData[0]['value']) && !empty($userNameData[0]['value'])) {
                    $adminMessage = 'Поступил новый заказ от ' . $userNameData[0]['value'] .
                        '. На сумму ' . $app->jbmoney->toFormat($totalPrice, $appParams->get('currency', 'RUB'));

                    $adminSend = $smsApi->send(array(
                        'text'   => $adminMessage,
                        'source' => '',
                        'use_alfasource' => 1
                    ), $adminPhones);

                    $userPhoneData = $item->getElement($userPhoneElementId)->data();

                    if (isset($userPhoneData[0]['value']) && !empty($userPhoneData[0]['value'])) {
                        $userMessage = $userNameData[0]['value'] . ', заказ на сумму ' .
                            $app->jbmoney->toFormat($totalPrice, $appParams->get('currency', 'RUB')) . ' успешно оформлен.';

                        $userSend = $smsApi->send(array(
                            'text'   => $userMessage,
                            'source' => '',
                            'use_alfasource' => 1
                        ), $userPhoneData[0]['value']);
                    }
                }

            }
        }
        

var_dump($adminSend);
/**********************************************************************/
        }
        



        if ((int)$appParams->get('global.jbzoo_cart_config.is_advance')) {

            // reduce the balance in the item
            $basketElements = $item->getElementsByType('jbbasketitems');
            if (!empty($basketElements)) {
                reset($basketElements);
                $jbbasket = current($basketElements);
                $items    = $jbbasket->getOrderItems();

                foreach ($items as $item) {
                    $good = $app->table->item->get($item['itemId']);
                    if (!$good) {
                        continue;
                    }

                    $jbPrices = $good->getElementsByType('jbpriceadvance');
                    foreach ($jbPrices as $jbPrice) {
                        if (isset($item['hash'])) {
                            $jbPrice->balanceReduce($item['hash'], $item['quantity']);
                        }
                    }
                }
            }
        }
    }

    /**
     * On before order save
     * @param AppEvent $event
     */
    public static function beforeSave($event)
    {
    }

}

  • 0

#30 Cheren-dow

Cheren-dow

Отправлено 25 September 2014 - 12:38

webstudia, если подпись не используется лучше вообще удалить source

Покажите настройки отправки сообщений в приложении корзины JBZoo.


  • 0
Изображение
 





Темы с аналогичным тегами рецепт, смс, jbzoo 2.0+, api

Click to return to top of page in style!