コード例 #1
0
 /**
  * Store all commission due for an order
  *
  * @return bool
  *
  * @param int $order_id
  */
 public function log_commission_due($order_id)
 {
     global $woocommerce;
     $order = new WC_Order($order_id);
     $dues = PV_Vendors::get_vendor_dues_from_order($order, false);
     foreach ($dues as $vendor_id => $details) {
         // Only process vendor commission
         if (!PV_Vendors::is_vendor($vendor_id)) {
             continue;
         }
         // See if they currently have an amount due
         $due = PV_Vendors::count_due_by_vendor($vendor_id, $order_id);
         if ($due > 0) {
             continue;
         }
         // Get the dues in an easy format for inserting to our table
         $total_due = 0;
         $insert_due = array();
         foreach ($details as $detail) {
             $product_id = $detail['product_id'];
             $insert_due[$product_id] = array('order_id' => $order_id, 'vendor_id' => $vendor_id, 'product_id' => $product_id, 'total_due' => !empty($insert_due[$product_id]['total_due']) ? $detail['commission'] + $insert_due[$product_id]['total_due'] : $detail['commission'], 'total_shipping' => $detail['shipping'], 'tax' => $detail['tax'], 'qty' => $detail['qty'], 'time' => $order->order_date);
             $total_due += $detail['total'];
         }
         if (!empty($insert_due)) {
             PV_Vendors::update_total_due($vendor_id, $total_due);
             PV_Commission::insert_new_commission(array_values($insert_due));
         }
     }
 }
コード例 #2
0
ファイル: paypal_ap.php プロジェクト: shahadat014/geleyi
 /**
  *
  *
  * @param unknown $order
  * @param unknown $author_email
  * @param unknown $setPaymentOptionsRequest
  * @param unknown $is_admin (optional)
  *
  * @return unknown
  */
 public function set_vendor_items($order, $setPaymentOptionsRequest)
 {
     $receivers = PV_Vendors::get_vendor_dues_from_order($order, false);
     foreach ($receivers as $products) {
         $invoice_items = array();
         $shipping_given = $tax_given = 0;
         foreach ($products as $key => $product) {
             $product_id = $product['product_id'];
             $shipping_given += $product['shipping'];
             $tax_given += $product['tax'];
             if (!empty($product['commission'])) {
                 $item = new InvoiceItem();
                 $item->name = get_the_title($product_id);
                 $item->identifier = $product_id;
                 $item->price = $product['commission'];
                 $item->itemPrice = round($product['commission'] / $product['qty'], 2);
                 $item->itemCount = $product['qty'];
                 $invoice_items[] = $item;
             }
         }
         if (empty($invoice_items)) {
             continue;
         }
         $receiverOptions = new ReceiverOptions();
         $setPaymentOptionsRequest->receiverOptions[] = $receiverOptions;
         // Set the current vendor
         $receiverId = new ReceiverIdentifier();
         $receiverId->email = $product['vendor_id'] == 1 ? $this->main_paypal : PV_Vendors::get_vendor_paypal($product['vendor_id']);
         $receiverOptions->receiver = $receiverId;
         $receiverOptions->invoiceData = new InvoiceData();
         $receiverOptions->invoiceData->item = $invoice_items;
         $receiverOptions->invoiceData->totalTax = $tax_given;
         $receiverOptions->invoiceData->totalShipping = $shipping_given;
     }
     return $setPaymentOptionsRequest;
 }