Example #1
0
 /**
  * Updates Facebook image
  *
  * @access public
  * @param int $ID
  * @param int $user
  * @return void
  */
 public static function updateImage($ID, $user)
 {
     require_once ABSPATH . 'wp-admin/includes/image.php';
     $attachment = array('ID' => 0);
     $url = 'https://graph.facebook.com/' . intval($ID) . '/picture?type=large';
     $image = @file_get_contents($url);
     if ($image !== false && !empty($image)) {
         $uploads = wp_upload_dir();
         $filename = wp_unique_filename($uploads['path'], 'image-1.jpg');
         $filepath = $uploads['path'] . '/' . $filename;
         $contents = file_put_contents($filepath, $image);
         if ($contents !== false) {
             //upload image
             $attachment = array('guid' => $uploads['url'] . '/' . $filename, 'post_mime_type' => 'image/jpg', 'post_title' => sanitize_title(current(explode('.', $filename))), 'post_content' => '', 'post_status' => 'inherit', 'post_author' => $user);
             //add image
             $attachment['ID'] = wp_insert_attachment($attachment, $attachment['guid'], 0);
             update_post_meta($attachment['ID'], '_wp_attached_file', substr($uploads['subdir'], 1) . '/' . $filename);
             //add thumbnails
             $metadata = wp_generate_attachment_metadata($attachment['ID'], $filepath);
             wp_update_attachment_metadata($attachment['ID'], $metadata);
         }
     }
     //update image
     if (isset($attachment['ID']) && $attachment['ID'] != 0) {
         ThemexCore::updateUserMeta($user, 'avatar', $attachment['ID']);
     }
 }
Example #2
0
 /**
  * Updates admin profile
  *
  * @access public
  * @param mixed $user
  * @return void
  */
 public static function updateAdminProfile($user)
 {
     global $wpdb;
     self::updateProfile($user, $_POST);
     if (current_user_can('edit_users') && isset($_POST['avatar']) && !empty($_POST['avatar'])) {
         $query = "SELECT ID FROM " . $wpdb->posts . " WHERE guid = '" . esc_url($_POST['avatar']) . "'";
         $avatar = $wpdb->get_var($query);
         if (!empty($avatar)) {
             ThemexCore::updateUserMeta($user, 'avatar', $avatar);
         }
     }
 }
Example #3
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);
         }
     }
 }
Example #4
0
 /**
  * Activates user
  *
  * @access public
  * @return void
  */
 public static function activateUser()
 {
     if (isset($_GET['activate']) && isset($_GET['user']) && intval($_GET['user']) != 0) {
         $users = get_users(array('meta_key' => '_' . THEMEX_PREFIX . 'activation_key', 'meta_value' => sanitize_text_field($_GET['activate']), 'include' => intval($_GET['user'])));
         if (!empty($users)) {
             $user = reset($users);
             $user = new WP_User($user->ID);
             $user->remove_role('inactive');
             $user->add_role('contributor');
             wp_set_auth_cookie($user->ID, true);
             ThemexCore::updateUserMeta($user->ID, 'activation_key', '');
             wp_redirect(get_author_posts_url($user->ID));
             exit;
         }
     }
 }
 /**
  * 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);
 }