-1, 'orderby' => 'date', 'order' => 'DESC', 'return' => 'ids', ) ); $orders = $query->get_orders(); $phoen_main_return=array(); for($i=0;$i <= count($orders)-1;$i++){ $order = wc_get_order( $orders[$i] ); foreach ( $order->get_items() as $key => $item ) { $product_id = version_compare( WC_VERSION, '3.0', '<' ) ? $item['product_id'] : $item->get_product_id(); $FROM = wc_get_order_item_meta( $key, 'FROM', true ); $TO = wc_get_order_item_meta( $key, 'TO', true ); $DATE = wc_get_order_item_meta( $key, 'DATETIME', true ); if(!empty($DATE) || !empty($FROM)){ $order_data = $order->get_data(); $order_date = $order->get_date_completed(); $order_date_main=date('d F,Y',strtotime($order_date)); $order_date_time=date('h:i a',strtotime($order_date)); $order_id=$order_data['id']; $order_status=$order_data['status']; $customer_id=$order_data['customer_id']; $item_name=$item['name']; $item_quantity=$item['quantity']; $item_id=$product_id; $phoen_main_return["products_options"][$product_id] = $item_name; $first_name=$order_data['billing']['first_name']; $first_email=$order_data['billing']['email']; $booking_start=!empty($FROM) ? $FROM : $DATE; $booking_end=$TO; $gen_settings=get_post_meta( $product_id, 'phoen_arbpw_calander_mode', true ); if($gen_settings['pickertype'] == 'weekly' && $gen_settings['product_days_to_sel'] == '1'){ $date_end= date('Y-m-d',strtotime($booking_start)); $booking_end=date('d M , Y', strtotime($date_end . ' +6 day')); } if($TO==""){ $booking_end=""; } $phoen_main_return['data'][]=array( 'order_id'=>$order_id, 'order_status'=>$order_status, 'item_name'=>$item_name, 'order_date'=>$order_date_main, 'order_time'=>$order_date_time, 'item_id'=>$item_id, 'item_quantity'=>$item_quantity, 'first_name'=>$first_name, 'email'=>$first_email, 'customer_id'=>$customer_id, 'booking_start'=>$booking_start, 'booking_end'=>$booking_end ); } } } return $phoen_main_return; } if( ! class_exists( 'WP_List_Table' ) ) { require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); } $phoen_reports_list_obj = new phoen_reports_membership_list(); $phoen_retrieve_orders=phoen_appointment_data_retrieve_orders(); ?>



prepare_items(); ?>
display(); ?>
'Order', 'item_name' => 'Product', 'order_date' => 'Booked On', 'booking_start' => 'From', 'booking_end' => 'To', 'item_quantity' => 'Total Booking', 'order_status' => 'Status', ); return $columns; } function prepare_items() { $columns = $this->get_columns(); $hidden = array(); $sortable = $this->get_sortable_columns(); $action = $this->column_booktitle(); $data = $this->phoen_appointment_example_data(); if(!empty($data)){ usort( $data, array( &$this, 'sort_data' ) ); } $perPage = 10; $currentPage = $this->get_pagenum(); $totalItems = count($data); $this->set_pagination_args( array( 'total_items' => $totalItems, 'per_page' => $perPage ) ); if(!empty($data)){ $data = array_slice($data,(($currentPage-1)*$perPage),$perPage); } $this->_column_headers = array($columns, $hidden, $sortable); $this->items = $data; } public function phoen_appointment_example_data(){ $phoen_main_return=phoen_appointment_data_retrieve_orders(); $qmt_data=array(); $jjaw_data=array(); $data=isset($phoen_main_return['data'])?$phoen_main_return['data']:''; if(isset( $_POST['phoen_save_appointment_new_rule']) && wp_verify_nonce( $_POST['phoen_save_appointment_new_rule'], 'phoen_appointment_save_new_rule' ) ){ $products_id=isset($_POST['products'])? sanitize_text_field($_POST['products']):''; $from=$_POST['from'];isset($_POST['from'])? sanitize_text_field($_POST['from']):''; $to=isset($_POST['to'])? sanitize_text_field($_POST['to']) :''; if($products_id!=0){ foreach($data as $val_k){ if($val_k['item_id']==$products_id){ $qmt_data[]=$val_k; } } }else{ $qmt_data=$data; } $date_from= date('Y-m-d',strtotime($from)); $date_to= date('Y-m-d',strtotime($to)); if(!empty($qmt_data) && count($qmt_data) > 0){ foreach($qmt_data as $key => $val_m){ $date_start= date('Y-m-d',strtotime($val_m['booking_start'])); $date_end= date('Y-m-d',strtotime($val_m['booking_end'])); if($val_m['booking_end']!=""){ $date_end= date('Y-m-d',strtotime($val_m['booking_end'])); }else{ $date_end=0; } if(!empty($date_start) && !empty($from)){ if(empty($from) && !empty($to)){ if($date_to <= $date_end){ $jjaw_data[]=$val_m; } }elseif(!empty($from) && empty($to)){ if($date_from <= $date_start){ $jjaw_data[]=$val_m; } }else{ if(!empty($date_end)){ if($date_from<=$date_start && $date_to>=$date_end){ $jjaw_data[]=$val_m; } }else{ if($date_from <= $date_start){ $jjaw_data[]=$val_m; } } } }else{ $jjaw_data[]=$val_m; } } } return $jjaw_data; }else{ return $data; } } function column_default( $item, $column_name ) { $pnumbtn=isset($item['order_status'])? $item['order_status'] :''; $order_id=$item['order_id']; $first_name=$item['first_name']; $email=$item['email']; $order_date=$item['order_date']; $order_time=$item['order_time']; $customer_id=$item['customer_id']; $order_url= get_edit_post_link( $order_id, '&' ); switch( $column_name ) { case 'order_date' : echo $order_date.'
'.$order_time;break; case 'order_status': echo "$pnumbtn";break; case 'order_id': echo '#'.$order_id.' by '.$first_name.''.$email.''; break; case 'item_name': case 'booking_start': case 'booking_end': case 'item_quantity': return $item[ $column_name ]; default: return print_r( $item, true ) ; } } function get_sortable_columns() { return array( 'order_id' => array('order_id',true), 'item_name' => array('item_name',false), 'order_date' => array('order_date',false), 'booking_start' => array('booking_start',false), 'booking_end' => array('booking_end', false), ); } function sort_data( $a, $b ) { // Set defaults $orderby = 'order_id'; $order = 'DESC'; // If orderby is set, use this as the sort column if(!empty($_GET['orderby'])) { $orderby = sanitize_text_field($_GET['orderby']); } // If order is set use this as the order if(!empty($_GET['order'])) { $order = sanitize_text_field($_GET['order']); } $result = strcmp( $a[$orderby], $b[$orderby] ); if($order === 'asc') { return $result; } return -$result; } } ?>