'shop_order', 'post_status' => 'any', 'meta_query' => array( array( 'key' => '_easypack_status', 'value' => array( 'prepared', 'created', 'ReadyToBeSent' ), 'compare' => 'IN', ), array( 'key' => '_easypack_dispatched', 'value' => '', 'compare' => 'NOT EXISTS', ), ) ); if ( $send_method != 'all' ) { $args['meta_query'][] = array( 'key' => '_easypack_send_method', 'value' => $send_method, 'compare' => '=', ); } $query = new WP_Query($args); while ( $query->have_posts() ) { $query->the_post(); if ( $post->post_status == 'wc-cancelled' ) { /* skip cancelled orders */ continue; } $order = wc_get_order($post->ID); $order_id = $order->get_id(); $easypack_parcels = get_post_meta( $order_id, '_easypack_parcels', true ); if ( $easypack_parcels ) { foreach ( $easypack_parcels as $key => $parcel ) { $data = array(); if ( isset($parcel['easypack_data']) ) { $data['package_number'] = $parcel['easypack_data']['id']; if ( isset( $parcel['easypack_data']['tracking_number'] ) ) { $data['package_number'] = $parcel['easypack_data']['tracking_number']; } $data['parcel'] = $parcel; $data['send_method_display'] = __( 'Courier', EasyPack::$text_domain ); $send_method = get_post_meta( $order_id, '_easypack_send_method', true ); $data['send_method'] = $send_method; if ( $send_method == 'parcel_machine' ) $data['send_method_display'] = __( 'Parcel Locker', EasyPack::$text_domain ); $data['status'] = $parcel['easypack_data']['status']; if ( is_array( $parcel['easypack_data']['status'] ) ) { $data['status'] = $parcel['easypack_data']['status']['code']; } $data['order'] = $order_id; $data['shipping_address'] = $order->get_formatted_shipping_address(); if ( isset( $parcel['easypack_data']['target_machine_id'] ) ) { $data['shipping_address'] = __( 'Parcel Locker ', EasyPack::$text_domain ) . ' ' . $parcel['easypack_data']['target_machine_id']; } $data['parcel_id'] = $parcel['easypack_data']['id']; $data['order_id'] = $order_id; $data['api'] = 'easypack'; } if ( isset($parcel['crossborder_data']) ) { $data['package_number'] = $parcel['crossborder_data']['id']; $data['package_number'] = $parcel['crossborder_data']['tracking_number']; $data['parcel'] = $parcel; $data['send_method_display'] = __( 'Courier', EasyPack::$text_domain ); $send_method = get_post_meta( $order_id, '_easypack_send_method', true ); $data['send_method'] = $send_method; if ( $send_method == 'parcel_machine' ) $data['send_method_display'] = __( 'Parcel Locker', EasyPack::$text_domain ); $data['status'] = $parcel['crossborder_data']['status']['code']; $data['order'] = $order_id; $data['shipping_address'] = $order->get_formatted_shipping_address(); if ( isset( $parcel['crossborder_data']['target_machine_id'] ) ) { $data['shipping_address'] = __( 'Parcel Locker ', EasyPack::$text_domain ) . ' ' . $parcel['crossborder_data']['target_machine_id']; } $data['parcel_id'] = $parcel['crossborder_data']['id']; $data['order_id'] = $order_id; $data['api'] = 'crossborder'; } $this->data[] = $data; } } } wp_reset_postdata(); } function bulk_actions( $which = '' ) { } function column_cb($item) { return sprintf( '', $item['api'] . '.' . $item['order_id'] . '.' . $item['parcel_id'] . '.' . $item['send_method'] . '.' . $item['status'] ); } function column_order( $item ) { $link = ''; $link .= '#' . $item['order']; $link .= ''; return $link; } function column_default( $item, $column_name ) { switch( $column_name ) { case 'package_number': case 'send_method': case 'send_method_display': case 'status': case 'order': case 'shipping_address': return $item[ $column_name ]; default: return print_r( $item, true ) ; //Show the whole array for troubleshooting purposes } } function get_columns(){ $gb = EasyPack_API()->api_country() === 'GB'; /*if (true === $gb) { $k = null; $v= null; } else { $k = 'send_method_display'; $v = __( 'Send method', EasyPack::$text_domain ); }*/ $k = 'send_method_display'; $v = __( 'Send method', EasyPack::$text_domain ); $columns = array( 'cb' => '', 'package_number' => __( 'Package', EasyPack::$text_domain ), $k => $v, 'status' => __( 'Status', EasyPack::$text_domain ), 'order' => __( 'Order', EasyPack::$text_domain ), 'shipping_address' => __( 'Shipping address', EasyPack::$text_domain ), // 'parcel' => __( 'Parcel', EasyPack::$text_domain ), ); return $columns; } function get_hidden_columns() { return array(); } function prepare_items() { $columns = $this->get_columns(); $hidden = $this->get_hidden_columns(); $sortable = $this->get_sortable_columns(); $this->_column_headers = array( $columns, $hidden, $sortable ); $per_page = 5000000; $current_page = $this->get_pagenum(); $total_items = count( $this->data ); $this->found_data = $this->data; $this->set_pagination_args( array( 'total_items' => $total_items, 'per_page' => $per_page ) ); $this->items = $this->data; } } endif;