当前位置: 首页>>代码示例>>PHP>>正文


PHP mycred_update_user_meta函数代码示例

本文整理汇总了PHP中mycred_update_user_meta函数的典型用法代码示例。如果您正苦于以下问题:PHP mycred_update_user_meta函数的具体用法?PHP mycred_update_user_meta怎么用?PHP mycred_update_user_meta使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了mycred_update_user_meta函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: save_user_override

 /**
  * Save Override
  * @since 1.5
  * @version 1.1.1
  */
 public function save_user_override()
 {
     if (isset($_POST['mycred_adjust_users_buyrates_run']) && isset($_POST['mycred_adjust_users_buyrates'])) {
         $ctype = sanitize_key($_GET['ctype']);
         $user_id = absint($_GET['user_id']);
         $mycred = mycred($ctype);
         if ($mycred->edit_plugin_cap() && !$mycred->exclude_user($user_id)) {
             $new_rates = array();
             foreach ((array) $_POST['mycred_adjust_users_buyrates'] as $gateway_id => $rate) {
                 if ($rate == '') {
                     continue;
                 }
                 if ($rate != 1 && in_array(substr($rate, 0, 1), array('.', ','))) {
                     $rate = (double) '0' . $rate;
                 }
                 $new_rates[$gateway_id] = $rate;
             }
             if (!empty($new_rates)) {
                 mycred_update_user_meta($user_id, 'mycred_buycred_rates_' . $ctype, '', $new_rates);
             } else {
                 mycred_delete_user_meta($user_id, 'mycred_buycred_rates_' . $ctype);
             }
             wp_safe_redirect(add_query_arg(array('result' => 'buycred_rates')));
             exit;
         }
     }
 }
开发者ID:sebastianringel,项目名称:stammtisch,代码行数:32,代码来源:myCRED-addon-buy-creds.php

示例2: mycred_check_if_user_gets_badge

 function mycred_check_if_user_gets_badge($user_id = NULL, $badge_ids = array(), $save = true)
 {
     if ($user_id === NULL || empty($badge_ids)) {
         return;
     }
     global $wpdb;
     $ids = array();
     foreach ($badge_ids as $badge_id) {
         $level = false;
         $requirements = mycred_get_badge_requirements($badge_id);
         foreach ($requirements as $req_level => $needs) {
             if ($needs['type'] == '') {
                 $needs['type'] = 'mycred_default';
             }
             $mycred = mycred($needs['type']);
             // Count occurences
             if ($needs['by'] == 'count') {
                 $select = 'COUNT( * )';
                 $amount = absint($needs['amount']);
             } else {
                 $select = 'SUM( creds )';
                 $amount = $mycred->number($needs['amount']);
             }
             $result = $wpdb->get_var(apply_filters('mycred_if_user_gets_badge_sql', $wpdb->prepare("\n\t\t\t\t\tSELECT {$select} \n\t\t\t\t\tFROM {$mycred->log_table} \n\t\t\t\t\tWHERE user_id = %d \n\t\t\t\t\t\tAND ctype = %s \n\t\t\t\t\t\tAND ref = %s;", $user_id, $needs['type'], $needs['reference']), $user_id, $badge_id, $req_level, $needs));
             if ($result === NULL) {
                 $result = 0;
             }
             if ($needs['by'] != 'count') {
                 $result = $mycred->number($result);
             } else {
                 $result = absint($result);
             }
             $level = NULL;
             if ($result >= $amount) {
                 $level = absint($req_level);
             }
             $current = mycred_get_user_meta($user_id, 'mycred_badge' . $badge_id, '', true);
             if ($current == '') {
                 $current = -1;
             }
             // If a level has been reached assign it now unless the user has this level already
             if ($level !== NULL && $current < $level) {
                 if ($save) {
                     mycred_update_user_meta($user_id, 'mycred_badge' . $badge_id, '', apply_filters('mycred_badge_user_value', $level, $user_id, $badge_id));
                 }
                 $ids[$badge_id] = $level;
             }
         }
     }
     return $ids;
 }
开发者ID:socialray,项目名称:surfied-2-0,代码行数:51,代码来源:mycred-badge-functions.php

