/** * Set commission to 'paid' for an entire order * * * @access public * * @param mixed $order_id An array of Order IDs or an int. * @param unknown $column_ids (optional) * * @return bool. */ public function set_order_commission_paid($order_id, $column_ids = false) { global $wpdb; $table_name = $wpdb->prefix . "pv_commission"; $column = $column_ids ? 'id' : 'order_id'; if (is_array($order_id)) { $order_id = implode(',', $order_id); } $query = "SELECT sum(`total_due` + `total_shipping` + `tax`) as total, `vendor_id` FROM `{$table_name}` WHERE `status` != 'paid' AND `{$column}` IN ({$order_id}) GROUP BY `vendor_id`"; $dues = $wpdb->get_results($query); if (empty($dues)) { return false; } foreach ($dues as $due) { PV_Vendors::update_total_due($due->vendor_id, $due->total * -1); } $query = "UPDATE `{$table_name}` SET `status` = 'paid' WHERE order_id IN ({$order_id})"; $result = $wpdb->query($query); return $result; }
/** * * * @param unknown $ids (optional) * * @return unknown */ public function mark_due($ids = array()) { global $wpdb; $table_name = $wpdb->prefix . "pv_commission"; $query = "SELECT sum(`total_due` + `total_shipping` + `tax`) as total, `vendor_id` FROM `{$table_name}` WHERE `status` != 'due' AND `id` IN ({$ids}) GROUP BY `vendor_id`"; $dues = $wpdb->get_results($query); if (empty($dues)) { return false; } foreach ($dues as $due) { PV_Vendors::update_total_due($due->vendor_id, $due->total); } $query = "UPDATE `{$table_name}` SET `status` = 'due' WHERE id IN ({$ids})"; $result = $wpdb->query($query); return $result; }