Препроцессор страницы оформления заказа в ubercart

Главные вкладки

Аватар пользователя Кришпер Кришпер 26 апреля 2018 в 22:31

Всем привет, есть лу у ubercart препроцессор страницы оформления заказа(эт который идёт после корзины)? Мне нужно некоторые ноды просто отсеивать(то бишь в корзину их можно добавить, но на странице оформления их не должно быть видно).

Лучший ответ

Аватар пользователя Кришпер Кришпер 27 апреля 2018 в 11:47

Нашёл.

\sites\all\modules\ubercart\uc_cart\uc_cart_checkout_pane.inc

Тут можно вписать отсеивание нод для страницы оформления и потвреждения заказа.

<?phpfunction uc_checkout_pane_cart($op, $order, $form = NULL, &$form_state = NULL) {
   /////////////////////
  foreach ( $order->products as $n => $pr) {
        if ( isset($pr->nid) ) {
            if ($pr->nid == 1 ) {
                unset( $order->products[$n] );
            }
        }
    };
    //////////////////

?>

Комментарии

Аватар пользователя Кришпер Кришпер 27 апреля 2018 в 9:10

Тут чисто корзина, её массив товаров формируется в uc_cart_get_contents, я это уже сделал, но на странице оформления заказа используется другой массив.
Я нашёл добавление элементов массива в
\public_html\sites\all\modules\ubercart\uc_order\uc_order.controller.inc
buildContent
Но если поставить false для нод-исключений, то сайт ложится.

п.с мб, конечно, сам сайт криво темизирован

Аватар пользователя Кришпер Кришпер 27 апреля 2018 в 11:47

Нашёл.

\sites\all\modules\ubercart\uc_cart\uc_cart_checkout_pane.inc

Тут можно вписать отсеивание нод для страницы оформления и потвреждения заказа.

<?phpfunction uc_checkout_pane_cart($op, $order, $form = NULL, &$form_state = NULL) {
   /////////////////////
  foreach ( $order->products as $n => $pr) {
        if ( isset($pr->nid) ) {
            if ($pr->nid == 1 ) {
                unset( $order->products[$n] );
            }
        }
    };
    //////////////////

?>