示例3: mycred_find_users_rank

 function mycred_find_users_rank($user_id = NULL, $save = false, $type = 'mycred_default')
 {
     global $wpdb;
     $mycred = mycred($type);
     // In case user id is not set
     if ($user_id === NULL) {
         $user_id = get_current_user_id();
     }
     // Get current balanace
     $current_balance = $wpdb->get_var($wpdb->prepare("\n\t\t\tSELECT meta_value \n\t\t\tFROM {$wpdb->usermeta} \n\t\t\tWHERE user_id = %d \n\t\t\tAND meta_key = %s;", $user_id, $type));
     if ($current_balance === NULL) {
         $current_balance = 0;
     }
     // If ranks are based on total we get the total balance which in turn
     // if not set will default to the users current balance.
     if (mycred_rank_based_on_total($type)) {
         $balance = mycred_query_users_total($user_id, $type);
         if ($balance == 0) {
             $balance = $current_balance;
         }
     } else {
         $balance = $current_balance;
     }
     // Prep format for the db query
     $balance_format = '%d';
     if (isset($mycred->format['decimals']) && $mycred->format['decimals'] > 0) {
         $balance_format = 'CAST( %f AS DECIMAL( 10, ' . $mycred->format['decimals'] . ' ) )';
     }
     // Get the appropriate post tables
     if (!mycred_override_settings()) {
         $posts = $wpdb->posts;
         $postmeta = $wpdb->postmeta;
     } else {
         $posts = $wpdb->base_prefix . 'posts';
         $postmeta = $wpdb->base_prefix . 'postmeta';
     }
     $type_filter = $wpdb->prepare("\n\t\t\tINNER JOIN {$postmeta} ctype \n\t\t\t\tON ( ranks.ID = ctype.post_id AND ctype.meta_key = %s AND ctype.meta_value = %s )", 'ctype', $type);
     // Get the rank based on balance
     $rank_id = $wpdb->get_var($wpdb->prepare("\n\t\t\tSELECT ranks.ID \n\t\t\tFROM {$posts} ranks \n\t\t\t{$type_filter}\n\t\t\tINNER JOIN {$postmeta} min \n\t\t\t\tON ( ranks.ID = min.post_id AND min.meta_key = 'mycred_rank_min' )\n\t\t\tINNER JOIN {$postmeta} max \n\t\t\t\tON ( ranks.ID = max.post_id AND max.meta_key = 'mycred_rank_max' )\n\t\t\tWHERE ranks.post_type = 'mycred_rank' \n\t\t\t\tAND ranks.post_status = 'publish'\n\t\t\t\tAND {$balance_format} BETWEEN min.meta_value AND max.meta_value\n\t\t\tLIMIT 0,1;", $balance));
     // Let others play
     if ($rank_id !== NULL) {
         if (mycred_user_got_demoted($user_id, $rank_id)) {
             do_action('mycred_user_got_demoted', $user_id, $rank_id);
         } elseif (mycred_user_got_promoted($user_id, $rank_id)) {
             do_action('mycred_user_got_promoted', $user_id, $rank_id);
         }
     }
     $end = '';
     if ($type != 'mycred_default') {
         $end = $type;
     }
     // Save if requested
     if ($save && $rank_id !== NULL) {
         mycred_update_user_meta($user_id, 'mycred_rank', $end, $rank_id);
     }
     return apply_filters('mycred_find_users_rank', $rank_id, $user_id, $save, $type);
 }
开发者ID:socialray,项目名称:surfied-2-0,代码行数:57,代码来源:mycred-rank-functions.php

示例4: action_assign_badge

 /**
  * AJAX: Assign Badge
  * @version 1.0
  */
 public function action_assign_badge()
 {
     check_ajax_referer('mycred-assign-badge', 'token');
     $badge_id = absint($_POST['badge_id']);
     $requirements = mycred_get_badge_requirements($badge_id);
     if (empty($requirements)) {
         wp_send_json_error('This badge has no requirements set!');
     }
     $needs = $requirements[0];
     $mycred = mycred($needs['type']);
     $mycred_log = $mycred->log_table;
     global $wpdb;
     $sql = "\n\t\t\tSELECT user_id \n\t\t\tFROM {$mycred_log} \n\t\t\tWHERE " . $wpdb->prepare("ctype = %s AND ref = %s ", $needs['type'], $needs['reference']);
     $sql .= " GROUP by user_id ";
     $amount = $needs['amount'];
     if ($needs['by'] == 'count') {
         $sql .= "HAVING COUNT( id ) >= {$amount}";
     } else {
         $sql .= "HAVING SUM( creds ) >= {$amount}";
     }
     // Let others play
     $users = $wpdb->get_col(apply_filters('mycred_assign_badge_sql', $sql, $badge_id));
     // Empty results = no one has earned this badge yet
     if (empty($users)) {
         wp_send_json_error(__('No users has yet earned this badge.', 'mycred'));
     }
     // Assign badge
     foreach ($users as $user_id) {
         mycred_update_user_meta($user_id, 'mycred_badge' . $badge_id, '', apply_filters('mycred_badge_user_value', 1, $user_id, $badge_id));
     }
     wp_send_json_success(sprintf(__('%d Users earned this badge.', 'mycred'), count($users)));
 }
