updated plugin Easy Digital Downloads version 3.1.1.2

This commit is contained in:
2023-03-17 22:34:04 +00:00
committed by Gitium
parent e8a66564bd
commit 19e086d1c4
647 changed files with 20986 additions and 27305 deletions

View File

@ -306,8 +306,9 @@ function edd_register_overview_report( $reports ) {
'data_callback' => function () use ( $dates ) {
$stats = new EDD\Stats();
return $stats->get_customer_count( array(
'range' => $dates['range'],
'relative' => true,
'range' => $dates['range'],
'relative' => true,
'purchase_count' => true,
) );
},
'display_args' => array(
@ -2569,8 +2570,9 @@ function edd_register_customer_report( $reports ) {
'data_callback' => function () use ( $dates ) {
$stats = new EDD\Stats();
return $stats->get_customer_count( array(
'range' => $dates['range'],
'relative' => true,
'range' => $dates['range'],
'relative' => true,
'purchase_count' => true,
) );
},
'display_args' => array(
@ -2663,11 +2665,13 @@ function edd_register_customer_report( $reports ) {
$results = $wpdb->get_results( $wpdb->prepare(
"SELECT COUNT(c.id) AS total, {$sql_clauses['select']}
FROM {$wpdb->edd_customers} c
WHERE c.date_created >= %s AND c.date_created <= %s
GROUP BY {$sql_clauses['groupby']}
ORDER BY {$sql_clauses['orderby']} ASC",
$dates['start']->copy()->format( 'mysql' ), $dates['end']->copy()->format( 'mysql' ) ) );
FROM {$wpdb->edd_customers} c
WHERE c.date_created >= %s AND c.date_created <= %s
AND c.purchase_count > 0
GROUP BY {$sql_clauses['groupby']}
ORDER BY {$sql_clauses['orderby']} ASC",
$dates['start']->copy()->format( 'mysql' ),
$dates['end']->copy()->format( 'mysql' ) ) );
$customers = array();
@ -2785,470 +2789,31 @@ add_action( 'edd_reports_init', 'edd_register_export_report' );
* @since 3.0
*/
function display_export_report() {
global $wpdb;
wp_enqueue_script( 'edd-admin-tools-export' );
?>
<div id="edd-dashboard-widgets-wrap">
<div class="metabox-holder">
<div id="post-body">
<div id="post-body-content" class="edd-reports-export edd-admin--has-grid">
<?php do_action( 'edd_reports_tab_export_content_top' ); ?>
<div class="postbox edd-export-earnings-report">
<h2 class="hndle"><span><?php esc_html_e( 'Export Earnings Report', 'easy-digital-downloads' ); ?></span></h2>
<div class="inside">
<p><?php esc_html_e( 'Download a CSV giving a detailed look into earnings over time.', 'easy-digital-downloads' ); ?></p>
<form id="edd-export-earnings-report" class="edd-export-form edd-import-export-form" method="post">
<fieldset class="edd-to-and-from-container">
<legend class="screen-reader-text">
<?php esc_html_e( 'Export Earnings Start', 'easy-digital-downloads' ); ?>
</legend>
<label for="edd_export_earnings_start_month" class="screen-reader-text"><?php esc_html_e( 'Select start month', 'easy-digital-downloads' ); ?></label>
<?php echo EDD()->html->month_dropdown( 'start_month', 0, 'edd_export_earnings', true ); ?>
<label for="edd_export_earnings_start_year" class="screen-reader-text"><?php esc_html_e( 'Select start year', 'easy-digital-downloads' ); ?></label>
<?php echo EDD()->html->year_dropdown( 'start_year', 0, 5, 0, 'edd_export_earnings' ); ?>
</fieldset>
<span class="edd-to-and-from--separator"><?php echo _x( '&mdash; to &mdash;', 'Date one to date two', 'easy-digital-downloads' ); ?></span>
<fieldset class="edd-to-and-from-container">
<legend class="screen-reader-text">
<?php esc_html_e( 'Export Earnings End', 'easy-digital-downloads' ); ?>
</legend>
<label for="edd_export_earnings_end_month" class="screen-reader-text"><?php esc_html_e( 'Select end month', 'easy-digital-downloads' ); ?></label>
<?php echo EDD()->html->month_dropdown( 'end_month', 0, 'edd_export_earnings', true ); ?>
<label for="edd_export_earnings_end_year" class="screen-reader-text"><?php esc_html_e( 'Select end year', 'easy-digital-downloads' ); ?></label>
<?php echo EDD()->html->year_dropdown( 'end_year', 0, 5, 0, 'edd_export_earnings' ); ?>
</fieldset>
<?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
<input type="hidden" name="edd-export-class" value="EDD_Batch_Earnings_Report_Export"/>
<button type="submit" class="button button-secondary"><?php esc_html_e( 'Generate CSV', 'easy-digital-downloads' ); ?></button>
</form>
</div>
</div>
<div class="postbox edd-export-sales-earnings">
<h2 class="hndle"><span><?php esc_html_e( 'Export Sales and Earnings', 'easy-digital-downloads' ); ?></span></h2>
<div class="inside">
<p><?php esc_html_e( 'Download a CSV of all sales or earnings on a day-by-day basis.', 'easy-digital-downloads' ); ?></p>
<form id="edd-export-sales-earnings" class="edd-export-form edd-import-export-form" method="post">
<fieldset class="edd-from-to-wrapper">
<legend class="screen-reader-text">
<?php esc_html_e( 'Export Sales and Earnings Dates', 'easy-digital-downloads' ); ?>
</legend>
<label for="edd-order-export-start" class="screen-reader-text"><?php esc_html_e( 'Set start date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-order-export-start',
'class' => 'edd-export-start',
'name' => 'order-export-start',
'placeholder' => _x( 'From', 'date filter', 'easy-digital-downloads' ),
)
);
?>
<label for="edd-order-export-end" class="screen-reader-text"><?php esc_html_e( 'Set end date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-order-export-end',
'class' => 'edd-export-end',
'name' => 'order-export-end',
'placeholder' => _x( 'To', 'date filter', 'easy-digital-downloads' ),
)
);
?>
</fieldset>
<label for="edd_orders_export_download" class="screen-reader-text"><?php esc_html_e( 'Select Download', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->product_dropdown(
array(
'name' => 'download_id',
'id' => 'edd_orders_export_download',
'chosen' => true,
/* translators: the plural post type label */
'placeholder' => sprintf( __( 'All %s', 'easy-digital-downloads' ), edd_get_label_plural() ),
)
);
?>
<label for="edd_order_export_customer" class="screen-reader-text"><?php esc_html_e( 'Select Customer', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->customer_dropdown(
array(
'name' => 'customer_id',
'id' => 'edd_order_export_customer',
'chosen' => true,
'none_selected' => '',
'placeholder' => __( 'All Customers', 'easy-digital-downloads' ),
)
);
wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
<input type="hidden" name="edd-export-class" value="EDD_Batch_Sales_And_Earnings_Export"/>
<button type="submit" class="button button-secondary"><?php esc_html_e( 'Export', 'easy-digital-downloads' ); ?></button>
</form>
</div>
</div>
<div class="postbox edd-export-orders">
<h2 class="hndle"><span><?php esc_html_e( 'Export Orders', 'easy-digital-downloads' ); ?></span></h2>
<div class="inside">
<p><?php esc_html_e( 'Download a CSV of all orders.', 'easy-digital-downloads' ); ?></p>
<form id="edd-export-orders" class="edd-export-form edd-import-export-form" method="post">
<fieldset class="edd-from-to-wrapper">
<legend class="screen-reader-text">
<?php esc_html_e( 'Export Order Dates', 'easy-digital-downloads' ); ?>
</legend>
<label for="edd-orders-export-start" class="screen-reader-text"><?php esc_html_e( 'Set start date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-orders-export-start',
'class' => 'edd-export-start',
'name' => 'orders-export-start',
'placeholder' => _x( 'From', 'date filter', 'easy-digital-downloads' ),
)
);
?>
<label for="edd-orders-export-end" class="screen-reader-text"><?php esc_html_e( 'Set end date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-orders-export-end',
'class' => 'edd-export-end',
'name' => 'orders-export-end',
'placeholder' => _x( 'To', 'date filter', 'easy-digital-downloads' ),
)
);
?>
</fieldset>
<label for="edd_orders_export_status" class="screen-reader-text"><?php esc_html_e( 'Select Status', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->select(
array(
'id' => 'edd_orders_export_status',
'name' => 'status',
'show_option_all' => __( 'All Statuses', 'easy-digital-downloads' ),
'show_option_none' => false,
'selected' => false,
'options' => edd_get_payment_statuses(),
)
);
wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' );
?>
<input type="hidden" name="edd-export-class" value="EDD_Batch_Payments_Export"/>
<button type="submit" class="button button-secondary"><?php esc_html_e( 'Generate CSV', 'easy-digital-downloads' ); ?></button>
</form>
</div>
</div>
<div class="postbox edd-export-taxed-orders">
<h2 class="hndle"><span><?php esc_html_e( 'Export Taxed Orders', 'easy-digital-downloads' ); ?></span></h2>
<div class="inside">
<p><?php esc_html_e( 'Download a CSV of all orders, taxed by Country and/or Region.', 'easy-digital-downloads' ); ?></p>
<form id="edd-export-taxed-orders" class="edd-export-form edd-import-export-form" method="post">
<fieldset class="edd-from-to-wrapper">
<legend class="screen-reader-text">
<?php esc_html_e( 'Export Taxed Order Dates', 'easy-digital-downloads' ); ?>
</legend>
<label for="edd-taxed-orders-export-start" class="screen-reader-text"><?php esc_html_e( 'Set start date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-taxed-orders-export-start',
'class' => 'edd-export-start',
'name' => 'taxed-orders-export-start',
'placeholder' => _x( 'From', 'date filter', 'easy-digital-downloads' )
)
);
?>
<label for="edd-taxed-orders-export-end" class="screen-reader-text"><?php esc_html_e( 'Set end date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-taxed-orders-export-end',
'class' => 'edd-export-end',
'name' => 'taxed-orders-export-end',
'placeholder' => _x( 'To', 'date filter', 'easy-digital-downloads' )
)
);
?>
</fieldset>
<label for="edd_taxed_orders_export_status" class="screen-reader-text"><?php esc_html_e( 'Select Status', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->select(
array(
'id' => 'edd_taxed_orders_export_status',
'name' => 'status',
'show_option_all' => __( 'All Statuses', 'easy-digital-downloads' ),
'show_option_none' => false,
'selected' => false,
'options' => edd_get_payment_statuses(),
)
);
?>
<label for="edd_reports_filter_taxed_countries" class="screen-reader-text"><?php esc_html_e( 'Select Country', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->country_select(
array(
'name' => 'country',
'id' => 'edd_reports_filter_taxed_countries',
'selected' => false,
'show_option_all' => false,
)
);
?>
<label for="edd_reports_filter_regions" class="screen-reader-text"><?php esc_html_e( 'Select Region', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->region_select(
array(
'id' => 'edd_reports_filter_regions',
'placeholder' => __( 'All Regions', 'easy-digital-downloads' ),
)
);
wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' );
?>
<input type="hidden" name="edd-export-class" value="EDD_Batch_Taxed_Orders_Export"/>
<button type="submit" class="button button-secondary"><?php esc_html_e( 'Generate CSV', 'easy-digital-downloads' ); ?></button>
</form>
</div>
</div>
<div class="postbox edd-export-customers">
<h2 class="hndle"><span><?php esc_html_e( 'Export Customers', 'easy-digital-downloads' ); ?></span></h2>
<div class="inside">
<p><?php printf( esc_html__( 'Download a CSV of customers. Select a taxonomy to see all the customers who purchased %s in that taxonomy.', 'easy-digital-downloads' ), edd_get_label_plural( true ) ); ?></p>
<form id="edd-export-customers" class="edd-export-form edd-import-export-form" method="post">
<?php
$taxonomies = edd_get_download_taxonomies();
$taxonomies = array_map( 'sanitize_text_field', $taxonomies );
$placeholders = implode( ', ', array_fill( 0, count( $taxonomies ), '%s' ) );
$taxonomy__in = $wpdb->prepare( "tt.taxonomy IN ({$placeholders})", $taxonomies );
$sql = "SELECT t.*, tt.*, tr.object_id
FROM {$wpdb->terms} AS t
INNER JOIN {$wpdb->term_taxonomy} AS tt ON t.term_id = tt.term_id
INNER JOIN {$wpdb->term_relationships} AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE {$taxonomy__in}";
$results = $wpdb->get_results( $sql );
$taxonomies = array();
if ( $results ) {
foreach ( $results as $r ) {
$t = get_taxonomy( $r->taxonomy );
$taxonomies[ absint( $r->term_id ) ] = $t->labels->singular_name . ': ' . esc_html( $r->name );
}
}
?>
<label for="edd_export_taxonomy" class="screen-reader-text"><?php esc_html_e( 'Select Taxonomy', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->select(
array(
'name' => 'taxonomy',
'id' => 'edd_export_taxonomy',
'options' => $taxonomies,
'selected' => false,
'show_option_none' => false,
'show_option_all' => __( 'All Taxonomies', 'easy-digital-downloads' ),
)
);
?>
<label for="edd_customer_export_download" class="screen-reader-text"><?php esc_html_e( 'Select Download', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->product_dropdown(
array(
'name' => 'download',
'id' => 'edd_customer_export_download',
'chosen' => true,
/* translators: the plural post type label */
'placeholder' => sprintf( __( 'All %s', 'easy-digital-downloads' ), edd_get_label_plural() ),
)
);
wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' );
?>
<input type="hidden" name="edd-export-class" value="EDD_Batch_Customers_Export"/>
<button type="submit" class="button button-secondary"><?php esc_html_e( 'Generate CSV', 'easy-digital-downloads' ); ?></button>
</form>
</div>
</div>
<div class="postbox edd-export-taxed-customers">
<h2 class="hndle"><span><?php esc_html_e( 'Export Taxed Customers', 'easy-digital-downloads' ); ?></span></h2>
<div class="inside">
<p><?php esc_html_e( 'Download a CSV of all customers that were taxed.', 'easy-digital-downloads' ); ?></p>
<form id="edd-export-taxed-customers" class="edd-export-form edd-import-export-form" method="post">
<fieldset class="edd-from-to-wrapper">
<legend class="screen-reader-text">
<?php esc_html_e( 'Export Taxed Customer Dates', 'easy-digital-downloads' ); ?></legend>
<label for="edd-taxed-customers-export-start" class="screen-reader-text"><?php esc_html_e( 'Set start date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-taxed-customers-export-start',
'class' => 'edd-export-start',
'name' => 'taxed-customers-export-start',
'placeholder' => _x( 'From', 'date filter', 'easy-digital-downloads' )
)
);
?>
<label for="edd-taxed-customers-export-end" class="screen-reader-text"><?php esc_html_e( 'Set end date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-taxed-customers-export-end',
'class' => 'edd-export-end',
'name' => 'taxed-customers-export-end',
'placeholder' => _x( 'To', 'date filter', 'easy-digital-downloads' )
)
);
?>
</fieldset>
<?php
wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' );
?>
<input type="hidden" name="edd-export-class" value="EDD_Batch_Taxed_Customers_Export"/>
<button type="submit" class="button button-secondary"><?php esc_html_e( 'Generate CSV', 'easy-digital-downloads' ); ?></button>
</form>
</div>
</div>
<div class="postbox edd-export-downloads">
<h2 class="hndle"><span><?php esc_html_e(
/* translators: the singular post type label */
sprintf( __( 'Export %s Products', 'easy-digital-downloads' ), edd_get_label_singular() ) ); ?></span></h2>
<div class="inside">
<p><?php esc_html_e(
/* translators: the plural post type label */
sprintf( __( 'Download a CSV of product %1$s.', 'easy-digital-downloads' ), edd_get_label_plural( true ) ) ); ?></p>
<form id="edd-export-downloads" class="edd-export-form edd-import-export-form" method="post">
<label for="edd_download_export_download" class="screen-reader-text"><?php esc_html_e( 'Select Download', 'easy-digital-downloads' ); ?></label>
<?php echo EDD()->html->product_dropdown(
array(
'name' => 'download_id',
'id' => 'edd_download_export_download',
'chosen' => true,
/* translators: the plural post type label */
'placeholder' => sprintf( __( 'All %s', 'easy-digital-downloads' ), edd_get_label_plural() ),
)
);
?>
<?php wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' ); ?>
<input type="hidden" name="edd-export-class" value="EDD_Batch_Downloads_Export"/>
<button type="submit" class="button button-secondary"><?php esc_html_e( 'Generate CSV', 'easy-digital-downloads' ); ?></button>
</form>
</div>
</div>
<div class="postbox edd-export-api-requests">
<h2 class="hndle"><span><?php esc_html_e( 'Export API Request Logs', 'easy-digital-downloads' ); ?></span></h2>
<div class="inside">
<p><?php esc_html_e( 'Download a CSV of API request logs.', 'easy-digital-downloads' ); ?></p>
<form id="edd-export-api-requests" class="edd-export-form edd-import-export-form" method="post">
<fieldset class="edd-from-to-wrapper">
<legend class="screen-reader-text">
<?php esc_html_e( 'Export API Request Log Dates', 'easy-digital-downloads' ); ?>
</legend>
<label for="edd-api-requests-export-start" class="screen-reader-text"><?php esc_html_e( 'Set start date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-api-requests-export-start',
'class' => 'edd-export-start',
'name' => 'api-requests-export-start',
'placeholder' => _x( 'From', 'date filter', 'easy-digital-downloads' )
)
);
?>
<label for="edd-api-requests-export-end" class="screen-reader-text"><?php esc_html_e( 'Set end date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-api-requests-export-end',
'class' => 'edd-export-end',
'name' => 'api-requests-export-end',
'placeholder' => _x( 'To', 'date filter', 'easy-digital-downloads' )
)
);
?>
</fieldset>
<?php
wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' );
?>
<input type="hidden" name="edd-export-class" value="EDD_Batch_API_Requests_Export"/>
<button type="submit" class="button button-secondary"><?php esc_html_e( 'Generate CSV', 'easy-digital-downloads' ); ?></button>
</form>
</div>
</div>
<div class="postbox edd-export-download-history">
<h2 class="hndle"><span><?php esc_html_e( 'Export File Download Logs', 'easy-digital-downloads' ); ?></span></h2>
<div class="inside">
<p><?php esc_html_e( 'Download a CSV of file download logs.', 'easy-digital-downloads' ); ?></p>
<form id="edd-export-download-history" class="edd-export-form edd-import-export-form" method="post">
<label for="edd_file_download_export_download" class="screen-reader-text"><?php esc_html_e( 'Select Download', 'easy-digital-downloads' ); ?></label>
<?php echo EDD()->html->product_dropdown(
array(
'name' => 'download_id',
'id' => 'edd_file_download_export_download',
'chosen' => true,
/* translators: the plural post type label */
'placeholder' => sprintf( __( 'All %s', 'easy-digital-downloads' ), edd_get_label_plural() ),
)
);
?>
<fieldset class="edd-from-to-wrapper">
<legend class="screen-reader-text">
<?php esc_html_e( 'Export File Download Log Dates', 'easy-digital-downloads' ); ?>
</legend>
<label for="edd-file-download-export-start" class="screen-reader-text"><?php esc_html_e( 'Set start date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-file-download-export-start',
'class' => 'edd-export-start',
'name' => 'file-download-export-start',
'placeholder' => _x( 'From', 'date filter', 'easy-digital-downloads' )
)
);
?>
<label for="edd-file-download-export-end" class="screen-reader-text"><?php esc_html_e( 'Set end date', 'easy-digital-downloads' ); ?></label>
<?php
echo EDD()->html->date_field(
array(
'id' => 'edd-file-download-export-end',
'class' => 'edd-export-end',
'name' => 'file-download-export-end',
'placeholder' => _x( 'To', 'date filter', 'easy-digital-downloads' )
)
);
?>
</fieldset>
<?php
wp_nonce_field( 'edd_ajax_export', 'edd_ajax_export' );
?>
<input type="hidden" name="edd-export-class" value="EDD_Batch_File_Downloads_Export"/>
<button type="submit" class="button button-secondary"><?php esc_html_e( 'Generate CSV', 'easy-digital-downloads' ); ?></button>
</form>
</div>
</div>
<?php do_action( 'edd_reports_tab_export_content_bottom' ); ?>
<?php
do_action( 'edd_reports_tab_export_content_top' );
$views = array(
'earnings-report',
'sales-earnings',
'sales',
'orders',
'taxed-orders',
'customers',
'taxed-customers',
'downloads',
'api-requests',
'download-history',
);
foreach ( $views as $view ) {
include "views/export-{$view}.php";
}
do_action( 'edd_reports_tab_export_content_bottom' );
?>
</div>
</div>
</div>