'order',
'plural' => 'orders',
'ajax' => false,
)
);
}
public function print_overview() {
$this->prepare_items();
echo '
';
echo '';
echo '
Order List
';
$this->display();
echo '';
}
public function column_default( $post, $column_name ) {
$order = wc_get_order( $post->ID );
switch ( $column_name ) {
case 'order':
$buyer = '';
if ( $order->get_billing_first_name() || $order->get_billing_last_name() ) {
/* translators: 1: first name 2: last name */
$buyer = trim( sprintf( _x( '%1$s %2$s', 'full name', 'woocommerce' ), $order->get_billing_first_name(), $order->get_billing_last_name() ) );
} elseif ( $order->get_billing_company() ) {
$buyer = trim( $order->get_billing_company() );
} elseif ( $order->get_customer_id() ) {
$user = get_user_by( 'id', $order->get_customer_id() );
$buyer = ucwords( $user->display_name );
}
if ( $order->get_status() === 'trash' ) {
return '#' . esc_attr( $order->get_order_number() ) . ' ' . esc_html( $buyer ) . '';
} else {
return '#' . esc_attr( $order->get_order_number() ) . ' ' . esc_html( $buyer ) . '';
}
case 'date':
$order_timestamp = $order->get_date_created() ? $order->get_date_created()->getTimestamp() : '';
if ( ! $order_timestamp ) {
return '–';
}
// Check if the order was created within the last 24 hours, and not in the future.
if ( $order_timestamp > strtotime( '-1 day', current_time( 'timestamp', true ) ) && $order_timestamp <= current_time( 'timestamp', true ) ) {
$show_date = sprintf(
/* translators: %s: human-readable time difference */
_x( '%s ago', '%s = human-readable time difference', 'woocommerce' ),
human_time_diff( $order->get_date_created()->getTimestamp(), current_time( 'timestamp', true ) )
);
} else {
$show_date = $order->get_date_created()->date_i18n( apply_filters( 'woocommerce_admin_order_date_format', __( 'M j, Y', 'woocommerce' ) ) );
}
return '';
case 'status':
$tooltip = '';
$comment_count = get_comment_count( $order->get_id() );
$approved_comments_count = absint( $comment_count['approved'] );
if ( $approved_comments_count ) {
$latest_notes = wc_get_order_notes(
array(
'order_id' => $order->get_id(),
'limit' => 1,
'orderby' => 'date_created_gmt',
)
);
$latest_note = current( $latest_notes );
if ( isset( $latest_note->content ) && 1 === $approved_comments_count ) {
$tooltip = wc_sanitize_tooltip( $latest_note->content );
} elseif ( isset( $latest_note->content ) ) {
/* translators: %d: notes count */
$tooltip = wc_sanitize_tooltip( $latest_note->content . '
' . sprintf( _n( 'Plus %d other note', 'Plus %d other notes', ( $approved_comments_count - 1 ), 'woocommerce' ), $approved_comments_count - 1 ) . '' );
} else {
/* translators: %d: notes count */
$tooltip = wc_sanitize_tooltip( sprintf( _n( '%d note', '%d notes', $approved_comments_count, 'woocommerce' ), $approved_comments_count ) );
}
}
if ( $tooltip ) {
return '' . esc_html( wc_get_order_status_name( $order->get_status() ) ) . '';
} else {
return '' . esc_html( wc_get_order_status_name( $order->get_status() ) ) . '';
}
case 'billing':
$address = $order->get_formatted_billing_address();
if ( $address ) {
$o = esc_html( preg_replace( '#
#i', ', ', $address ) );
if ( $order->get_payment_method() ) {
/* translators: %s: payment method */
$o .= '
' . sprintf( __( 'via %s', 'woocommerce' ), esc_html( $order->get_payment_method_title() ) ) . ''; // WPCS: XSS ok.
}
return $o;
} else {
return '–';
}
case 'total':
if ( $order->get_payment_method_title() ) {
/* translators: %s: method */
return '' . wp_kses_post( $order->get_formatted_order_total() ) . '';
} else {
return wp_kses_post( $order->get_formatted_order_total() );
}
case 'account_manager':
if ( get_post_meta( $order->get_id(), '_account_manager', true ) != "" ) {
return '' . get_post_meta( $order->get_id(), '_account_manager', true ) . '';
} else {
return 'No data available';
}
case 'commission':
if ( get_post_meta( $order->get_id(), '_commission', true ) != "" ) {
return ' $' . get_post_meta( $order->get_id(), '_commission', true ) . '';
} else {
return 'No data available';
}
case 'wc_actions':
ob_start();
?>
admin_url( 'admin.php?page=zacctmgr_commission&tab=orders&edit=' . $order->get_id() ),
'name' => 'Edit',
'action' => 'edit',
);
foreach ( $actions as $action ) {
printf( '%s', esc_attr( $action['action'] ), esc_url( $action['url'] ), esc_attr( $action['name'] ), esc_attr( $action['name'] ) );
}
?>
'Order',
'date' => 'Date',
'status' => 'Status',
'billing' => 'Billing',
'total' => 'Total',
'account_manager' => 'Account Manager',
'commission' => 'Commission',
'wc_actions' => 'Actions',
);
return $columns;
}
public function get_sortable_columns() {
return array(
// 'order' => array( 'order', true ),
// 'date' => array( 'date', true ),
// 'total' => array( 'total', true )
);
}
public function extra_tablenav( $which ) {
if ( $which == 'top' ) {
$total_orders = get_posts( array(
'numberposts' => - 1,
'post_type' => wc_get_order_types(),
'post_status' => zacctmgr_get_allowed_wc_statuses()
) );
echo '';
if ( isset( $_REQUEST['manager_filter'] ) ) {
$manager_id = (int) $_REQUEST['manager_filter'];
}
$users = zacctmgr_get_em_users();
?>
'zacctmgr_order_search_submit' ) ); ?>
get_pagenum();
$per_page = 20;
/**
* Init column headers.
*/
$this->_column_headers = array( $this->get_columns(), array(), $this->get_sortable_columns() );
$allowed_statuses = zacctmgr_get_allowed_wc_statuses();
if ( isset( $_REQUEST['search_order'] ) ) {
$search_term = esc_textarea( $_REQUEST['search_order'] );
}
if ( isset( $_REQUEST['manager_filter'] ) ) {
$manager_id = (int) $_REQUEST['manager_filter'];
$manager = get_user_by( 'id', $manager_id );
$args = array(
'meta_key' => '_account_manager',
'meta_value' => $manager->display_name,
'post_type' => wc_get_order_types(),
'post_status' => $allowed_statuses,
'posts_per_page' => $per_page,
'paged' => $current_page,
'orderby' => 'post_date',
'order' => 'DESC'
);
$total_args = array(
'numberposts' => - 1,
'meta_key' => '_account_manager',
'meta_value' => $manager->display_name,
'post_type' => wc_get_order_types(),
'post_status' => $allowed_statuses
);
} else {
if ( ! isset( $search_term ) ) {
$args = array(
'post_type' => wc_get_order_types(),
'post_status' => $allowed_statuses,
'posts_per_page' => $per_page,
'paged' => $current_page,
'orderby' => 'post_date',
'order' => 'DESC'
);
$total_args = array(
'numberposts' => - 1,
'post_type' => wc_get_order_types(),
'post_status' => $allowed_statuses
);
} else {
if ( isset( $search_term ) ) {
$args = array(
'meta_query' => array(
'relation' => 'OR',
array(
'key' => '_billing_first_name',
'value' => $search_term,
'compare' => 'LIKE'
),
array(
'key' => '_billing_last_name',
'value' => $search_term,
'compare' => 'LIKE'
),
array(
'key' => 'id',
'value' => $search_term,
'compare' => 'LIKE'
)
),
'post_type' => wc_get_order_types(),
'post_status' => $allowed_statuses,
'posts_per_page' => $per_page,
'paged' => $current_page,
'orderby' => 'post_date',
'order' => 'DESC'
);
$total_args = array(
'meta_query' => array(
'relation' => 'OR',
array(
'key' => '_billing_first_name',
'value' => $search_term,
'compare' => 'LIKE'
),
array(
'key' => '_billing_last_name',
'value' => $search_term,
'compare' => 'LIKE'
),
array(
'key' => 'id',
'value' => $search_term,
'compare' => 'LIKE'
)
),
'numberposts' => - 1,
'post_type' => wc_get_order_types(),
'post_status' => $allowed_statuses
);
}
}
}
$query = new WP_Query( $args );
$total_post = get_posts( $total_args );
$this->items = $query->get_posts();
/**
* Pagination.
*/
$this->set_pagination_args(
array(
'total_items' => count( $total_post ),
'per_page' => $per_page,
'total_pages' => ceil( count( $total_post ) / $per_page ),
)
);
}
}
?>