'inquiry',
'plural' => 'inquiries',
'ajax' => false,
)
);
}
/**
* Get columns
*
* @return array
*/
public function get_columns() {
return array(
'cb' => '',
'id' => __( 'ID', 'yacht-booking' ),
'yacht' => __( 'Jacht', 'yacht-booking' ),
'customer' => __( 'Klient', 'yacht-booking' ),
'dates' => __( 'Preferowane terminy', 'yacht-booking' ),
'message' => __( 'Wiadomość', 'yacht-booking' ),
'emails' => __( 'Emaile', 'yacht-booking' ),
'date_created' => __( 'Data wysłania', 'yacht-booking' ),
);
}
/**
* Get sortable columns
*
* @return array
*/
public function get_sortable_columns() {
return array(
'id' => array( 'ID', true ),
'date_created' => array( 'date', true ),
);
}
/**
* Get bulk actions
*
* @return array
*/
public function get_bulk_actions() {
return array(
'delete' => __( 'Usu\u0144', 'yacht-booking' ),
);
}
/**
* Prepare items for display
*/
public function prepare_items() {
$per_page = 20;
$current_page = $this->get_pagenum();
$orderby = isset( $_GET['orderby'] ) ? sanitize_text_field( wp_unslash( $_GET['orderby'] ) ) : 'date';
$order = isset( $_GET['order'] ) ? sanitize_text_field( wp_unslash( $_GET['order'] ) ) : 'DESC';
$search = isset( $_GET['s'] ) ? sanitize_text_field( wp_unslash( $_GET['s'] ) ) : '';
$args = array(
'post_type' => 'yacht_inquiry',
'posts_per_page' => $per_page,
'paged' => $current_page,
'orderby' => $orderby,
'order' => $order,
'post_status' => 'publish',
);
if ( ! empty( $search ) ) {
$args['s'] = $search;
}
if ( ! empty( $_GET['yacht_filter'] ) && 'all' !== $_GET['yacht_filter'] ) {
$args['meta_query'] = array(
array(
'key' => '_inquiry_yacht_id',
'value' => (int) $_GET['yacht_filter'],
),
);
}
$query = new \WP_Query( $args );
$this->items = $query->posts;
$this->set_pagination_args(
array(
'total_items' => $query->found_posts,
'per_page' => $per_page,
'total_pages' => $query->max_num_pages,
)
);
$columns = $this->get_columns();
$hidden = array();
$sortable = $this->get_sortable_columns();
$this->_column_headers = array( $columns, $hidden, $sortable );
}
/**
* Column checkbox
*
* @param object $item Item.
* @return string
*/
public function column_cb( $item ) {
return sprintf( '', $item->ID );
}
/**
* Column ID
*
* @param object $item Item.
* @return string
*/
public function column_id( $item ) {
$delete_url = wp_nonce_url(
admin_url( 'admin.php?page=yacht-inquiries&action=delete&inquiry=' . $item->ID ),
'delete_inquiry_' . $item->ID
);
$actions = array(
'delete' => sprintf(
'%s',
esc_url( $delete_url ),
esc_js( __( 'Czy na pewno chcesz usunac to zapytanie?', 'yacht-booking' ) ),
__( 'Usun', 'yacht-booking' )
),
);
return sprintf( '#%d%s', $item->ID, $this->row_actions( $actions ) );
}
/**
* Column yacht
*
* @param object $item Item.
* @return string
*/
public function column_yacht( $item ) {
$yacht_id = Inquiry::get_yacht_id( $item->ID );
$yacht = get_post( $yacht_id );
return $yacht ? esc_html( $yacht->post_title ) : '—';
}
/**
* Column customer
*
* @param object $item Item.
* @return string
*/
public function column_customer( $item ) {
return sprintf(
'%s
%s
%s',
esc_html( Inquiry::get_customer_name( $item->ID ) ),
esc_html( Inquiry::get_customer_email( $item->ID ) ),
esc_html( Inquiry::get_customer_phone( $item->ID ) )
);
}
/**
* Column preferred dates
*
* @param object $item Item.
* @return string
*/
public function column_dates( $item ) {
$dates = Inquiry::get_preferred_dates( $item->ID );
return $dates ? esc_html( $dates ) : '—';
}
/**
* Column message
*
* @param object $item Item.
* @return string
*/
public function column_message( $item ) {
$message = Inquiry::get_message( $item->ID );
if ( ! $message ) {
return '—';
}
$short = mb_strlen( $message ) > 80 ? mb_substr( $message, 0, 80 ) . '...' : $message;
return '' . esc_html( $short ) . '';
}
/**
* Column emails — links to view sent emails.
*
* @param object $item Item.
* @return string
*/
public function column_emails( $item ) {
$admin_url = wp_nonce_url(
admin_url( 'admin.php?page=yacht-inquiries&action=view_email&inquiry=' . $item->ID . '&type=admin' ),
'view_email_' . $item->ID
);
$customer_url = wp_nonce_url(
admin_url( 'admin.php?page=yacht-inquiries&action=view_email&inquiry=' . $item->ID . '&type=customer' ),
'view_email_' . $item->ID
);
return sprintf(
'%s %s',
esc_url( $admin_url ),
esc_html__( 'Do admina', 'yacht-booking' ),
esc_url( $customer_url ),
esc_html__( 'Do klienta', 'yacht-booking' )
);
}
/**
* Column date created
*
* @param object $item Item.
* @return string
*/
public function column_date_created( $item ) {
return sprintf(
'%s
%s',
get_the_date( Settings::get_date_format(), $item ),
get_the_time( 'H:i', $item )
);
}
/**
* Default column
*
* @param object $item Item.
* @param string $column_name Column name.
* @return string
*/
public function column_default( $item, $column_name ) {
return '';
}
/**
* Filters above table
*
* @param string $which Position.
*/
protected function extra_tablenav( $which ) {
if ( 'top' !== $which ) {
return;
}
$current_yacht = isset( $_GET['yacht_filter'] ) ? (int) $_GET['yacht_filter'] : 'all';
?>