示例#1
0
 public function store_commission_data($data, $query_mode, $api_object)
 {
     if ('store-commissions' != $query_mode) {
         return $data;
     }
     $user_id = $api_object->get_user();
     if (!user_can($user_id, 'view_shop_reports')) {
         return $data;
     }
     $data = array('commissions' => array());
     $paged = $api_object->get_paged();
     $status = isset($_REQUEST['status']) ? sanitize_text_field($_REQUEST['status']) : 'unpaid';
     $commission_args = array('post_type' => 'edd_commission', 'post_status' => 'publish', 'posts_per_page' => $api_object->per_page(), 'paged' => $paged);
     if ($status) {
         $commission_args['tax_query'] = array(array('taxonomy' => 'edd_commission_status', 'terms' => $status, 'field' => 'slug'));
     }
     $commissions = get_posts($commission_args);
     if ($commissions) {
         foreach ($commissions as $commission) {
             $commission_meta = get_post_meta($commission->ID, '_edd_commission_info', true);
             $commission_meta = get_post_meta($commission->ID, '_edd_commission_info', true);
             $renewal = (bool) get_post_meta($commission->ID, '_edd_commission_is_renewal', true);
             $data['commissions'][] = array('amount' => edd_sanitize_amount($commission_meta['amount']), 'rate' => $commission_meta['rate'], 'currency' => $commission_meta['currency'], 'item' => get_the_title($download_id), 'status' => eddc_get_commission_status($commission->ID), 'date' => $commission->post_date, 'renewal' => $renewal ? 1 : 0);
         }
         wp_reset_postdata();
     }
     $data['total_unpaid'] = eddc_get_unpaid_totals();
     return $data;
 }
 function commissions_data()
 {
     $commissions_data = array();
     $paged = $this->get_paged();
     $user = $this->get_filtered_user();
     $commission_args = array('post_type' => 'edd_commission', 'post_status' => 'publish', 'posts_per_page' => $this->per_page, 'paged' => $paged);
     $meta_query = $this->get_meta_query();
     if (!empty($meta_query)) {
         $commission_args['meta_query'] = $meta_query;
     }
     $tax_query = $this->get_tax_query();
     if (!empty($tax_query)) {
         $commission_args['tax_query'] = $tax_query;
     }
     $commissions = new WP_Query($commission_args);
     if ($commissions->have_posts()) {
         while ($commissions->have_posts()) {
             $commissions->the_post();
             $commission_id = get_the_ID();
             $commission_info = get_post_meta($commission_id, '_edd_commission_info', true);
             $download_id = get_post_meta($commission_id, '_download_id', true);
             $variation = '';
             $has_variable_prices = edd_has_variable_prices($download_id);
             if ($has_variable_prices) {
                 $variation = get_post_meta($commission_id, '_edd_commission_download_variation', true);
             }
             $commissions_data[] = array('ID' => $commission_id, 'title' => get_the_title($commission_id), 'amount' => $commission_info['amount'], 'rate' => $commission_info['rate'], 'user' => $commission_info['user_id'], 'download' => $download_id, 'variation' => $variation, 'status' => eddc_get_commission_status($commission_id));
         }
         wp_reset_postdata();
     }
     return $commissions_data;
 }
/**
 * Sets the status for a commission record
 *
 * @access      public
 * @since       2.8
 * @return      void
 */
function eddc_set_commission_status($commission_id = 0, $new_status = 'unpaid')
{
    $old_status = eddc_get_commission_status($commission_id);
    do_action('eddc_pre_set_commission_status', $commission_id, $new_status, $old_status);
    wp_set_object_terms($commission_id, $new_status, 'edd_commission_status', false);
    do_action('eddc_set_commission_status', $commission_id, $new_status, $old_status);
}