updated plugin Easy Digital Downloads
version 3.1.1.4.2
This commit is contained in:
@ -23,37 +23,17 @@ defined( 'ABSPATH' ) || exit;
|
||||
function edd_overview_sales_earnings_chart() {
|
||||
global $wpdb;
|
||||
|
||||
$dates = Reports\get_dates_filter( 'objects' );
|
||||
$chart_dates = Reports\parse_dates_for_range( null, 'now', false );
|
||||
$day_by_day = Reports\get_dates_filter_day_by_day();
|
||||
$hour_by_hour = Reports\get_dates_filter_hour_by_hour();
|
||||
$column = Reports\get_taxes_excluded_filter() ? '(total - tax)' : 'total';
|
||||
$currency = Reports\get_filter_value( 'currencies' );
|
||||
$dates = Reports\get_dates_filter( 'objects' );
|
||||
$chart_dates = Reports\parse_dates_for_range( null, 'now', false );
|
||||
$column = Reports\get_taxes_excluded_filter() ? '(total - tax)' : 'total';
|
||||
$currency = Reports\get_filter_value( 'currencies' );
|
||||
$period = Reports\get_graph_period();
|
||||
|
||||
if ( empty( $currency ) || 'convert' === $currency ) {
|
||||
$column .= ' / rate';
|
||||
}
|
||||
|
||||
$sql_clauses = array(
|
||||
'select' => 'DATE_FORMAT(date_created, "%%Y-%%m") AS date',
|
||||
'where' => '',
|
||||
'groupby' => '',
|
||||
);
|
||||
|
||||
// Default to 'monthly'.
|
||||
$sql_clauses['groupby'] = Reports\get_groupby_date_string( 'MONTH', 'date_created' );
|
||||
$sql_clauses['orderby'] = 'MONTH(date_created)';
|
||||
|
||||
// Now drill down to the smallest unit.
|
||||
if ( $hour_by_hour ) {
|
||||
$sql_clauses['groupby'] = Reports\get_groupby_date_string( 'HOUR', 'date_created' );
|
||||
$sql_clauses['orderby'] = 'HOUR(date_created)';
|
||||
$sql_clauses['select'] = 'DATE_FORMAT(date_created, "%%Y-%%m-%%d %%H:00:00") AS date';
|
||||
} elseif ( $day_by_day ) {
|
||||
$sql_clauses['groupby'] = Reports\get_groupby_date_string( 'DATE', 'date_created' );
|
||||
$sql_clauses['orderby'] = 'DATE(date_created)';
|
||||
$sql_clauses['select'] = 'DATE_FORMAT(date_created, "%%Y-%%m-%%d") AS date';
|
||||
}
|
||||
$sql_clauses = Reports\get_sql_clauses( $period );
|
||||
|
||||
if ( ! empty( $currency ) && array_key_exists( strtoupper( $currency ), edd_get_currencies() ) ) {
|
||||
$sql_clauses['where'] = $wpdb->prepare( " AND currency = %s ", strtoupper( $currency ) );
|
||||
@ -86,7 +66,7 @@ function edd_overview_sales_earnings_chart() {
|
||||
|
||||
$sales_results = $wpdb->get_results(
|
||||
$wpdb->prepare(
|
||||
"SELECT COUNT(id) AS sales, {$sql_clauses['select']}
|
||||
"SELECT COUNT(*) AS sales, {$sql_clauses['select']}
|
||||
FROM {$wpdb->edd_orders} edd_o
|
||||
WHERE date_created >= %s AND date_created <= %s
|
||||
AND status IN( {$statuses} )
|
||||
@ -122,14 +102,13 @@ function edd_overview_sales_earnings_chart() {
|
||||
$date_of_db_value = EDD()->utils->date( $earnings_result->date );
|
||||
|
||||
// Add any sales/earnings that happened during this hour.
|
||||
if ( $hour_by_hour ) {
|
||||
$date_of_db_value = edd_get_edd_timezone_equivalent_date_from_utc( $date_of_db_value );
|
||||
if ( 'hour' === $period ) {
|
||||
// If the date of this db value matches the date on this line graph/chart, set the y axis value for the chart to the number in the DB result.
|
||||
if ( $date_of_db_value->format( 'Y-m-d H' ) === $date_on_chart->format( 'Y-m-d H' ) ) {
|
||||
$earnings[ $timestamp ][1] += $earnings_result->earnings;
|
||||
}
|
||||
// Add any sales/earnings that happened during this day.
|
||||
} elseif ( $day_by_day ) {
|
||||
} elseif ( 'day' === $period ) {
|
||||
// If the date of this db value matches the date on this line graph/chart, set the y axis value for the chart to the number in the DB result.
|
||||
if ( $date_of_db_value->format( 'Y-m-d' ) === $date_on_chart->format( 'Y-m-d' ) ) {
|
||||
$earnings[ $timestamp ][1] += $earnings_result->earnings;
|
||||
@ -148,14 +127,13 @@ function edd_overview_sales_earnings_chart() {
|
||||
$date_of_db_value = EDD()->utils->date( $sales_result->date );
|
||||
|
||||
// Add any sales/earnings that happened during this hour.
|
||||
if ( $hour_by_hour ) {
|
||||
$date_of_db_value = edd_get_edd_timezone_equivalent_date_from_utc( $date_of_db_value );
|
||||
if ( 'hour' === $period ) {
|
||||
// If the date of this db value matches the date on this line graph/chart, set the y axis value for the chart to the number in the DB result.
|
||||
if ( $date_of_db_value->format( 'Y-m-d H' ) === $date_on_chart->format( 'Y-m-d H' ) ) {
|
||||
$sales[ $timestamp ][1] += $sales_result->sales;
|
||||
}
|
||||
// Add any sales/earnings that happened during this day.
|
||||
} elseif ( $day_by_day ) {
|
||||
} elseif ( 'day' === $period ) {
|
||||
// If the date of this db value matches the date on this line graph/chart, set the y axis value for the chart to the number in the DB result.
|
||||
if ( $date_of_db_value->format( 'Y-m-d' ) === $date_on_chart->format( 'Y-m-d' ) ) {
|
||||
$sales[ $timestamp ][1] += $sales_result->sales;
|
||||
@ -170,9 +148,9 @@ function edd_overview_sales_earnings_chart() {
|
||||
}
|
||||
|
||||
// Move the chart along to the next hour/day/month to get ready for the next loop.
|
||||
if ( $hour_by_hour ) {
|
||||
if ( 'hour' === $period ) {
|
||||
$chart_dates['start']->addHour( 1 );
|
||||
} elseif ( $day_by_day ) {
|
||||
} elseif ( 'day' === $period ) {
|
||||
$chart_dates['start']->addDays( 1 );
|
||||
} else {
|
||||
$chart_dates['start']->addMonth( 1 );
|
||||
@ -194,30 +172,12 @@ function edd_overview_sales_earnings_chart() {
|
||||
function edd_overview_refunds_chart() {
|
||||
global $wpdb;
|
||||
|
||||
$dates = Reports\get_dates_filter( 'objects' );
|
||||
$chart_dates = Reports\parse_dates_for_range( null, 'now', false );
|
||||
$day_by_day = Reports\get_dates_filter_day_by_day();
|
||||
$hour_by_hour = Reports\get_dates_filter_hour_by_hour();
|
||||
$column = Reports\get_taxes_excluded_filter() ? 'total - tax' : 'total';
|
||||
$currency = Reports\get_filter_value( 'currencies' );
|
||||
|
||||
$sql_clauses = array(
|
||||
'select' => 'date_created AS date',
|
||||
'where' => '',
|
||||
);
|
||||
|
||||
// Default to 'monthly'.
|
||||
$sql_clauses['groupby'] = Reports\get_groupby_date_string( 'MONTH', 'date_created' );
|
||||
$sql_clauses['orderby'] = 'MONTH(date_created)';
|
||||
|
||||
// Now drill down to the smallest unit.
|
||||
if ( $hour_by_hour ) {
|
||||
$sql_clauses['groupby'] = Reports\get_groupby_date_string( 'HOUR', 'date_created' );
|
||||
$sql_clauses['orderby'] = 'HOUR(date_created)';
|
||||
} elseif ( $day_by_day ) {
|
||||
$sql_clauses['groupby'] = Reports\get_groupby_date_string( 'DATE', 'date_created' );
|
||||
$sql_clauses['orderby'] = 'DATE(date_created)';
|
||||
}
|
||||
$dates = Reports\get_dates_filter( 'objects' );
|
||||
$chart_dates = Reports\parse_dates_for_range( null, 'now', false );
|
||||
$column = Reports\get_taxes_excluded_filter() ? 'total - tax' : 'total';
|
||||
$currency = Reports\get_filter_value( 'currencies' );
|
||||
$period = Reports\get_graph_period();
|
||||
$sql_clauses = Reports\get_sql_clauses( $period );
|
||||
|
||||
if ( empty( $currency ) || 'convert' === $currency ) {
|
||||
$column = sprintf( '(%s) / rate', $column );
|
||||
@ -227,7 +187,7 @@ function edd_overview_refunds_chart() {
|
||||
|
||||
$results = $wpdb->get_results(
|
||||
$wpdb->prepare(
|
||||
"SELECT COUNT(id) AS number, SUM({$column}) AS amount, {$sql_clauses['select']}
|
||||
"SELECT COUNT(*) AS number, SUM({$column}) AS amount, {$sql_clauses['select']}
|
||||
FROM {$wpdb->edd_orders} edd_o
|
||||
WHERE status IN (%s, %s) AND date_created >= %s AND date_created <= %s AND type = 'refund'
|
||||
{$sql_clauses['where']}
|
||||
@ -240,7 +200,7 @@ function edd_overview_refunds_chart() {
|
||||
)
|
||||
);
|
||||
|
||||
$number = array();
|
||||
$number = array();
|
||||
$amount = array();
|
||||
|
||||
// Initialise all arrays with timestamps and set values to 0.
|
||||
@ -259,15 +219,14 @@ function edd_overview_refunds_chart() {
|
||||
$date_of_db_value = EDD()->utils->date( $result->date );
|
||||
|
||||
// Add any refunds that happened during this hour.
|
||||
if ( $hour_by_hour ) {
|
||||
$date_of_db_value = edd_get_edd_timezone_equivalent_date_from_utc( $date_of_db_value );
|
||||
if ( 'hour' === $period ) {
|
||||
// If the date of this db value matches the date on this line graph/chart, set the y axis value for the chart to the number in the DB result.
|
||||
if ( $date_of_db_value->format( 'Y-m-d H' ) === $date_on_chart->format( 'Y-m-d H' ) ) {
|
||||
$number[ $timestamp ][1] += $result->number;
|
||||
$amount[ $timestamp ][1] += abs( $result->amount );
|
||||
}
|
||||
// Add any refunds that happened during this day.
|
||||
} elseif ( $day_by_day ) {
|
||||
} elseif ( 'day' === $period ) {
|
||||
// If the date of this db value matches the date on this line graph/chart, set the y axis value for the chart to the number in the DB result.
|
||||
if ( $date_of_db_value->format( 'Y-m-d' ) === $date_on_chart->format( 'Y-m-d' ) ) {
|
||||
$number[ $timestamp ][1] += $result->number;
|
||||
@ -284,9 +243,9 @@ function edd_overview_refunds_chart() {
|
||||
}
|
||||
|
||||
// Move the chart along to the next hour/day/month to get ready for the next loop.
|
||||
if ( $hour_by_hour ) {
|
||||
if ( 'hour' === $period ) {
|
||||
$chart_dates['start']->addHour( 1 );
|
||||
} elseif ( $day_by_day ) {
|
||||
} elseif ( 'day' === $period ) {
|
||||
$chart_dates['start']->addDays( 1 );
|
||||
} else {
|
||||
$chart_dates['start']->addMonth( 1 );
|
||||
@ -297,5 +256,4 @@ function edd_overview_refunds_chart() {
|
||||
'number' => array_values( $number ),
|
||||
'amount' => array_values( $amount ),
|
||||
);
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user