コード例 #1
0
 /**
  * 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);
 }
コード例 #2
0
					</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>&#8470;</th>
					<th><?php 
        _e('Date', 'makery');