Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

SyntaxError: JSON Parse error: Unrecognized token '<' OK


Recommended Posts

помогите разобраться, при оформлении заказа появляется вот такое ругательство:

SyntaxError: JSON Parse error: Unrecognized token '<' OK Notice: Undefined index: products in /var/www/u0522611/data/www/ххх/catalog/controller/extension/module/notificationTelegram.php on line 105Notice: Undefined index: products in /var/www/u0522611/data/www/ххх/catalog/controller/extension/module/notificationTelegram.php on line 105Notice: Undefined index: products in /var/www/u0522611/data/www/ххх/catalog/controller/extension/module/notificationTelegram.php on line 105{"redirect":"http://ххх/index.php?route=checkout/success"}

код:

 

<?php
class ControllerExtensionModuleNotificationTelegram extends Controller {
        
    public function sendOrderAlert(&$route, &$data, &$output) {

        $order_id = $data[0];
        $this->load->model('checkout/order');
        $order_info = $this->model_checkout_order->getOrder($order_id);

        $this->load->model('setting/setting');
        $setting = $this->model_setting_setting->getSetting('module_notificationTelegram');

        if (isset($setting['module_notificationTelegram_order_alert'])) {
            
            $this->load->model('account/order');
            if (count($this->model_account_order->getOrderHistories($order_id)) <= 1) {
                $message = $this->replaceMessage($setting['module_notificationTelegram_meassage'],$order_info);
//                  $message .= $this->buldArray($order_info);

                $this->sendMessagetoTelegam($message);

                if (strpos(strtolower($setting['module_notificationTelegram_meassage']), '{products}') !== false) {
                    $order_products = $this->model_checkout_order->getOrderProducts($order_id);
                    $products = $this->bulidProducts($order_products);
                    $this->sendMessagetoTelegam($products);

                }
            }
            
        }
        
    }
    
    public function sendAccountAlert(&$route, &$data, &$output) {
        $this->load->model('setting/setting');
        $setting = $this->model_setting_setting->getSetting('module_notificationTelegram');
        if (isset($setting['module_notificationTelegram_customer_alert'])) {

            $message = $this->replaceMessage($setting['module_notificationTelegram_new_account_meassage'],$data[0]);
            $this->sendMessagetoTelegam( $message);
            
        }
    }
    
    public function sendReturnProductAlert(&$data,&$output) {
        $this->load->model('setting/setting');
        $setting = $this->model_setting_setting->getSetting('module_notificationTelegram');
        if (isset($setting['module_notificationTelegram_return_alert'])) {
            
            $message = "Return request \n ";
            $this->sendMessagetoTelegam( $message);
        }
    }
    
    
    //Send  message To notificationTelegram
    public function sendMessagetoTelegam($msg) {
        
        $this->load->model('setting/setting');
        $setting = $this->model_setting_setting->getSetting('module_notificationTelegram');
        
        //print_r($setting);
        $botToken = $setting['module_notificationTelegram_boot_token'];
        $website = "https://api.telegram.org/bot" . $botToken;
        $chatIds = $setting['module_notificationTelegram_chat_ids'];  //Receiver Chat Id
        
        if (is_array($chatIds)) {
            foreach ($chatIds as $val) {
                $this->initMessage($botToken, $val, $msg);
            }
        } else {
            $this->initMessage($botToken, $chatIds, $msg);
        }
    }
    private function initMessage($botToken, $chatID, $msg) {
        
        $website = "https://api.telegram.org/bot" . $botToken;
        
        $params = [
            'chat_id' => $chatID,
            'text' => $msg,
        ];
        $ch = curl_init($website . '/sendMessage');
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, ($params));
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        $result = curl_exec($ch);
        curl_close($ch);            
    }
    
    public function buldArray($arr) {
        if (is_array($arr)) {
            $dataAttributes = array_map(function ($value, $key) {
                return @"$key ---> $value  \n";
            }, array_values($arr), array_keys($arr));
            
            return $dataAttributes = implode(' ', $dataAttributes);
        }
    }
    
    public function replaceMessage($string,$arr) {
        return   $str = preg_replace_callback('/{(\w+)}/', function($match) use($arr) {
            return $arr[$match[1]];
        }, $string );
        
    }
    
    protected function  bulidProducts($products){

        $pr = array();

        foreach ($products as $product){
            $pr[] = "Name : $product[name]  \n    Price: $product[price] \n qty : $product[quantity] ";
        }

        return implode("------- \n",$pr);
        
    }
        
}

Надіслати
Поділитися на інших сайтах


Спойлер

 

52 минуты назад, lenadzhamalieva сказал:

помогите разобраться, при оформлении заказа появляется вот такое ругательство:

SyntaxError: JSON Parse error: Unrecognized token '<' OK Notice: Undefined index: products in /var/www/u0522611/data/www/ххх/catalog/controller/extension/module/notificationTelegram.php on line 105Notice: Undefined index: products in /var/www/u0522611/data/www/ххх/catalog/controller/extension/module/notificationTelegram.php on line 105Notice: Undefined index: products in /var/www/u0522611/data/www/ххх/catalog/controller/extension/module/notificationTelegram.php on line 105{"redirect":"http://ххх/index.php?route=checkout/success"}

код:

 

<?php
class ControllerExtensionModuleNotificationTelegram extends Controller {
        
