/** * Updates shop balance * * @access public * @param int $user * @param array $data * @return void */ public static function updateBalance($user, $data = array()) { $shop = ThemexUser::getShop($user); //values $revenue = 0; $profit = 0; $balance = 0; $sales = 0; //rates $rate_min = absint(ThemexCore::getOption('shop_rate_min', 50)); $rate_max = absint(ThemexCore::getOption('shop_rate_max', 70)); $rate_amount = absint(ThemexCore::getOption('shop_rate_amount', 1000)); if (isset($data['order'])) { $rate = $rate_min; if ($rate_max > $rate_min) { $rate = absint(ThemexCore::getUserMeta($user, 'rate', $rate_min)); } $rate = self::filterRate($shop, $rate); ThemexCore::updatePostMeta($data['order'], 'rate', $rate); } //orders $orders = ThemexWoo::getOrders($user, array('post_status' => 'wc-completed')); foreach ($orders as $order) { $object = wc_get_order($order); $rate = absint(ThemexCore::getPostMeta($order, 'rate', $rate_min)); $total = $object->get_total() - $object->get_total_refunded(); $amount = $total * $rate / 100; $revenue = $revenue + $total; $profit = $profit + $amount; if ($object->payment_method != 'paypal-adaptive-payments') { $balance = $balance + $amount; } $sales = $sales + $object->get_item_count(); } //referrals $rate = absint(ThemexCore::getOption('shop_rate_referral', '30')); $referrals = ThemexWoo::getReferrals($user, array('post_status' => 'wc-completed')); foreach ($referrals as $referral) { $object = wc_get_order($referral); $total = $object->get_total() - $object->get_total_refunded(); $amount = $total * $rate / 100; $profit = $profit + $amount; $balance = $balance + $amount; } //withdrawals $withdrawals = self::getWithdrawals($user, array('post_status' => array('pending', 'publish'))); foreach ($withdrawals as $withdrawal) { $amount = abs(floatval(ThemexCore::getPostMeta($withdrawal, 'amount'))); $balance = $balance - $amount; } //rate if ($rate_max > $rate_min) { $rate = absint($rate_min + $revenue / ($rate_amount / ($rate_max - $rate_min))); ThemexCore::updateUserMeta($user, 'rate', $rate); } ThemexCore::updateUserMeta($user, 'revenue', $revenue); ThemexCore::updateUserMeta($user, 'profit', $profit); ThemexCore::updateUserMeta($user, 'balance', $balance); ThemexCore::updatePostMeta($shop, 'sales', $sales); }
</tr> <tr> <th><?php _e('Clickthroughs', 'makery'); ?> </th> <td><?php echo ThemexUser::$data['current']['clicks']; ?> </td> </tr> </tbody> </table> </form> <?php $orders = ThemexWoo::getReferrals(ThemexUser::$data['current']['ID']); if (empty($orders)) { ?> <span class="secondary"><?php _e('No orders made yet.', 'makery'); ?> </span> <?php } else { ?> <table> <thead> <tr> <th>№</th> <th><?php _e('Date', 'makery');