8ответ(ов) в теме
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
1
23:21
Версия плагина: 1,4,2

Если в таблице заказов, в столбце order_status, меняю статус "2" (оплаченный заказ), то на странице корзины, кнопка оплаты убирается. Но не появляются билеты заказа.
Если менять статус заказа через Админ панель, через кнопку "Оплаченный заказ", то кнопка оплатить из коризны убирается и появляются билеты.
В чём разница? Для показа билетов, где-то что то ещё меняется?

                if($order->order_status == 2 || $order->order_status == 3){
                    $ticket_list = evpl_get_tickets_list($order_id);
                    if($ticket_list){
                        $content .= '<div class="ticket_order"><h4>Ваши билеты:</h4>';
                        $content .= $ticket_list;
                        $content .= '</div>';
                    }
                }

Хотя условия у них одинаковые.

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

Ввожу систему промокодов на кассу.
И делаю условие, если промокод даёт 100% скидку и сумма заказа равно нулю, то пользователю остаётся нажать на кнопку "Получить билеты", при нажатии этой кнопки, меняется статус заказа на оплаченный и пользователь возвращается в корзину с билетами.

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

И в принципе всё получается, кроме вывода самих билетов:

if($order_amount == 0){
    $content .= '
                    
                ';
    // Если сумма заказа ровна нулю, меняет статус на оплаченный
    if (isset($_POST['free_tickets'])) {

        $wpdb->update( 
            'wp_12ae_evpl_orders', // указываем таблицу
            array('order_status' => "2"),
            array( // где 
                'order_id' => $order->order_id
            )
        );
        header("Location: /korzina/?order-hash=$order->order_hash");
        exit;
    }
}else{
    $content .= evpl_payform($args);
}

Редакции сообщения
23.01.2022 00:03FruitПричина: не указано
0
Fruit
не в сети 2 года
На сайте с 15.11.2017
Участник
Тем 22
Сообщения 155
4
00:36

Блин, сразу и не дошло, что билетов нет, потому что они и не создавались...
Просьба помочь с функцией, которая создаёт билеты и отправляет данные о заказе на почту. Как мне её теперь прикрутить к моей форме.
Заранее спасибо!

Редакции сообщения
23.01.2022 03:20FruitПричина: не указано
0
Андрей CS
не в сети 56 минут
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
5
09:06

Добрый день.
Для создания билетов к заказу вы можете использовать функцию
evpl_create_tickets( $order_id );
Для отправки письма об оплате заказа необходимо использовать:
evpl_send_mail_payment_order_user( $order_id );

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

Спасибо.
Получилось так:

if($order_amount == 0){
    $content .= '
                    
                ';
                
    // Если сумма заказа ровна нулю, меняем статус на оплаченный
    if (isset($_POST['free_tickets'])) {

        $wpdb->update( 
            'wp_12ae_evpl_orders', // указываем таблицу
            array('order_status' => "2"),
            array( // где 
                'order_id' => $order->order_id
            )
        );
        header("Location: /korzina/?order-hash=$order->order_hash");
        exit;

        $content .= evpl_create_tickets( $order_id );

    }
}else{
    $content .= evpl_payform($args);
}

Но, страница просто обновляется и всё.

0
Андрей CS
не в сети 56 минут
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16986
7
15:43

вы должны вызывать функцию evpl_create_tickets() до того как вызовете перенаправление, т.е. до строки
header("Location: /korzina/?order-hash=$order->order_hash");

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

Проблема была в другом, но всё получилось спасибо!

if($order_amount == 0){
    
         
    
    // Если сумма заказа ровна нулю, меняет статус на оплаченный
    if (isset($_POST['free_tickets'])) {

        $wpdb->update( 
            'wp_12ae_evpl_orders', // указываем таблицу
            array('order_status' => "2"),
            array( // где 
                'order_id' => $order->order_id
            )
        );
        $order_id = $order->order_id;
        $content .= evpl_create_tickets( $order_id );
        $content .= evpl_send_mail_payment_order_user( $order_id );;

        header("Location: /korzina/?order-hash=$order->order_hash");
        exit;
    }
}else{
    $content .= evpl_payform($args);
}

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