开发者ID:nfer,项目名称:mycred,代码行数:36,代码来源:myCRED-addon-badges.php

示例5: mycred_check_if_user_gets_badge

 function mycred_check_if_user_gets_badge($user_id = NULL, $request = array(), $badge_ids = array())
 {
     if ($user_id === NULL || empty($badge_ids)) {
         return;
     }
     global $wpdb;
     foreach ($badge_ids as $badge_id) {
         // See if user already has badge
         if (mycred_get_user_meta($user_id, 'mycred_badge' . $badge_id, '', true) != '') {
             continue;
         }
         $requirements = mycred_get_badge_requirements($badge_id);
         $needs = $requirements[0];
         $mycred = mycred($needs['type']);
         $mycred_log = $mycred->log_table;
         if ($needs['by'] == 'count') {
             $select = 'COUNT( * )';
             $amount = $needs['amount'];
         } else {
             $select = 'SUM( creds )';
             $amount = $mycred->number($needs['amount']);
         }
         $result = $wpdb->get_var($wpdb->prepare("\n\t\t\tSELECT {$select} \n\t\t\tFROM {$mycred_log} \n\t\t\tWHERE user_id = %d \n\t\t\t\tAND ctype = %s \n\t\t\t\tAND ref = %s;", $user_id, $needs['type'], $needs['reference']));
         // If this function is used by the mycred_add filter, we need to take into
         // account the instance that we are currently being hooked into as the log entry
         // will be added after this code has executed.
         // In case we sum up, add the points the user will gain to the result
         if (!isset($request['done']) && $needs['by'] == 'sum') {
             $result = $result + $request['amount'];
         } elseif (!isset($request['done']) && $needs['by'] == 'count') {
             $result = $result + 1;
         }
         if ($needs['by'] != 'count') {
             $result = $mycred->number($result);
         }
         // Got it!
         if ($result >= $amount) {
             mycred_update_user_meta($user_id, 'mycred_badge' . $badge_id, '', apply_filters('mycred_badge_user_value', 1, $user_id, $badge_id));
         }
     }
 }
开发者ID:rafasashi,项目名称:mycred,代码行数:41,代码来源:mycred-badge-functions.php

示例6: accept_invite

 /**
  * Accepting Invites
  * @since 0.1
  * @version 1.2
  */
 public function accept_invite($invited_user_id, $inviters = array())
 {
     if (empty($inviters)) {
         return;
     }
     // Invite Anyone will pass on an array of user IDs of those who have invited this user which we need to loop though
     foreach ((array) $inviters as $inviter_id) {
         // Limit Check
         if ($this->prefs['accept_invite']['limit'] != 0) {
             $key = 'mycred_invite_anyone';
             if (!$this->is_main_type) {
                 $key .= '_' . $this->mycred_type;
             }
             $user_log = mycred_get_user_meta($inviter_id, $key, '', true);
             if (empty($user_log['accepted'])) {
                 $user_log['accepted'] = 0;
             }
             // Continue to next inviter if limit is reached
             if ($user_log['accepted'] >= $this->prefs['accept_invite']['limit']) {
                 continue;
             }
         }
         // Award Points
         $run = true;
         if (function_exists('buddypress') && apply_filters('bp_core_signup_send_activation_key', true)) {
             $run = false;
             // Get pending list
             $pending = get_transient('mycred-pending-bp-signups');
             if ($pending === false) {
                 $pending = array();
             }
             // Add to pending list if not there already
             if (!isset($pending[$invited_user_id])) {
                 $pending[$invited_user_id] = $inviter_id;
                 delete_transient('mycred-pending-bp-signups');
                 set_transient('mycred-pending-bp-signups', $pending, 7 * DAY_IN_SECONDS);
             }
         }
         if ($run) {
             $this->core->add_creds('accepting_an_invite', $inviter_id, $this->prefs['accept_invite']['creds'], $this->prefs['accept_invite']['log'], $invited_user_id, array('ref_type' => 'user'), $this->mycred_type);
         }
         // Update Limit
         if ($this->prefs['accept_invite']['limit'] != 0) {
             $user_log['accepted'] = $user_log['accepted'] + 1;
             mycred_update_user_meta($inviter_id, $key, '', $user_log);
         }
     }
 }
