WooCommerce-检查特定订单中的产品是否精选

时间:2018-09-25 12:54:49

标签: php woocommerce product orders

我正在尝试显示包含“精选”产品的“处理中”订单的特定列表的特定字符串。

更准确地说,当两个条件累计满足时,我想回显一条消息:

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 :(得分:0)

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';
            }
        }
    }

?>