265 lines
6.2 KiB
PHP
265 lines
6.2 KiB
PHP
<?php
|
|
/**
|
|
* Logs UI
|
|
*
|
|
* @package EDD
|
|
* @subpackage Admin/Tools
|
|
* @copyright Copyright (c) 2018, Easy Digital Downloads, LLC
|
|
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
|
|
* @since 3.0
|
|
*/
|
|
|
|
// Exit if accessed directly
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
/**
|
|
* Setup the logs view
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param type $type
|
|
* @return boolean
|
|
*/
|
|
function edd_logs_view_setup( $type = '' ) {
|
|
|
|
// Bail if cannot view
|
|
if ( ! current_user_can( 'view_shop_reports' ) ) {
|
|
return false;
|
|
}
|
|
|
|
// Includes
|
|
require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
|
|
require_once EDD_PLUGIN_DIR . 'includes/admin/reporting/class-base-logs-list-table.php';
|
|
require_once EDD_PLUGIN_DIR . 'includes/admin/reporting/class-' . sanitize_key( $type ) . '-logs-list-table.php';
|
|
|
|
// Done!
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Output the log page
|
|
*
|
|
* @since 3.0
|
|
*
|
|
* @param EDD_Base_Log_List_Table $logs_table List table class to work with
|
|
* @param string $tag Type of log to view
|
|
*/
|
|
function edd_logs_view_page( $logs_table, $tag = '' ) {
|
|
$tag = sanitize_key( $tag );
|
|
$logs_table->prepare_items(); ?>
|
|
|
|
<div class="wrap">
|
|
<?php
|
|
/**
|
|
* Fires at the top of the logs view.
|
|
*
|
|
* @since 3.0
|
|
*/
|
|
do_action( "edd_logs_{$tag}_top" ); ?>
|
|
|
|
<form id="edd-logs-filter" method="get" action="<?php echo esc_url( edd_get_admin_url( array( 'page' => 'edd-tools', 'tab' => sanitize_key( $tag ) ) ) ); ?>">
|
|
<input type="hidden" name="post_type" value="download" />
|
|
<input type="hidden" name="page" value="edd-tools" />
|
|
<input type="hidden" name="tab" value="<?php echo esc_attr( $tag ); ?>" />
|
|
<?php
|
|
wp_nonce_field( -1, 'edd_filter', false );
|
|
$logs_table->views();
|
|
$logs_table->advanced_filters();
|
|
?>
|
|
</form>
|
|
<?php
|
|
$logs_table->display();
|
|
?>
|
|
|
|
<?php
|
|
/**
|
|
* Fires at the bottom of the logs view.
|
|
*
|
|
* @since 3.0
|
|
*/
|
|
do_action( "edd_logs_{$tag}_bottom" ); ?>
|
|
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
/** Views *********************************************************************/
|
|
|
|
/**
|
|
* Sales Log View
|
|
*
|
|
* @deprecated 3.0
|
|
*
|
|
* @since 1.4
|
|
* @uses EDD_Sales_Log_Table::prepare_items()
|
|
* @uses EDD_Sales_Log_Table::display()
|
|
* @return void
|
|
*/
|
|
function edd_logs_view_sales() {
|
|
|
|
// Setup or bail
|
|
if ( ! edd_logs_view_setup( 'sales' ) ) {
|
|
return;
|
|
}
|
|
|
|
$logs_table = new EDD_Sales_Log_Table();
|
|
|
|
edd_logs_view_page( $logs_table, 'sales' );
|
|
}
|
|
add_action( 'edd_logs_view_sales', 'edd_logs_view_sales' );
|
|
|
|
/**
|
|
* File Download Logs
|
|
*
|
|
* @since 1.4
|
|
* @uses EDD_File_Downloads_Log_Table::prepare_items()
|
|
* @uses EDD_File_Downloads_Log_Table::search_box()
|
|
* @uses EDD_File_Downloads_Log_Table::display()
|
|
* @return void
|
|
*/
|
|
function edd_logs_view_file_downloads() {
|
|
|
|
// Setup or bail
|
|
if ( ! edd_logs_view_setup( 'file-downloads' ) ) {
|
|
return;
|
|
}
|
|
|
|
$logs_table = new EDD_File_Downloads_Log_Table();
|
|
|
|
edd_logs_view_page( $logs_table, 'file_downloads' );
|
|
}
|
|
add_action( 'edd_logs_view_file_downloads', 'edd_logs_view_file_downloads' );
|
|
|
|
/**
|
|
* Gateway Error Logs
|
|
*
|
|
* @since 1.4
|
|
* @uses EDD_File_Downloads_Log_Table::prepare_items()
|
|
* @uses EDD_File_Downloads_Log_Table::display()
|
|
* @return void
|
|
*/
|
|
function edd_logs_view_gateway_errors() {
|
|
|
|
// Setup or bail
|
|
if ( ! edd_logs_view_setup( 'gateway-error' ) ) {
|
|
return;
|
|
}
|
|
|
|
$logs_table = new EDD_Gateway_Error_Log_Table();
|
|
|
|
edd_logs_view_page( $logs_table, 'gateway_errors' );
|
|
}
|
|
add_action( 'edd_logs_view_gateway_errors', 'edd_logs_view_gateway_errors' );
|
|
|
|
/**
|
|
* API Request Logs
|
|
*
|
|
* @since 1.5
|
|
* @uses EDD_API_Request_Log_Table::prepare_items()
|
|
* @uses EDD_API_Request_Log_Table::search_box()
|
|
* @uses EDD_API_Request_Log_Table::display()
|
|
* @return void
|
|
*/
|
|
|
|
function edd_logs_view_api_requests() {
|
|
|
|
// Setup or bail
|
|
if ( ! edd_logs_view_setup( 'api-requests' ) ) {
|
|
return;
|
|
}
|
|
|
|
$logs_table = new EDD_API_Request_Log_Table();
|
|
|
|
edd_logs_view_page( $logs_table, 'api_requests' );
|
|
}
|
|
add_action( 'edd_logs_view_api_requests', 'edd_logs_view_api_requests' );
|
|
|
|
|
|
/**
|
|
* Default Log Views
|
|
*
|
|
* @since 1.4
|
|
* @return array $views Log Views
|
|
*/
|
|
function edd_log_default_views() {
|
|
/**
|
|
* Filters the default logs views.
|
|
*
|
|
* @since 1.4
|
|
* @since 3.0 Removed sales log.
|
|
*
|
|
* @param array $views Logs views. Each key/value pair represents the view slug
|
|
* and label, respectively.
|
|
*/
|
|
return apply_filters( 'edd_log_views', array(
|
|
'file_downloads' => __( 'File Downloads', 'easy-digital-downloads' ),
|
|
'gateway_errors' => __( 'Payment Errors', 'easy-digital-downloads' ),
|
|
'api_requests' => __( 'API Requests', 'easy-digital-downloads' )
|
|
) );
|
|
}
|
|
|
|
/**
|
|
* Renders the Reports page views drop down
|
|
*
|
|
* @since 1.3
|
|
* @since 3.0 Deprecated, and modified to look like the 3.0 approach
|
|
*
|
|
* @return void
|
|
*/
|
|
function edd_log_views() {
|
|
static $once = false;
|
|
|
|
// Only once
|
|
if ( true === $once ) {
|
|
return;
|
|
}
|
|
|
|
// Only once
|
|
$once = true; ?>
|
|
|
|
<!-- EDD 3.0 Hack -->
|
|
</div></div>
|
|
<form method="get" class="edd-old-log-filters" action="<?php echo esc_url( edd_get_admin_url( array( 'page' => 'edd-payment-history' ) ) ); ?>">
|
|
<?php edd_admin_filter_bar( 'old_logs' ); ?>
|
|
</form>
|
|
<div class="tablenav top"><div>
|
|
<!-- EDD 3.0 Hack -->
|
|
|
|
<?php
|
|
}
|
|
|
|
/**
|
|
* Output old logs filter bar items
|
|
*
|
|
* @since 3.0
|
|
*/
|
|
function edd_old_logs_filter_bar_items() {
|
|
$views = edd_log_default_views();
|
|
$current_view = isset( $_GET['view'] ) && array_key_exists( $_GET['view'], edd_log_default_views() )
|
|
? sanitize_text_field( $_GET['view'] )
|
|
: 'file_downloads'; ?>
|
|
|
|
<span id="edd-type-filter">
|
|
<select id="edd-logs-view" name="view">
|
|
<?php foreach ( $views as $view_id => $label ) : ?>
|
|
<option value="<?php echo esc_attr( $view_id ); ?>" <?php selected( $view_id, $current_view ); ?>><?php echo esc_html( $label ); ?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</span>
|
|
|
|
<?php
|
|
/**
|
|
* Fires immediately after the logs view actions are rendered in the Logs screen.
|
|
*
|
|
* @since 1.3
|
|
*/
|
|
do_action( 'edd_log_view_actions' ); ?>
|
|
|
|
<button type="submit "class="button button-secondary"><?php _e( 'Filter', 'easy-digital-downloads' ); ?></button>
|
|
|
|
<input type="hidden" name="post_type" value="download" />
|
|
<input type="hidden" name="page" value="edd-tools" />
|
|
<input type="hidden" name="tab" value="logs" /><?php
|
|
}
|
|
add_action( 'edd_admin_filter_bar_old_logs', 'edd_old_logs_filter_bar_items' );
|