开发者ID:nfer,项目名称:mycred,代码行数:53,代码来源:mycred-hook-invite-anyone.php

示例7: update_users_balance

 /**
  * Update users balance
  * Returns the updated balance of the given user.
  *
  * @param $user_id (int), required user id
  * @param $amount (int|float), amount to add/deduct from users balance. This value must be pre-formated.
  * @returns the new balance.
  * @since 0.1
  * @version 1.4
  */
 public function update_users_balance($user_id = NULL, $amount = NULL, $type = 'mycred_default')
 {
     // Minimum Requirements: User id and amount can not be null
     if ($user_id === NULL || $amount === NULL) {
         return $amount;
     }
     if (empty($type)) {
         $type = $this->get_cred_id();
     }
     // Enforce max
     if ($this->max() > $this->zero() && $amount > $this->max()) {
         $amount = $this->number($this->max());
         do_action('mycred_max_enforced', $user_id, $_amount, $this->max());
     }
     // Adjust creds
     $current_balance = $this->get_users_balance($user_id, $type);
     $new_balance = $current_balance + $amount;
     // Update creds
     mycred_update_user_meta($user_id, $type, '', $new_balance);
     // Update total creds
     $total = mycred_query_users_total($user_id, $type);
     mycred_update_user_meta($user_id, $type, '_total', $total);
     // Let others play
     do_action('mycred_update_user_balance', $user_id, $current_balance, $amount, $type);
     // Return the new balance
     return $this->number($new_balance);
 }
开发者ID:suifengtec,项目名称:mycred,代码行数:37,代码来源:mycred-functions.php

示例8: save_user_override

 /**
  * Save User Override
  * @since 1.5.2
  * @version 1.0.1
  */
 function save_user_override()
 {
     // Save interest rate
     if (isset($_POST['mycred_adjust_users_interest_rate_run']) && isset($_POST['mycred_adjust_users_interest_rate'])) {
         $ctype = sanitize_key($_GET['ctype']);
         $user_id = absint($_GET['user_id']);
         $rate = $_POST['mycred_adjust_users_interest_rate'];
         if ($rate != '') {
             if (isfloat($rate)) {
                 $rate = (double) $rate;
             } else {
                 $rate = (int) $rate;
             }
             mycred_update_user_meta($user_id, 'mycred_banking_rate_' . $ctype, '', $rate);
         } else {
             mycred_delete_user_meta($user_id, 'mycred_banking_rate_' . $ctype);
         }
         wp_safe_redirect(add_query_arg(array('result' => 'banking_interest_rate')));
         exit;
     } elseif (isset($_POST['mycred_exclude_users_interest_rate'])) {
         $ctype = sanitize_key($_GET['ctype']);
         $user_id = absint($_GET['user_id']);
         $excluded = explode(',', $this->prefs['exclude_ids']);
         $clean_ids = array();
         if (!empty($excluded)) {
             foreach ($excluded as $id) {
                 if ($id == 0) {
                     continue;
                 }
                 $clean_ids[] = (int) trim($id);
             }
         }
         if (!in_array($user_id, $clean_ids) && $user_id != 0) {
             $clean_ids[] = $user_id;
         }
         $option_id = 'mycred_pref_bank';
         if (!$this->is_main_type) {
             $option_id .= '_' . $ctype;
         }
         $data = mycred_get_option($option_id);
         $data['service_prefs'][$this->id]['exclude_ids'] = implode(',', $clean_ids);
         mycred_update_option($option_id, $data);
         wp_safe_redirect(add_query_arg(array('result' => 'banking_interest_excluded')));
         exit;
     } elseif (isset($_POST['mycred_include_users_interest_rate'])) {
         $ctype = sanitize_key($_GET['ctype']);
         $user_id = absint($_GET['user_id']);
         $excluded = explode(',', $this->prefs['exclude_ids']);
         if (!empty($excluded)) {
             $clean_ids = array();
             foreach ($excluded as $id) {
                 $clean_id = (int) trim($id);
                 if ($clean_id != $user_id && $user_id != 0) {
                     $clean_ids[] = $clean_id;
                 }
             }
             $option_id = 'mycred_pref_bank';
             if (!$this->is_main_type) {
                 $option_id .= '_' . $ctype;
             }
             $data = mycred_get_option($option_id);
             $data['service_prefs'][$this->id]['exclude_ids'] = implode(',', $clean_ids);
             mycred_update_option($option_id, $data);
             wp_safe_redirect(add_query_arg(array('result' => 'banking_interest_included')));
             exit;
         }
     }
 }
