give_get_forms_label_singular(), // Singular name of the listed records 'plural' => give_get_forms_label_plural(), // Plural name of the listed records 'ajax' => false,// Does this table support ajax? ) ); } /** * Show the search field * * @since 1.0 * @access public * * @param string $text Label for the search box * @param string $input_id ID of the search box * * @return void */ public function search_box( $text, $input_id ) { $input_id = $input_id . '-search-input'; if ( ! empty( $_REQUEST['orderby'] ) ) { echo ''; } if ( ! empty( $_REQUEST['order'] ) ) { echo ''; } ?> __( 'Log ID', 'give' ), 'ip' => __( 'Request IP', 'give' ), 'date' => __( 'Date', 'give' ), 'details' => __( 'Request Details', 'give' ), ); return $columns; } /** * This function renders most of the columns in the list table. * * @access public * @since 1.0 * * @param array $item Contains all the data of the discount code * @param string $column_name The name of the column * * @return string Column Name */ public function column_default( $item, $column_name ) { switch ( $column_name ) { default: return esc_attr( $item[ $column_name ] ); } } /** * Output Error Message column * * @access public * @since 1.0 * * @param array $item Contains all the data of the log * * @return void */ public function column_details( $item ) { echo Give()->tooltips->render_link( array( 'label' => __( 'View Request', 'give' ), 'tag_content' => '', 'link' => "#TB_inline?width=640&inlineId=log-details-{$item['ID']}", 'attributes' => array( 'class' => 'thickbox give-error-log-details-link button button-small', ), ) ); ?> _args['plural'] ); } ?>
bulk_actions( $which ); ?>
extra_tablenav( $which ); $this->pagination( $which ); ?>
get_search(); if ( $search ) { if ( filter_var( $search, FILTER_VALIDATE_IP ) ) { // This is an IP address search. $key = '_give_log_request_ip'; } elseif ( is_email( $search ) ) { // This is an email search. $userdata = get_user_by( 'email', $search ); if ( $userdata ) { $search = $userdata->ID; } $key = '_give_log_user'; } elseif ( 32 === strlen( $search ) ) { // Look for an API key. $key = '_give_log_key'; } elseif ( stristr( $search, 'token:' ) ) { // Look for an API token. $search = str_ireplace( 'token:', '', $search ); $key = '_give_log_token'; } else { // This is (probably) a user ID search. $userdata = get_userdata( $search ); if ( $userdata ) { $search = $userdata->ID; } $key = '_give_log_user'; } // Setup the meta query. $meta_query[] = array( 'key' => $key, 'value' => $search, 'compare' => '=', ); } return $meta_query; } /** * Retrieve the current page number * * @access public * @since 1.0 * * @return int Current page number */ public function get_paged() { return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1; } /** * Outputs the log views * * @param string $which Top or Bottom. * * @access public * @since 1.0 * * @return void */ function bulk_actions( $which = '' ) { give_log_views(); } /** * Gets the log entries for the current view * * @access public * @since 1.0 * * @return array $logs_data Array of all the Log entires */ public function get_logs() { $logs_data = array(); $paged = $this->get_paged(); $log_query = array( 'log_type' => 'api_request', 'paged' => $paged, 'meta_query' => $this->get_meta_query(), 'posts_per_page' => $this->per_page, ); $logs = Give()->logs->get_connected_logs( $log_query ); if ( $logs ) { foreach ( $logs as $log ) { $logs_data[] = array( 'ID' => $log->ID, 'ip' => Give()->logs->logmeta_db->get_meta( $log->ID, '_give_log_request_ip', true ), 'date' => $log->log_date, 'log_content' => $log->log_content, 'log_date' => $log->log_date, ); } } return $logs_data; } /** * Setup the final data for the table * * @access public * @since 1.0 * @uses Give_API_Request_Log_Table::get_columns() * @uses WP_List_Table::get_sortable_columns() * @uses Give_API_Request_Log_Table::get_pagenum() * @uses Give_API_Request_Log_Table::get_logs() * @uses Give_API_Request_Log_Table::get_log_count() * * @return void */ public function prepare_items() { $columns = $this->get_columns(); $hidden = array(); // No hidden columns $sortable = $this->get_sortable_columns(); $this->_column_headers = array( $columns, $hidden, $sortable ); $this->items = $this->get_logs(); $total_items = Give()->logs->get_log_count( 0, 'api_request' ); $this->set_pagination_args( array( 'total_items' => $total_items, 'per_page' => $this->per_page, 'total_pages' => ceil( $total_items / $this->per_page ), ) ); } }