Домой Каталог: Плагины WordPress WP Events&Places Ввод дополнительных данных
7ответ(ов) в теме
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
1
14:35
Версия плагина: 1.4.2

Добрый день.
Требуется ввести данные в дополнительно созданную таблицу, при создании заказа.
Это нужно для статистики, чтобы понимать, сколько было создано заказов в определённом городе и на определённом мероприятии. Пока только смог придумать, передавать данные заказа ( $order->order_id, $event_id, $order_room, order_status ) в отдельно созданную таблицу и если заказ будет оплачен, он будет удалён из этой таблицы. Но где вставить запрос на ввод в БД при создании заказа.
Создание заказа

0
Андрей CS
не в сети 4 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
2
18:37

Добрый день, пробуйте дополнить логику в файле events-and-places/class-save-order.php
внутри метода insert_order()

1
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
3
20:14

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

    function insert_order(){
    
        global $wpdb;

        // Добавление данных заказа
        if(is_admin()): $order_status = 4;
        else:  $order_status = $this->order_status;
        endif;
     
        $terms = get_the_terms(key($this->cart->places), 'event-type'); 
     
        $args = apply_filters('evpl_pre_insert_order', array(
            'user_data' => $this->user_data,
            'order_price' => $this->cart->price,
            'place_amount' => $this->cart->amount,
            'order_details' => serialize($this->details),
            'order_date' => current_time('mysql'),
            'order_status' => $order_status,
            'order_hash' => md5(current_time('mysql')),
            'order_room' => $terms[0]->name
        ));
        
        $result = $wpdb->insert(
            WP_PREFIX.'evpl_orders',
            $args
        );
        
        if(!$result)
            return false;
        
        return $wpdb->insert_id;

        $wpdb->insert( 
            WP_PREFIX.'evpl_stats_order',
            array(
                'order_id' => $this->order_id, 
                'event_id' => $event_id, 
                'order_room' => $terms[0]->name, 
                'order_status' => "1")
        );
        
    }

Прошу помощи с этим.

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
4
16:40

    function insert_order(){
    
        global $wpdb;

        // Добавление данных заказа

        if(is_admin()): $order_status = 4;
        else:  $order_status = $this->order_status;
        endif;
     
        $terms = get_the_terms(key($this->cart->places), 'event-type'); 
     
        $args = apply_filters('evpl_pre_insert_order', array(
            'user_data'         => $this->user_data,
            'order_price'       => $this->cart->price,
            'place_amount'      => $this->cart->amount,
            'order_details'     => serialize($this->details),
            'order_date'        => current_time('mysql'),
            'order_status'      => $order_status,
            'order_hash'        => md5(current_time('mysql')),
            'order_room'        => $terms[0]->name
        ));

        ini_set('error_reporting', E_ALL);
        ini_set('display_errors', 1);
        ini_set('display_startup_errors', 1);
        error_reporting(E_ALL | E_STRICT);

        
        $result = $wpdb->insert(
            WP_PREFIX.'evpl_orders',
            $args
        );

        if(!$result)
        return false;
        
        $order_stats = array(
                'order_id' => $this->order_id, 
                'event_id' => $event_id, 
                'order_room' => $terms[0]->name, 
                'order_status' => 1
        );

        $results = $wpdb->insert( 
            WP_PREFIX.'evpl_stats_order',
            $order_stats
        );

        if(!$results)
        return false;

        return $wpdb->insert_id;

    }

Страница просто обновляется и ничего не добавляется в таблицу, ошибок тоже нет.

0
Андрей CS
не в сети 4 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
5
18:56

отлавливайте ошибку вставляя
print_r(1);exit;
в произвольное место функции, так вы поймете где именно работа функции прерывается и не доходит до этой строки

1
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
6
21:12

отлавливайте ошибку вставляя

Нашёл ошибку в 'order_id' => $this->order_id, так как id заказа ещё не существует.

0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
7
21:21

Добавил данный запрос в insert_orderdata()

0
Вы не имеете права на публикацию сообщений в этой теме