开发者ID:suifengtec,项目名称:mycred,代码行数:73,代码来源:mycred-bank-service-interest.php

示例9: action_assign_badge

 /**
  * AJAX: Assign Badge
  * @version 1.1.1
  */
 public function action_assign_badge()
 {
     check_ajax_referer('mycred-assign-badge', 'token');
     $badge_id = absint($_POST['badge_id']);
     $requirements = mycred_get_badge_requirements($badge_id);
     if (empty($requirements)) {
         wp_send_json_error('This badge has no requirements set!');
     }
     global $wpdb;
     $levels = array();
     foreach ($requirements as $req_level => $needs) {
         if ($needs['type'] == '') {
             $needs['type'] = 'mycred_default';
         }
         $mycred = mycred($needs['type']);
         if (!array_key_exists($req_level, $levels)) {
             $levels[$req_level] = array();
         }
         $sql = "\n\t\t\t\t\tSELECT user_id \n\t\t\t\t\tFROM {$mycred->log_table} \n\t\t\t\t\tWHERE " . $wpdb->prepare("ctype = %s AND ref = %s ", $needs['type'], $needs['reference']);
         $sql .= " GROUP by user_id ";
         $amount = $needs['amount'];
         if ($needs['by'] == 'count') {
             $sql .= "HAVING COUNT( id ) >= {$amount}";
         } else {
             $sql .= "HAVING SUM( creds ) >= {$amount}";
         }
         // Let others play
         $users = $wpdb->get_col(apply_filters('mycred_assign_badge_sql', $sql, $badge_id));
         if (!empty($users)) {
             $levels[$req_level] = $users;
             $unique = array();
             foreach ($levels[$req_level] as $user_id) {
                 if ($req_level == 0) {
                     $unique[] = (int) $user_id;
                 } elseif (isset($levels[$req_level - 1]) && in_array($user_id, $levels[$req_level - 1])) {
                     $unique[] = (int) $user_id;
                     $prev_key = array_search($user_id, $levels[$req_level - 1]);
                     if ($prev_key !== false) {
                         unset($levels[$req_level - 1][$prev_key]);
                     }
                 }
             }
             $levels[$req_level] = $unique;
         }
     }
     if (!empty($levels)) {
         $count = 0;
         foreach ($levels as $level => $user_ids) {
             if (empty($user_ids)) {
                 continue;
             }
             foreach ($user_ids as $user_id) {
                 mycred_update_user_meta($user_id, 'mycred_badge' . $badge_id, '', apply_filters('mycred_badge_user_value', $level, $user_id, $badge_id));
                 $count++;
             }
         }
         if ($count > 0) {
             wp_send_json_success(sprintf(__('%d Users earned this badge.', 'mycred'), $count));
         }
     }
     wp_send_json_error(__('No users has yet earned this badge.', 'mycred'));
 }
开发者ID:socialray,项目名称:surfied-2-0,代码行数:66,代码来源:myCRED-addon-badges.php

