Получить идентификатор заказа из модуля cart id prestashop 1.6

Получить идентификатор заказа из модуля cart id prestashop 1.6

22.09.2018 02:11:23 Просмотров 75 Источник

контроллер / фронт / проверка.РНР

<?php
class Paytr_CheckoutValidationModuleFrontController extends ModuleFrontController
{
    public function postProcess()
    {
        $this->display_column_left = false;
        $this->display_column_right = false;

        $cart = $this->context->cart;
        $total = $cart->getOrderTotal;
        $currency = $this->context->currency;
        $customer = new Customer( $cart->id_customer );
        if ( !Validate::isLoadedObject($customer) )
            Tools::redirect('index.php?controller=order&step=1');


        //$this->context->cart->delete();
        //$isOrderX = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT * FROM '._DB_PREFIX_.'orders WHERE id_cart = '.$cart->id);
        //var_dump($_POST);

        //Tools::redirect('index.php?controller=history');
        //Tools::redirect('index.php?controller=order-confirmation&id_cart='.$cart->id.'&id_module='.$this->module->id.'&id_order='.(int)$this->module->currentOrder.'&key='.$customer->secure_key);
        echo 'index.php?controller=order-confirmation&id_cart='.$cart->id.'&id_module='.$this->module->id.'&id_order='.(int)$this->module->currentOrder.'&key='.$customer->secure_key;
    }
}

Мне нужно найти идентификатор заказа из идентификатора корзины. Это я пробовал. Я не мог получить id_order. Я надеялся на запрос Db. Но это не работает, я думаю.

У вопроса есть решение - Посмотреть?

Ответы - Получить идентификатор заказа из модуля cart id prestashop 1.6 / Get order id from cart id module prestashop 1.6

Rolige

22.09.2018 03:17:06

Вы можете получить его с помощью этого кода: $id_order = Order::getOrderByCartId($id_cart);

https://stackoverflow.com/questions/52452038/get-order-id-from-cart-id-module-prestashop-1-6/52452390#comment91864662_52452390
это после функции validateorder. Поэтому я не мог получить идентификатор корзины, потому что он также удаляет идентификатор корзины из cookie. Поэтому мне нужно получить от единственной базы данных, но база данных не работает. Я получу последний заказ, созданный этим клиентом.
Mahdi Shad

22.09.2018 02:53:53

Пока заказ не зарегистрирован, вы не можете получить "id_order".

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

$this->context->customer->getLastCart(true);
https://stackoverflow.com/questions/52452038/get-order-id-from-cart-id-module-prestashop-1-6/52456444#comment91864666_52456444
это после функции validateorder. Поэтому я не мог получить идентификатор корзины, потому что он также удаляет идентификатор корзины из cookie. Поэтому мне нужно получить от единственной базы данных, но база данных не работает. Я получу последний заказ, созданный этим клиентом.
https://stackoverflow.com/questions/52452038/get-order-id-from-cart-id-module-prestashop-1-6/52456444#comment91865413_52456444
В этом случае вы должны подробнее рассказать о своем модуле и о том, как он работает. И как клиент перенаправляется на эту страницу.
https://stackoverflow.com/questions/52452038/get-order-id-from-cart-id-module-prestashop-1-6/52456444#comment91874801_52456444
Я изменил свой пост. вы можете использовать это вместо SQL : $этом->контекст->клиент->getLastCart(правда);
Является ответом!
Anıl Türk

23.09.2018 01:25:25

это причина проблемы удаляет cookie после проверки заказа. Так что он не показывает id_cart. Так что я думаю вот так.

 $isOrderX = Db::getInstance()->getRow(' SELECT * FROM '._DB_PREFIX_.'orders WHERE id_customer = '.$cart->id_customer.' ORDER BY id_order DESC ');
Tools::redirect('index.php?controller=order-confirmation&id_cart='.$isOrderX['id_cart'].'&id_module='.$this->module->id.'&id_order='.$isOrderX['id_order'].'&key='.$customer->secure_key);
Помочь в развитии проекта:
Закрыть X