You appear to be a bot. Output may be restricted
Description
Process Get Stats API Request
Usage
$array = EDD_API::get_stats( $args );
Parameters
- $args
- ( array ) optional – Arguments provided by API Request
Returns
array
Source
File name: easy-digital-downloads/includes/api/class-edd-api.php
Lines:
101 to 200 of 257
} } elseif ( $args['product'] == 'all' ) { $products = get_posts( array( 'post_type' => 'download', 'nopaging' => true ) ); $i = 0; foreach ( $products as $product_info ) { $sales['sales'][$i] = array( $product_info->post_name => edd_get_download_sales_stats( $product_info->ID ) ); $i++; } } else { if ( get_post_type( $args['product'] ) == 'download' ) { $product_info = get_post( $args['product'] ); $sales['sales'][0] = array( $product_info->post_name => edd_get_download_sales_stats( $args['product'] ) ); } else { $error['error'] = sprintf( __( 'Product %s not found!', 'easy-digital-downloads' ), $args['product'] ); } } if ( ! empty( $error ) ) return $error; return apply_filters( 'edd_api_stats_sales', $sales, $this ); } elseif ( $args['type'] == 'earnings' ) { if ( $args['product'] == null ) { if ( $args['date'] == null ) { $earnings = $this->get_default_earnings_stats(); } elseif ( $args['date'] === 'range' ) { // Return sales for a date range // Ensure the end date is later than the start date if ( $args['enddate'] < $args['startdate'] ) { $error['error'] = __( 'The end date must be later than the start date!', 'easy-digital-downloads' ); } // Ensure both the start and end date are specified if ( empty( $args['startdate'] ) || empty( $args['enddate'] ) ) { $error['error'] = __( 'Invalid or no date range specified!', 'easy-digital-downloads' ); } $total = (float) 0.00; // Loop through the years if ( ! isset( $earnings['earnings'] ) ) { $earnings['earnings'] = array(); } if ( cal_days_in_month( CAL_GREGORIAN, $dates['m_start'], $dates['year'] ) < $dates['day_start'] ) { $next_day = mktime( 0, 0, 0, $dates['m_start'] + 1, 1, $dates['year'] ); $day = date( 'd', $next_day ); $month = date( 'm', $next_day ); $year = date( 'Y', $next_day ); $date_start = $year . '-' . $month . '-' . $day; } else { $date_start = $dates['year'] . '-' . $dates['m_start'] . '-' . $dates['day_start']; } if ( cal_days_in_month( CAL_GREGORIAN, $dates['m_end'], $dates['year'] ) < $dates['day_end'] ) { $date_end = $dates['year_end'] . '-' . $dates['m_end'] . '-' . cal_days_in_month( CAL_GREGORIAN, $dates['m_end'], $dates['year'] ); } else { $date_end = $dates['year_end'] . '-' . $dates['m_end'] . '-' . $dates['day_end']; } $earnings = EDD()->payment_stats->get_earnings_by_range( 'other', true, $date_start, $date_end ); $total = 0; foreach ( $earnings as $earning ) { $temp_data['earnings'][ $earning['y'] . $earning['m'] . $earning['d'] ] = (float) $earning['total']; $total += (float) $earning['total']; } $date_start = date( 'Y-m-d', strtotime( $date_start ) ); $date_end = date( 'Y-m-d', strtotime( $date_end ) ); while ( strtotime( $date_start ) <= strtotime( $date_end ) ) { $d = date( 'd', strtotime( $date_start ) ); $m = date( 'm', strtotime( $date_start ) ); $y = date( 'Y', strtotime( $date_start ) ); $key = $y . $m . $d; if ( ! isset( $temp_data['earnings'][ $key ] ) ) { $temp_data['earnings'][ $key ] = 0; } $date_start = date( 'Y-m-d', strtotime( '+1 day', strtotime( $date_start ) ) ); } ksort($temp_data['earnings']); $earnings = $temp_data; $earnings['totals'] = $total; } else { $date_start = $dates['year'] . '-' . $dates['m_start'] . '-' . $dates['day']; $date_end = $dates['year'] . '-' . $dates['m_end'] . '-' . $dates['day_end']; $results = EDD()->payment_stats->get_earnings_by_range( $args['date'], false, $date_start, $date_end ); if ( $results instanceof WP_Error ) { $error_message = __( 'There was an error retrieving earnings.', 'easy-digital-downloads' );