示例10: update_balance

 /**
  * Balance Adjustment
  * Check if users rank should change.
  * @since 1.1
  * @version 1.3.1
  */
 public function update_balance($user_id, $current_balance, $amount, $type)
 {
     if ($type != 'mycred_default') {
         return;
     }
     if ($this->rank['base'] == 'total') {
         $total = mycred_get_users_total($user_id);
         $balance = $this->core->number($total + $amount);
         mycred_update_users_total($type, compact('user_id', 'amount'), $this->core);
     } else {
         $balance = $this->core->number($current_balance + $amount);
     }
     $balance_format = '%d';
     if (isset($this->core->format['decimals']) && $this->core->format['decimals'] > 0) {
         $balance_format = 'CAST( %f AS DECIMAL( 10, ' . $this->core->format['decimals'] . ' ) )';
     }
     global $wpdb;
     $rank_id = $wpdb->get_var($wpdb->prepare("\n\t\t\tSELECT rank.ID \n\t\t\tFROM {$wpdb->posts} rank \n\t\t\tINNER JOIN {$wpdb->postmeta} min \n\t\t\t\tON ( min.post_id = rank.ID AND min.meta_key = 'mycred_rank_min' )\n\t\t\tINNER JOIN {$wpdb->postmeta} max \n\t\t\t\tON ( max.post_id = rank.ID AND max.meta_key = 'mycred_rank_max' )\n\t\t\tWHERE rank.post_type = 'mycred_rank' \n\t\t\t\tAND rank.post_status = 'publish'\n\t\t\t\tAND {$balance_format} BETWEEN min.meta_value AND max.meta_value\n\t\t\tLIMIT 0,1;", $balance));
     if ($rank_id !== NULL) {
         if (mycred_user_got_demoted($user_id, $rank_id)) {
             do_action('mycred_user_got_demoted', $user_id, $rank_id);
         } elseif (mycred_user_got_promoted($user_id, $rank_id)) {
             do_action('mycred_user_got_promoted', $user_id, $rank_id);
         } else {
             do_action('mycred_find_users_rank', $user_id, $rank_id);
         }
         $rank_meta_key = 'mycred_rank';
         if (is_multisite() && !mycred_override_settings()) {
             $rank_meta_key .= $GLOBALS['blog_id'];
         }
         mycred_update_user_meta($user_id, 'mycred_rank', '', $rank_id);
     }
 }
开发者ID:rafasashi,项目名称:mycred,代码行数:39,代码来源:myCRED-addon-ranks.php

示例11: import

        /**
         * import function.
         */
        function import($file)
        {
            global $wpdb, $mycred;
            $this->imported = $this->skipped = 0;
            if (!is_file($file)) {
                echo '<p><strong>' . __('Sorry, there has been an error.', 'mycred') . '</strong><br />';
                echo __('The file does not exist, please try again.', 'mycred') . '</p>';
                $this->footer();
                die;
            }
            ini_set('auto_detect_line_endings', '1');
            if (($handle = fopen($file, "r")) !== FALSE) {
                $header = fgetcsv($handle, 0, $this->delimiter);
                $no_of_columns = sizeof($header);
                if ($no_of_columns == 3 || $no_of_columns == 4) {
                    $loop = 0;
                    $mycred_types = mycred_get_types();
                    while (($row = fgetcsv($handle, 0, $this->delimiter)) !== FALSE) {
                        $log_entry = '';
                        if ($no_of_columns == 3) {
                            list($id, $balance, $point_type) = $row;
                        } else {
                            list($id, $balance, $point_type, $log_entry) = $row;
                        }
                        $user = false;
                        if (is_numeric($id)) {
                            $user = get_userdata($id);
                        }
                        if ($user === false) {
                            $user = get_user_by('email', $id);
                        }
                        if ($user === false) {
                            $user = get_user_by('login', $id);
                        }
                        if ($user === false) {
                            $this->skipped++;
                            continue;
                        }
                        if (!isset($mycred_types[$point_type])) {
                            if ($point_type != '') {
                                $log_entry = $point_type;
                            }
                        }
                        if ($point_type == '') {
                            $point_type = 'mycred_default';
                        }
                        $method = trim($_POST['method']);
                        if ($method == 'add') {
                            $current_balance = mycred_get_user_meta($user->ID, $point_type, '', true);
                            $balance = $current_balance + $balance;
                        }
                        mycred_update_user_meta($user->ID, $point_type, '', $balance);
                        if (!empty($log_entry)) {
                            $wpdb->insert($mycred->log_table, array('ref' => 'import', 'ref_id' => NULL, 'user_id' => $user->ID, 'creds' => $mycred->number($balance), 'ctype' => $point_type, 'time' => date_i18n('U'), 'entry' => sanitize_text_field($log_entry), 'data' => ''));
                        }
                        $loop++;
                        $this->imported++;
                    }
                } else {
                    echo '<p><strong>' . __('Sorry, there has been an error.', 'mycred') . '</strong><br />';
                    echo __('The CSV is invalid.', 'mycred') . '</p>';
                    $this->footer();
                    die;
                }
                fclose($handle);
            }
            // Show Result
            echo '<div class="updated settings-error below-h2"><p>
				' . sprintf(__('Import complete - A total of <strong>%d</strong> balances were successfully imported. <strong>%d</strong> was skipped.', 'mycred'), $this->imported, $this->skipped) . '
			</p></div>';
            $this->import_end();
        }