    public function sendOrderAlert(&$route, &$data, &$output) {

        $order_id = $data[0];
        $this->load->model('checkout/order');
        $order_info = $this->model_checkout_order->getOrder($order_id);

        $this->load->model('setting/setting');
        $setting = $this->model_setting_setting->getSetting('module_notificationTelegram');

        if (isset($setting['module_notificationTelegram_order_alert'])) {
            
            $this->load->model('account/order');
            if (count($this->model_account_order->getOrderHistories($order_id)) <= 1) {
                $message = $this->replaceMessage($setting['module_notificationTelegram_meassage'],$order_info);
//                  $message .= $this->buldArray($order_info);

                $this->sendMessagetoTelegam($message);

                if (strpos(strtolower($setting['module_notificationTelegram_meassage']), '{products}') !== false) {
                    $order_products = $this->model_checkout_order->getOrderProducts($order_id);
                    $products = $this->bulidProducts($order_products);
                    $this->sendMessagetoTelegam($products);

                }
            }
            
        }
        
    }
    
    public function sendAccountAlert(&$route, &$data, &$output) {
        $this->load->model('setting/setting');
        $setting = $this->model_setting_setting->getSetting('module_notificationTelegram');
        if (isset($setting['module_notificationTelegram_customer_alert'])) {

            $message = $this->replaceMessage($setting['module_notificationTelegram_new_account_meassage'],$data[0]);
            $this->sendMessagetoTelegam( $message);
            
        }
    }
    
    public function sendReturnProductAlert(&$data,&$output) {
        $this->load->model('setting/setting');
        $setting = $this->model_setting_setting->getSetting('module_notificationTelegram');
        if (isset($setting['module_notificationTelegram_return_alert'])) {
            
            $message = "Return request \n ";
            $this->sendMessagetoTelegam( $message);
        }
    }
    
    
    //Send  message To notificationTelegram
    public function sendMessagetoTelegam($msg) {
        
        $this->load->model('setting/setting');
        $setting = $this->model_setting_setting->getSetting('module_notificationTelegram');
        
        //print_r($setting);
        $botToken = $setting['module_notificationTelegram_boot_token'];
        $website = "https://api.telegram.org/bot" . $botToken;
        $chatIds = $setting['module_notificationTelegram_chat_ids'];  //Receiver Chat Id
        
        if (is_array($chatIds)) {
            foreach ($chatIds as $val) {
                $this->initMessage($botToken, $val, $msg);
            }
        } else {
            $this->initMessage($botToken, $chatIds, $msg);
        }
    }
    private function initMessage($botToken, $chatID, $msg) {
        
        $website = "https://api.telegram.org/bot" . $botToken;
        
        $params = [
            'chat_id' => $chatID,
            'text' => $msg,
        ];
        $ch = curl_init($website . '/sendMessage');
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, ($params));
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        $result = curl_exec($ch);
        curl_close($ch);            
    }
    
    public function buldArray($arr) {
        if (is_array($arr)) {
            $dataAttributes = array_map(function ($value, $key) {
                return @"$key ---> $value  \n";
            }, array_values($arr), array_keys($arr));
            
            return $dataAttributes = implode(' ', $dataAttributes);
        }
    }
    
    public function replaceMessage($string,$arr) {
        return   $str = preg_replace_callback('/{(\w+)}/', function($match) use($arr) {
            return $arr[$match[1]];
        }, $string );
        
    }
    
    protected function  bulidProducts($products){

        $pr = array();

        foreach ($products as $product){
            $pr[] = "Name : $product[name]  \n    Price: $product[price] \n qty : $product[quantity] ";
        }

        return implode("------- \n",$pr);
        
    }
        
}

 

 

 

Спасибо за код.

Надіслати
Поділитися на інших сайтах

2 часа назад, Otvet сказал:

не выставляйте код модулей 

 

1 час назад, buslikdrev сказал:

Спасибо за код.

 

ну модуль то фришный.

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=34325

 

2 часа назад, lenadzhamalieva сказал:

помогите разобраться, при оформлении заказа появляется вот такое ругательство:

 

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

 

Надіслати
Поділитися на інших сайтах

14 часов назад, lenadzhamalieva сказал:

/var/www/u0522611/data/www/ххх/catalog/controller/extension/module/notificationTelegram.php

У меня не стоит такой модуль. по приведенному коду

protected function  bulidProducts($products){ //в функцию передается массив товаров

этот массив передается отсюда

                    $order_products = $this->model_checkout_order->getOrderProducts($order_id);
                    $products = $this->bulidProducts($order_products);

нужно проверить, приходит ли массив ($order_products) из модели mode/checkout/order.php

 

Надіслати
Поділитися на інших сайтах

16 минут назад, esculapra сказал:

У меня не стоит такой модуль. по приведенному коду

protected function  bulidProducts($products){ //в функцию передается массив товаров

этот массив передается отсюда

                    $order_products = $this->model_checkout_order->getOrderProducts($order_id);
                    $products = $this->bulidProducts($order_products);

нужно проверить, приходит ли массив ($order_products) из модели mode/checkout/order.php

 

спасибо, сейчас попробую разобраться

Надіслати
Поділитися на інших сайтах


5 минут назад, lenadzhamalieva сказал:

спасибо, сейчас попробую разобраться

я не изменяла model/checkout/order.php там все по умолчанию, ничего не могу понять

Надіслати
Поділитися на інших сайтах


  • 7 months later...
  • 8 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.