WooCommerce получает все заказы в foreach - PullRequest
0 голосов
/ 07 апреля 2019

привет, у меня есть эта функция, она показывает только 1 детали заказа

    add_filter( 'woocommerce_admin_reports', 'add_report_tab' );

function add_report_tab( $reports ) {
    $orders = wc_get_orders( array('numberposts' => -1) );

    // Loop through each WC_Order object
    $items=array();

    foreach( $orders as $order ){
        if ( sizeof($order->get_used_coupons()) > 0 ) {
        $order_data = $order->get_data(); // The Order data
        $data = 'Order Number: #' . $order->id . '<br>' .'Order Status: '. $order->status . '<br>' . 'Order Creation Date: ' . $order_date_created = $order_data['date_created']->date('Y-m-d H:i:s') . '<br>' . 'Order Total: '. $order->total . '<br>' . 'Customer Username: ' . $order_billing_first_name = $order_data['billing']['first_name'] . '<br>' . 'Customer E-Mail: '. $order_billing_email = $order_data['billing']['email'] . '<br>' . 'Customer Phone: ' . $order_billing_phone = $order_data['billing']['phone'] . '<br>'; 
        }

    }
    //return array($items);

$reports['reports'] = array(
                'title'  => __( 'Discounted Orders Reports', 'woocommerce' ),
                'reports' => array(
                    "sales_by_code" => array(
                        'title'       => __( 'Sales by Discount', 'woocommerce' ),
                        'description' => $data, 
                        'hide_title'  => false,
                        'callback'    => '',
                    ),
                ),
            );

return $reports;
}  

Этот код показывает enter image description here

, как сделать так, чтобы вместо него отображались все заказытолько одного заказа, когда я повторяю, он показывает около 7 деталей заказа, но здесь он показывает только 1 заказ

РЕДАКТИРОВАТЬ 1: 'description' => $data, - это то, что показывает данные на вкладке

1 Ответ

1 голос
/ 07 апреля 2019

Мне кажется, что вы перезаписываете свои $ data в каждой итерации цикла.

Инициализируйте данные перед циклом foreach с помощью $ data = "" и используйте затем ". =" Или $ data = $ data + "ваш код"

$data .= 'Order Number: #' . $order->id . '<br>' .'Order Status: '. $order->status . '<br>' . 'Order Creation Date: ' . $order_date_created = $order_data['date_created']->date('Y-m-d H:i:s') . '<br>' . 'Order Total: '. $order->total . '<br>' . 'Customer Username: ' . $order_billing_first_name = $order_data['billing']['first_name'] . '<br>' . 'Customer E-Mail: '. $order_billing_email = $order_data['billing']['email'] . '<br>' . 'Customer Phone: ' . $order_billing_phone = $order_data['billing']['phone'] . '<br>'; 

вместо

$data = 'Order Number: #' . $order->id . '<br>' .'Order Status: '. $order->status . '<br>' . 'Order Creation Date: ' . $order_date_created = $order_data['date_created']->date('Y-m-d H:i:s') . '<br>' . 'Order Total: '. $order->total . '<br>' . 'Customer Username: ' . $order_billing_first_name = $order_data['billing']['first_name'] . '<br>' . 'Customer E-Mail: '. $order_billing_email = $order_data['billing']['email'] . '<br>' . 'Customer Phone: ' . $order_billing_phone = $order_data['billing']['phone'] . '<br>'; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...