开发者ID:kfwebdev,项目名称:wp-atd,代码行数:75,代码来源:mycred-balances.php

示例12: update_daily_limit

 /**
  * Update Daily Limit
  * Updates a given users daily limit.
  * @since 1.3.3
  * @version 1.1
  */
 public function update_daily_limit($user_id, $id)
 {
     // No limit used
     if ($this->prefs[$id]['limit'] == 0) {
         return;
     }
     $today = date_i18n('Y-m-d');
     $key = 'mycred_simplepress_limits_' . $id;
     if (!$this->is_main_type) {
         $key .= '_' . $this->mycred_type;
     }
     $current = mycred_get_user_meta($user_id, $key, '', true);
     if (empty($current) || !array_key_exists($today, (array) $current)) {
         $current[$today] = 0;
     }
     $current[$today] = $current[$today] + 1;
     mycred_update_user_meta($user_id, $key, '', $current);
 }
开发者ID:nfer,项目名称:mycred,代码行数:24,代码来源:mycred-hook-simplepress.php

示例13: update_users_balance

 /**
  * Update users balance
  * Returns the updated balance of the given user.
  *
  * @param $user_id (int), required user id
  * @param $amount (int|float), amount to add/deduct from users balance. This value must be pre-formated.
  * @returns the new balance.
  * @since 0.1
  * @version 1.4.2
  */
 public function update_users_balance($user_id = NULL, $amount = NULL, $type = NULL)
 {
     // Minimum Requirements: User id and amount can not be null
     if ($user_id === NULL || $amount === NULL) {
         return $amount;
     }
     // Type
     $point_types = mycred_get_types();
     if ($type === NULL || !array_key_exists($type, $point_types)) {
         $type = $this->get_cred_id();
     }
     // Enforce max
     if ($this->max() > $this->zero() && $amount > $this->max()) {
         $_amount = $amount;
         $amount = $this->number($this->max());
         do_action('mycred_max_enforced', $user_id, $_amount, $this->max());
     }
     // Adjust creds
     $current_balance = $this->get_users_balance($user_id, $type);
     $new_balance = $current_balance + $amount;
     // Update creds
     mycred_update_user_meta($user_id, $type, '', $new_balance);
     // Update total creds
     $total = mycred_query_users_total($user_id, $type);
     mycred_update_user_meta($user_id, $type, '_total', $total);
     // Clear caches
     mycred_delete_option('mycred-cache-total-' . $type);
     // Let others play
     do_action('mycred_update_user_balance', $user_id, $current_balance, $amount, $type);
     // Return the new balance
     return $this->number($new_balance);
 }
开发者ID:socialray,项目名称:surfied-2-0,代码行数:42,代码来源:mycred-functions.php

示例14: update_daily_limit

 /**
  * Update Daily Limit
  * Updates a given users daily limit.
  * @since 1.2
  * @version 1.2
  */
 public function update_daily_limit($user_id, $limit, $remove = false)
 {
     // No limit used
     if ($this->prefs[$limit]['limit'] == 0) {
         return;
     }
     $today = date_i18n('Y-m-d');
     $current = $this->get_users_limit($user_id, $limit);
     if (empty($current) || !array_key_exists($today, $current)) {
         $current[$today] = 0;
     }
     if (!$remove) {
         $current[$today] = $current[$today] + 1;
     } else {
         $current[$today] = $current[$today] - 1;
     }
     $key = 'mycred_bbp_limits_' . $limit;
     if (!$this->is_main_type) {
         $key .= '_' . $this->mycred_type;
     }
     mycred_update_user_meta($user_id, $key, '', $current);
 }
