コード例 #1
0
 /**
  * Format products for easier displaying
  *
  * @param object $products
  *
  * @return array
  */
 public function format_product_details($products)
 {
     if (empty($products)) {
         return false;
     }
     $orders_page = get_permalink(WC_Vendors::$pv_options->get_option('orders_page'));
     $default_commission = WC_Vendors::$pv_options->get_option('default_commission');
     $total_qty = $total_cost = 0;
     $data = array('products' => array(), 'total_qty' => '', 'total_cost' => '');
     foreach ($products as $product) {
         $ids[] = $product->ID;
     }
     $orders = WCV_Queries::sum_orders_for_products($ids, array('vendor_id' => get_current_user_id()));
     if ($orders) {
         foreach ($orders as $order_item) {
             if ($order_item->qty < 1) {
                 continue;
             }
             $commission_rate = WCV_Commission::get_commission_rate($order_item->product_id);
             $_product = get_product($order_item->product_id);
             $id = !empty($_product->parent->id) ? $_product->parent->id : $order_item->product_id;
             $data['products'][$id] = array('id' => $id, 'title' => $_product->get_title(), 'qty' => !empty($data['products'][$id]) ? $data['products'][$id]['qty'] + $order_item->qty : $order_item->qty, 'cost' => !empty($data['products'][$id]) ? $data['products'][$id]['cost'] + $order_item->line_total : $order_item->line_total, 'view_orders_url' => esc_url(add_query_arg('orders_for_product', $id, $orders_page)), 'commission_rate' => $commission_rate);
             $total_qty += $order_item->qty;
             $total_cost += $order_item->line_total;
         }
     }
     $data['total_qty'] = $total_qty;
     $data['total_cost'] = $total_cost;
     // Sort by product title
     if (!empty($data['products'])) {
         usort($data['products'], array($this, 'sort_by_title'));
     }
     return $data;
 }