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