开发者ID:nfer,项目名称:mycred,代码行数:28,代码来源:mycred-hook-bbPress.php

示例15: render_subscription_shortcode

        /**
         * Subscription Shortcode
         * @since 1.4.6
         * @version 1.0
         */
        public function render_subscription_shortcode($attr, $content = NULL)
        {
            extract(shortcode_atts(array('success' => __('Settings saved.', 'mycred')), $attr));
            if (!is_user_logged_in()) {
                return $content;
            }
            $user_id = get_current_user_id();
            $unsubscriptions = mycred_get_user_meta($user_id, 'mycred_email_unsubscriptions', '', true);
            if ($unsubscriptions == '') {
                $unsubscriptions = array();
            }
            // Save
            $saved = false;
            if (isset($_REQUEST['do']) && $_REQUEST['do'] == 'mycred-unsubscribe' && wp_verify_nonce($_REQUEST['token'], 'update-mycred-email-subscriptions')) {
                if (isset($_POST['mycred_email_unsubscribe']) && !empty($_POST['mycred_email_unsubscribe'])) {
                    $new_selection = $_POST['mycred_email_unsubscribe'];
                } else {
                    $new_selection = array();
                }
                mycred_update_user_meta($user_id, 'mycred_email_unsubscriptions', '', $new_selection);
                $unsubscriptions = $new_selection;
                $saved = true;
            }
            global $wpdb;
            $email_notices = $wpdb->get_results($wpdb->prepare("\n\t\t\t\tSELECT * \n\t\t\t\tFROM {$wpdb->posts} notices\n\n\t\t\t\tLEFT JOIN {$wpdb->postmeta} prefs \n\t\t\t\t\tON ( notices.ID = prefs.post_id AND prefs.meta_key = 'mycred_email_settings' )\n\n\t\t\t\tWHERE notices.post_type = 'mycred_email_notice' \n\t\t\t\t\tAND notices.post_status = 'publish'\n\t\t\t\t\tAND ( prefs.meta_value LIKE %s OR prefs.meta_value LIKE %s );", '%s:9:"recipient";s:4:"user";%', '%s:9:"recipient";s:4:"both";%'));
            ob_start();
            if ($saved) {
                echo '<p class="updated-email-subscriptions">' . $success . '</p>';
            }
            $url = add_query_arg(array('do' => 'mycred-unsubscribe', 'user' => get_current_user_id(), 'token' => wp_create_nonce('update-mycred-email-subscriptions')));
            ?>
<form action="<?php 
            echo esc_url($url);
            ?>
" id="mycred-email-subscriptions" method="post">
	<table class="table">
		<thead>
			<tr>
				<th class="check"><?php 
            _e('Unsubscribe', 'mycred');
            ?>
</th>
				<th class="notice-title"><?php 
            _e('Email Notice', 'mycred');
            ?>
</th>
			</tr>
		</thead>
		<tbody>

		<?php 
            if (!empty($email_notices)) {
                ?>
		
			<?php 
                foreach ($email_notices as $notice) {
                    $settings = $this->get_email_settings($notice->ID);
                    ?>

			<?php 
                    if ($settings['label'] == '') {
                        continue;
                    }
                    ?>

			<tr>
				<td class="check"><input type="checkbox" name="mycred_email_unsubscribe[]"<?php 
                    if (in_array($notice->ID, $unsubscriptions)) {
                        echo ' checked="checked"';
                    }
                    ?>
 value="<?php 
                    echo $notice->ID;
                    ?>
" /></td>
				<td class="notice-title"><?php 
                    echo $settings['label'];
                    ?>
</td>
			</tr>

			<?php 
                }
                ?>
		
		<?php 
            } else {
                ?>

			<tr>
				<td colspan="2"><?php 
                _e('There are no email notifications yet.', 'mycred');
                ?>
</td>
			</tr>
//.........这里部分代码省略.........
开发者ID:kfwebdev,项目名称:wp-atd,代码行数:101,代码来源:myCRED-addon-email-notices.php


注:本文中的mycred_update_user_meta函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。