Esempio n. 1
0
 /**
  * Updates user avatar
  *
  * @access public
  * @param int $ID
  * @param array $file
  * @return void
  */
 public static function updateAvatar($ID, $file)
 {
     wp_delete_attachment(ThemexCore::getUserMeta($ID, 'avatar'));
     $attachment = ThemexCore::uploadImage($file);
     if (isset($attachment['ID']) && $attachment['ID'] != 0) {
         ThemexCore::updateUserMeta($ID, 'avatar', $attachment['ID']);
     }
 }
Esempio n. 2
0
 /**
  * Gets user settings
  *
  * @access public
  * @param int $ID
  * @return array
  */
 public static function getSettings($ID)
 {
     $settings['notices'] = ThemexCore::getUserMeta($ID, 'notices', '1');
     return $settings;
 }
 /**
  * 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);
 }
Esempio n. 4
0
 /**
  * Sets affiliate
  *
  * @access public
  * @param string $login
  * @return void
  */
 public static function setAffiliate($login)
 {
     $login = sanitize_user($login);
     if (!empty($login) && !ThemexCore::checkOption('shop_referrals')) {
         $user = get_user_by('login', $login);
         $affiliate = intval(themex_value(THEMEX_PREFIX . 'affiliate', $_COOKIE));
         if ($user !== false && (empty($affiliate) || $user->ID != $affiliate)) {
             $expire = time() + 86400 * 10;
             setcookie(THEMEX_PREFIX . 'affiliate', $user->ID, $expire, COOKIEPATH, COOKIE_DOMAIN, false);
             $clicks = intval(ThemexCore::getUserMeta($user->ID, 'clicks'));
             ThemexCore::updateUserMeta($user->ID, 'clicks', $clicks + 1);
         }
     }
 }
 /**
  * Checks user membership
  *
  * @access public
  * @param int $ID
  * @return bool
  */
 public static function isMember($ID)
 {
     if (ThemexCore::checkOption('membership_free')) {
         $hidden = intval(ThemexCore::getUserMeta($ID, 'hidden'));
         if ($hidden == 1) {
             return false;
         }
     }
     return true;
 }