WooCommerce - Проверьте, представлены ли товары в определенном порядке. - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь отобразить определенную строку в отношении определенного списка «Обрабатывающих» заказов, которые содержат «Избранные» товары.

Точнее, я хочу отобразить сообщение при 2 условияхсовокупно соблюдаются:

1) статус заказа "обработка";и

2) ВСЕ продукты в соответствующем заказе помечены как «Рекомендуемые».

Другими словами, как только все заказанные продукты помечены мной вручную как «Избранные», на странице учетной записи моего пользователя должно отображаться конкретное сообщение.

Мой код пока (но недавая мне желаемый результат):

    <?php 

  foreach ( $order_summary as $order ) :

                            $order      = wc_get_order( $order->order_id );
                            $order_id       = $order->get_id();
                            $order_items    = get_products_for_order( $order_id );

                        if ( $order->get_status() == 'processing' ) {
                            if ( $order_items->is_featured() ) {
                                echo 'Something';
                            } else {
                                echo 'Something else';
                            }
                        }

    ?>

Я не уверен, как правильно проверить, есть ли (или нет) «Рекомендуемые» продукты в соответствующем порядке.

Есть идеи?

1 Ответ

0 голосов
/ 25 сентября 2018

Функция get_products_for_order() возвращает массив продуктов.Вам нужно будет запустить цикл foreach для этого массива и проверить, представлен ли каждый продукт отдельно.

<?php 

    foreach ( $order_summary as $order ) {

        $order = wc_get_order( $order->order_id );
        $order_id = $order->get_id();
        $order_items = get_products_for_order( $order_id );

        if ( $order->get_status() == 'processing' ) {

            foreach( $order_items as $item ) {

                if ( $item->is_featured() ) {

                    echo 'Something';

                } else {

                    echo 'Something else';

                }
            }
        }
    }

?>

Изменить после комментария:

<?php 

    foreach ( $order_summary as $order ) {

        $order = wc_get_order( $order->order_id );
        $order_id = $order->get_id();
        $order_items = get_products_for_order( $order_id );

        if ( $order->get_status() == 'processing' ) {

            $featured = true;
            foreach( $order_items as $item ) {

                if ( !$item->is_featured() ) {
                    $featured = false;
                    break;
                }                     
            }

            if( $featured ) {
                echo 'Something';
            } else {
                echo 'Something else';
            }
        }
    }

?>
...