Esempio n. 1
0
function go_global_info()
{
    global $wpdb;
    global $current_user_id;
    global $current_points;
    global $current_currency;
    global $current_bonus_currency;
    global $current_penalty;
    global $current_minutes;
    $current_user = wp_get_current_user();
    $current_user_id = $current_user->ID;
    $current_points = go_return_points($current_user_id);
    $current_currency = go_return_currency($current_user_id);
    $current_bonus_currency = go_return_bonus_currency($current_user_id);
    $current_penalty = go_return_penalty($current_user_id);
    $current_minutes = go_return_minutes($current_user_id);
    go_get_rank($current_user_id);
}
Esempio n. 2
0
function go_admin_bar_stats()
{
    global $wpdb;
    $table_name_go = $wpdb->prefix . "go";
    if ($_POST['uid']) {
        $current_user = get_userdata($_POST['uid']);
    } else {
        $current_user = wp_get_current_user();
    }
    ?>
<input type="hidden" id="go_stats_hidden_input" value="<?php 
    echo $_POST['uid'];
    ?>
"/><?php 
    $user_fullname = $current_user->first_name . ' ' . $current_user->last_name;
    $user_login = $current_user->user_login;
    $user_display_name = $current_user->display_name;
    $user_id = $current_user->ID;
    $user_website = $current_user->user_url;
    $current_user_id = $current_user->ID;
    $user_avatar = get_avatar($current_user_id, 161);
    // option names
    $points_name = go_return_options('go_points_name');
    $currency_name = go_return_options('go_currency_name');
    $bonus_currency_name = go_return_options('go_bonus_currency_name');
    $penalty_name = go_return_options('go_penalty_name');
    $minutes_name = go_return_options('go_minutes_name');
    // user pnc
    go_get_rank($current_user_id);
    $current_points = go_return_points($current_user_id);
    $current_currency = go_return_currency($current_user_id);
    $current_bonus_currency = go_return_bonus_currency($current_user_id);
    $current_penalty = go_return_penalty($current_user_id);
    $current_minutes = go_return_minutes($current_user_id);
    global $current_rank;
    global $current_rank_points;
    global $next_rank;
    global $next_rank_points;
    $display_current_rank_points = $current_points - $current_rank_points;
    $display_next_rank_points = $next_rank_points - $current_rank_points;
    $percentage_of_level = $display_current_rank_points / $display_next_rank_points * 100;
    ?>
	<div id='go_stats_lay'>
		<div id='go_stats_gravatar'><?php 
    echo $user_avatar;
    ?>
</div>
		<div id='go_stats_header'>
			<div id='go_stats_user_info'>
				<?php 
    echo "{$user_fullname}<br/>{$user_login}<br/><a href='{$user_website}' target='_blank'>{$user_display_name}</a><br/><div id='go_stats_user_points'><span id='go_stats_user_points_value'>{$current_points}</span> {$points_name}</div><div id='go_stats_user_currency'><span id='go_stats_user_currency_value'>{$current_currency}</span> {$currency_name}</div><div id='go_stats_user_bonus_currency'><span id='go_stats_user_bonus_currency_value'>{$current_bonus_currency}</span> {$bonus_currency_name}</div>{$current_penalty} {$penalty_name}<br/>{$current_minutes} {$minutes_name}";
    ?>
			</div>
			<div id='go_stats_user_rank'><?php 
    echo $current_rank;
    ?>
</div>
			<div id='go_stats_user_progress'>
				<div id="go_stats_progress_text_wrap">
					<div id='go_stats_progress_text'><?php 
    echo "<span id='go_stats_user_progress_top_value'>{$display_current_rank_points}</span>/<span id='go_stats_user_progress_bottom_value'>{$display_next_rank_points}</span>";
    ?>
</div>
				</div>
				<div id='go_stats_progress_fill' style='width: <?php 
    echo $percentage_of_level;
    ?>
%;<?php 
    $color = barColor($current_bonus_currency);
    echo "background-color: {$color}";
    if ($percentage_of_level >= 98) {
        echo "border-radius: 15px";
    }
    ?>
'></div></div>
			<div id='go_stats_user_tabs'>
            <!--
				<a href='javascript:;' id="go_stats_body_progress" class='go_stats_body_selectors' tab='progress'>
					WEEKLY PROGRESS
				</a> | 
            -->
            	<?php 
    $is_admin = current_user_can('manage_options');
    if ($is_admin) {
        ?>
               		<a href='javascript:;' id='go_stats_admin_help' class='go_stats_body_selectors' tab='help'>
                    	HELP
                    </a> |
                <?php 
    }
    ?>
				<a href='javascript:;' id="go_stats_body_tasks" class='go_stats_body_selectors' tab='tasks'>
					<?php 
    echo strtoupper(go_return_options('go_tasks_plural_name'));
    ?>
				</a> | 
				<a href='javascript:;' id="go_stats_body_items" class='go_stats_body_selectors' tab='items'>
					<?php 
    echo strtoupper(go_return_options('go_inventory_name'));
    ?>
				</a> | 
				<a href='javascript:;' id="go_stats_body_rewards" class='go_stats_body_selectors' tab='rewards'>
					REWARDS
				</a> | 
				<a href='javascript:;' id="go_stats_body_minutes" class='go_stats_body_selectors' tab='minutes'>
					<?php 
    echo strtoupper($minutes_name);
    ?>
				</a> |
				<a href='javascript:;' id="go_stats_body_penalties" class='go_stats_body_selectors' tab='penalties'>
					<?php 
    echo strtoupper($penalty_name);
    ?>
				</a> | 
				<a href='javascript:;' id="go_stats_body_badges" class='go_stats_body_selectors' tab='badges'>
					<?php 
    echo strtoupper(go_return_options('go_badges_name'));
    ?>
				</a> | 
				<a href='javascript:;' id="go_stats_body_leaderboard" class='go_stats_body_selectors' tab='leaderboard'>
					<?php 
    echo strtoupper(go_return_options('go_leaderboard_name'));
    ?>
				</a>
			</div>
		</div>
		<div id='go_stats_body'></div>
	</div>
	<?php 
    die;
}
Esempio n. 3
0
function go_clipboard_intable()
{
    global $wpdb;
    $class_a_choice = $_POST['go_clipboard_class_a_choice'];
    $table_name_user_meta = $wpdb->prefix . 'usermeta';
    $uid = $wpdb->get_results("SELECT user_id \n\t\tFROM {$table_name_user_meta} \n\t\tWHERE meta_key = '{$wpdb->prefix}capabilities' \n\t\tAND meta_value NOT LIKE '%administrator%'");
    foreach ($uid as $id) {
        $class_a = get_user_meta($id->user_id, 'go_classifications', true);
        if (!empty($class_a[$class_a_choice])) {
            $user_data_key = get_userdata($id->user_id);
            $user_login = $user_data_key->user_login;
            $user_display = $user_data_key->display_name;
            $user_first_name = $user_data_key->user_firstname;
            $user_last_name = $user_data_key->user_lastname;
            $user_url = $user_data_key->user_url;
            if (go_return_options('go_focus_switch') == 'On') {
                $user_focuses = go_display_user_focuses($id->user_id);
                $focus_name = get_option('go_focus_name');
                $focuses = get_option('go_focus');
                $focuses_list = "<option>{$user_focuses}</option><option " . (empty($user_focuses) || $user_focuses == "No {$focus_name}" ? "selected" : '') . ">No {$focus_name}</option>";
                foreach ($focuses as $focus) {
                    $focuses_list .= "<option value='" . esc_attr($focus) . "' >{$focus}</option>";
                }
            }
            $bonus_currency = go_return_bonus_currency($id->user_id);
            $penalty = go_return_penalty($id->user_id);
            $minutes = go_return_minutes($id->user_id);
            $currency = go_return_currency($id->user_id);
            $points = go_return_points($id->user_id);
            $badge_count = go_return_badge_count($id->user_id);
            go_get_rank($id->user_id);
            global $current_rank;
            echo "<tr id='user_{$id->user_id}'>\n\t\t\t\t\t<td><input class='go_checkbox' type='checkbox' name='go_selected' value='{$id->user_id}'/></td>\n\t\t\t\t\t<td><span><a href='#' onclick='go_admin_bar_stats_page_button(&quot;{$id->user_id}&quot;);'>{$user_login}</a></td>\n\t\t\t\t\t<td>{$class_a[$class_a_choice]}</td>\n\t\t\t\t\t<td><a href='{$user_url}' target='_blank'>{$user_last_name}, {$user_first_name}</a></td>\n\t\t\t\t\t<td>{$user_display}</td>\n\t\t\t\t\t<td>{$current_rank}</td>\n\t\t\t\t\t" . (go_return_options('go_focus_switch') == 'On' ? "<td><select class='go_focus' onchange='go_user_focus_change(&quot;{$id->user_id}&quot;, this);'>{$focuses_list}</select</td>" : '') . "\n\t\t\t\t\t<td class='user_points'>{$points}</td>\n\t\t\t\t\t<td class='user_currency'>{$currency}</td>\n\t\t\t\t\t<td class='user_bonus_currency'>{$bonus_currency}</td>\n\t\t\t\t\t<td class='user_penalty'>{$penalty}</td>\n\t\t\t\t\t<td class='user_minutes'>{$minutes}</td>\n\t\t\t\t\t<td class='user_badge_count'>{$badge_count}</td>\n\t\t\t\t  </tr>";
        }
    }
    die;
}
Esempio n. 4
0
function go_admin_bar()
{
    global $wpdb;
    global $current_user_id;
    global $wp_admin_bar;
    global $current_points;
    //users current experience
    global $current_currency;
    //users current money
    global $current_rank;
    global $next_rank_points;
    global $current_rank_points;
    $dom = $next_rank_points - $current_rank_points;
    $rng = $current_points - $current_rank_points;
    $current_bonus_currency = go_return_bonus_currency(get_current_user_id());
    $current_penalty = go_return_penalty(get_current_user_id());
    $current_minutes = go_return_minutes(get_current_user_id());
    if ($dom <= 0) {
        $dom = 1;
    }
    $ranks_output = go_update_ranks($current_user_id, $current_points, false);
    $percentage = $rng / $dom * 100;
    if ($percentage <= 0) {
        $percentage = 0;
    } elseif ($percentage >= 100) {
        $percentage = 100;
    }
    $color = barColor($current_bonus_currency, $current_penalty);
    $wp_admin_bar->remove_menu('wp-logo');
    if (!is_user_logged_in()) {
        $wp_admin_bar->add_node(array('id' => 'go_toolbar_login', 'title' => 'Login', 'href' => wp_login_url()));
    }
    if (is_admin_bar_showing() && is_user_logged_in()) {
        $is_admin = false;
        $user_obj = get_user_by('id', $current_user_id);
        $user_roles = $user_obj->roles;
        if (!empty($user_roles)) {
            foreach ($user_roles as $role) {
                if ($role === "administrator") {
                    $is_admin = true;
                    break;
                }
            }
        }
        $wp_admin_bar->add_node(array('id' => 'go_info', 'title' => '<div style="padding-top:5px;"><div id="go_admin_bar_progress_bar_border"><div id="points_needed_to_level_up" class="go_admin_bar_text">' . $rng . '/' . $dom . '</div><div id="go_admin_bar_progress_bar" class="progress_bar" style="width: ' . $percentage . '%; background-color: ' . $color . ' ;"></div></div></div>', 'href' => '#'));
        $wp_admin_bar->add_node(array('id' => 'go_rank', 'title' => '<div id="go_admin_bar_rank">' . go_return_clean_rank($current_user_id) . '</div>', 'href' => '#', 'parent' => 'go_info'));
        $wp_admin_bar->add_node(array('id' => 'go_points', 'title' => '<div id="go_admin_bar_points">' . go_return_options('go_points_name') . ': ' . go_display_points($current_points) . '</div>', 'href' => '#', 'parent' => 'go_info'));
        $wp_admin_bar->add_node(array('id' => 'go_points', 'title' => '<div id="go_admin_bar_currency">' . go_return_options('go_currency_name') . ': ' . go_display_currency($current_currency) . '</div>', 'href' => '#', 'parent' => 'go_info'));
        $wp_admin_bar->add_node(array('id' => 'go_currency', 'title' => '<div id="go_admin_bar_bonus_currency">' . go_return_options('go_bonus_currency_name') . ': ' . go_display_bonus_currency($current_bonus_currency) . '</div>', 'href' => '#', 'parent' => 'go_info'));
        $wp_admin_bar->add_node(array('id' => 'go_penalty', 'title' => '<div id="go_admin_bar_penalty">' . go_return_options('go_penalty_name') . ': ' . go_display_penalty($current_penalty) . '</div>', 'href' => '#', 'parent' => 'go_info'));
        $wp_admin_bar->add_node(array('id' => 'go_minutes', 'title' => '<div id="go_admin_bar_minutes">' . go_return_options('go_minutes_name') . ': ' . go_display_minutes($current_minutes) . '</div>', 'href' => '#', 'parent' => 'go_info'));
        if (current_user_can('manage_options')) {
            $wp_admin_bar->add_node(array('id' => 'go_deactivate', 'title' => '<input type="button" id="go_admin_bar_deactivation" name="go_admin_bar_deactivation" value="Deactivate" onclick="go_deactivate_plugin()"/>', 'parent' => 'go_info'));
        }
        if (go_return_options('go_admin_bar_add_switch') == 'On') {
            $wp_admin_bar->add_node(array('id' => 'go_add', 'title' => 'Add', 'href' => '#'));
            if (go_return_options('go_admin_bar_add_minutes_switch') != 'On' || $role === 'administrator') {
                $wp_admin_bar->add_node(array('id' => 'go_add_bar', 'title' => '<div id="go_admin_bar_title">' . go_return_options('go_points_name') . '</div>
						<div id="go_admin_bar_input"><input type="text" class="go_admin_bar_points" id="go_admin_bar_points_points"/> For <input type="text" class="go_admin_bar_reason" id="go_admin_bar_points_reason"/></div>
						<div id="go_admin_bar_title">' . go_return_options('go_currency_name') . '</div>
						<div id="go_admin_bar_input"><input type="text" class="go_admin_bar_points" id="go_admin_bar_currency_points"/> For <input type="text" class="go_admin_bar_reason" id="go_admin_bar_currency_reason"/></div>
						<div id="go_admin_bar_title">' . go_return_options('go_bonus_currency_name') . '</div>
						<div id="go_admin_bar_input"><input type="text" class="go_admin_bar_points" id="go_admin_bar_bonus_currency_points"/> For <input type="text" class="go_admin_bar_reason" id="go_admin_bar_bonus_currency_reason"/></div>
						<div id="go_admin_bar_title">' . go_return_options('go_penalty_name') . '</div>
						<div id="go_admin_bar_input"><input type="text" class="go_admin_bar_points" id="go_admin_bar_penalty_points"/> For <input type="text" class="go_admin_bar_reason" id="go_admin_bar_penalty_reason"/></div>
						<div id="go_admin_bar_title">' . go_return_options('go_minutes_name') . '</div>
						<div id="go_admin_bar_input"><input type="text" class="go_admin_bar_points" id="go_admin_bar_minutes_points"/> For <input type="text" class="go_admin_bar_reason" id="go_admin_bar_minutes_reason"/></div>
						<div><input id="go_admin_bar_add_button" type="button" style="width:250px; height: 20px;margin-top: 7px;" name="go_admin_bar_submit" onclick="go_admin_bar_add();this.disabled = true;" value="Add"><div id="admin_bar_add_return"></div></div>', 'href' => false, 'parent' => 'go_add'));
            } else {
                $wp_admin_bar->add_node(array('id' => 'go_add_bar', 'title' => '<div id="go_admin_bar_title">' . go_return_options('go_minutes_name') . '</div>
						<div id="go_admin_bar_input"><input type="text" class="go_admin_bar_points" id="go_admin_bar_minutes_points"/> For <input type="text" class="go_admin_bar_reason" id="go_admin_bar_minutes_reason"/></div>
						<div><input id="go_admin_bar_add_button" type="button" style="width:250px; height: 20px;margin-top: 7px;" name="go_admin_bar_submit" onclick="go_admin_bar_add();this.disabled = true;" value="Add"><div id="admin_bar_add_return"></div></div>
						<script type="text/javascript">
							jQuery( "ul#wp-admin-bar-go_add-default.ab-submenu" ).css( "height", "125px" );
						</script>', 'href' => false, 'parent' => 'go_add'));
            }
        }
        $wp_admin_bar->add_node(array('id' => 'go_stats', 'title' => '<div onclick="go_admin_bar_stats_page_button();">Stats</div><div id="go_stats_page"></div>', 'href' => '#'));
        $wp_admin_bar->add_node(array('id' => 'go_task_search', 'title' => '
					<form role="search" method="get" id="go_admin_bar_task_search_form" class="searchform" action="' . home_url('/') . '">
						<div><label class="screen-reader-text" for="s">' . __('Search for:') . '</label>
							<input type="text" value="' . get_search_query() . '" name="s" id="go_admin_bar_task_search_input" placeholder="Search for ' . strtolower(get_option("go_tasks_plural_name")) . '..."/>
							<input type="hidden" name="post_type[]" value="tasks"/>
							<input type="submit" id="go_admin_bar_task_search_submit" value="' . esc_attr__('Search') . '"/>
						</div>
					</form>'));
        if ($is_admin) {
            $wp_admin_bar->add_group(array('id' => 'go_site_name_menu', 'parent' => 'site-name', 'meta' => array('class' => 'go_site_name_menu')));
            $wp_admin_bar->add_node(array('id' => 'go_nav_clipboard', 'title' => 'Clipboard', 'href' => get_admin_url() . 'admin.php?page=go_clipboard', 'parent' => 'go_site_name_menu', 'meta' => array('class' => 'go_site_name_menu_item')));
            $wp_admin_bar->add_node(array('id' => 'go_nav_tasks', 'title' => get_option('go_tasks_plural_name'), 'href' => get_admin_url() . 'edit.php?post_type=tasks', 'parent' => 'go_site_name_menu', 'meta' => array('class' => 'go_site_name_menu_item')));
            $wp_admin_bar->add_node(array('id' => 'go_nav_store', 'title' => get_option('go_store_name'), 'href' => get_admin_url() . 'edit.php?post_type=go_store', 'parent' => 'go_site_name_menu', 'meta' => array('class' => 'go_site_name_menu_item')));
            $wp_admin_bar->add_node(array('id' => 'go_nav_options', 'title' => 'Game-On', 'href' => get_admin_url() . 'admin.php?page=game-on-options.php', 'parent' => 'go_site_name_menu', 'meta' => array('class' => 'go_site_name_menu_item')));
            $wp_admin_bar->add_node(array('id' => 'go_nav_posts', 'title' => 'Posts', 'href' => esc_url(get_admin_url()) . 'edit.php', 'parent' => 'appearance'));
            $wp_admin_bar->add_node(array('id' => 'go_nav_pages', 'title' => 'Pages', 'href' => esc_url(get_admin_url()) . 'edit.php?post_type=page', 'parent' => 'appearance'));
            $wp_admin_bar->add_node(array('id' => 'go_nav_media', 'title' => 'Media', 'href' => esc_url(get_admin_url()) . 'upload.php', 'parent' => 'appearance'));
            $wp_admin_bar->add_node(array('id' => 'go_nav_plugins', 'title' => 'Plugins', 'href' => esc_url(get_admin_url()) . 'plugins.php', 'parent' => 'appearance'));
            $wp_admin_bar->add_node(array('id' => 'go_nav_pods', 'title' => get_option('go_tasks_name') . ' Pods', 'href' => esc_url(get_admin_url()) . 'admin.php?page=go_pods', 'parent' => 'go_site_name_menu', 'meta' => array('class' => 'go_site_name_menu_item')));
        }
        echo $ranks_output;
    }
}
Esempio n. 5
0
function go_buy_item()
{
    global $wpdb;
    $go_table_name = $wpdb->prefix . "go";
    $post_id = $_POST["the_id"];
    $qty = $_POST['qty'];
    $current_purchase_count = $_POST['purchase_count'];
    if (isset($_POST['recipient']) && !empty($_POST['recipient']) && $_POST['recipient'] != '') {
        $recipient = $_POST['recipient'];
        $recipient_id = $wpdb->get_var('SELECT id FROM ' . $wpdb->users . ' WHERE display_name="' . $recipient . '"');
        $recipient_purchase_count = $wpdb->get_var("SELECT count FROM {$table_name_go} WHERE post_id={$post_id} AND uid={$recipient_id} LIMIT 1");
    }
    $user_id = get_current_user_id();
    $custom_fields = get_post_custom($post_id);
    $sending_receipt = $custom_fields['go_mta_store_receipt'][0];
    $store_cost = unserialize($custom_fields['go_mta_store_cost'][0]);
    if (!empty($store_cost)) {
        $req_currency = $store_cost[0];
        $req_points = $store_cost[1];
        $req_bonus_currency = $store_cost[2];
        $req_penalty = $store_cost[3];
        $req_minutes = $store_cost[4];
    }
    $penalty = $custom_fields['go_mta_penalty_switch'];
    $store_limit = unserialize($custom_fields['go_mta_store_limit'][0]);
    $is_limited = (bool) $store_limit[0];
    if ($is_limited) {
        $limit = (int) $store_limit[1];
    }
    $store_filter = unserialize($custom_fields['go_mta_store_filter'][0]);
    $is_filtered = (bool) $store_filter[0];
    if ($is_filtered) {
        $req_rank = $store_filter[1];
        $bonus_filter = $store_filter[2];
    }
    $store_exchange = unserialize($custom_fields['go_mta_store_exchange'][0]);
    $is_exchangeable = (bool) $store_exchange[0];
    if ($is_exchangeable) {
        $exchange_currency = $store_exchange[1];
        $exchange_points = $store_exchange[2];
        $exchange_bonus_currency = $store_exchange[3];
    }
    $item_url = $custom_fields['go_mta_store_item_url'][0];
    $badge_id = $custom_fields['go_mta_badge_id'][0];
    $store_focus = $custom_fields['go_mta_store_focus'][0];
    $is_focused = (bool) $store_focus[0];
    if ($is_focused) {
        $item_focus = $store_focus[1];
    }
    $repeat = 'off';
    $cur_currency = go_return_currency($user_id);
    $cur_points = go_return_points($user_id);
    $cur_bonus_currency = go_return_bonus_currency($user_id);
    $cur_penalty = go_return_penalty($user_id);
    $cur_minutes = go_return_minutes($user_id);
    $enough_currency = check_values($req_currency, $cur_currency);
    $enough_points = check_values($req_points, $cur_points);
    $enough_bonus_currency = check_values($req_bonus_currency, $cur_bonus_currency);
    $enough_penalty = check_values($req_penalty, $cur_penalty);
    $enough_minutes = check_values($req_minutes, $cur_minutes);
    $within_limit = true;
    if (!empty($limit)) {
        $qty_diff = $limit - $current_purchase_count - $qty;
        if ($qty_diff < 0) {
            $within_limit = false;
        }
    }
    if (($enough_currency && $enough_bonus_currency && $enough_points && $enough_minutes || $penalty) && $within_limit) {
        if ($is_focused && !empty($item_focus)) {
            $user_focuses = (array) get_user_meta($user_id, 'go_focus', true);
            $user_focuses[] = $item_focus;
            update_user_meta($user_id, 'go_focus', $user_focuses);
        }
        if ($recipient_id) {
            go_message_user($recipient_id, get_userdata($user_id)->display_name . " has purchased {$qty} <a href='javascript:;' onclick='go_lb_opener({$post_id})'>" . get_the_title($post_id) . "</a> for you.");
            if ($exchange_currency || $exchange_points || $exchange_bonus_currency) {
                go_add_post($recipient_id, $post_id, -1, $exchange_points, $exchange_currency, $exchange_bonus_currency, null, null, $repeat);
                go_add_bonus_currency($recipient_id, $exchange_bonus_currency, get_userdata($user_id)->display_name . " purchase of {$qty} " . get_the_title($post_id) . ".");
            } else {
                go_add_post($recipient_id, $post_id, -1, 0, 0, 0, null, $repeat);
            }
            go_add_post($user_id, $post_id, -1, -$req_points, -$req_currency, -$req_bonus_currency, -$req_minutes, null, $repeat);
            $wpdb->query($wpdb->prepare("UPDATE {$go_table_name} SET reason = 'Gifted' WHERE uid = %d AND status = %d AND gifted = %d AND post_id = %d ORDER BY timestamp DESC, reason DESC, id DESC LIMIT 1", $user_id, -1, 0, $post_id));
        } else {
            go_add_post($user_id, $post_id, -1, -$req_points, -$req_currency, -$req_bonus_currency, -$req_minutes, null, $repeat);
            if (!empty($req_penalty)) {
                go_add_penalty($user_id, -$req_penalty, get_the_title($post_id));
            }
        }
        if (!empty($badge_id)) {
            if ($recipient_id) {
                do_shortcode('[go_award_badge id="' . $badge_id . '" repeat = "off" uid="' . $recipient_id . '"]');
            } else {
                do_shortcode('[go_award_badge id="' . $badge_id . '" repeat = "off" uid="' . $user_id . '"]');
            }
        }
        if (!empty($item_url) && isset($item_url)) {
            $item_hyperlink = '<a target="_blank" href="' . $item_url . '">Grab your loot!</a>';
            echo $item_hyperlink;
        } else {
            echo "Purchased";
        }
        if ($sending_receipt === 'true') {
            $receipt = go_mail_item_reciept($user_id, $post_id, $req_currency, $req_points, $req_bonus_currency, $req_minutes, $qty, $recipient_id);
            if (!empty($receipt)) {
                echo $receipt;
            }
        }
    } else {
        $currency_name = go_return_options('go_currency_name');
        $points_name = go_return_options('go_points_name');
        $bonus_currency_name = go_return_options('go_bonus_currency_name');
        $minutes_name = go_return_options('go_minutes_name');
        $enough_array = array($currency_name => $enough_currency, $points_name => $enough_points, $bonus_currency_name => $enough_bonus_currency, $minutes_name => $enough_minutes);
        $errors = array();
        foreach ($enough_array as $key => $enough) {
            if (!$enough) {
                $errors[] = $key;
            }
        }
        if (!empty($errors)) {
            $errors = implode(', ', $errors);
            echo 'Need more ' . substr($errors, 0, strlen($errors));
        }
        if ($is_limited && !$within_limit) {
            $qty_diff *= -1;
            echo "You've attempted to purchase " . ($qty_diff == 1 ? '1 item' : "{$qty_diff} items") . " greater than the purchase limit.";
        }
    }
    die;
}
Esempio n. 6
0
function go_update_totals($user_id, $points, $currency, $bonus_currency, $penalty, $minutes, $status = null)
{
    global $wpdb;
    $table_name_go_totals = $wpdb->prefix . "go_totals";
    $bonuses = go_return_bonus_currency($user_id);
    $penalties = go_return_penalty($user_id);
    if ($status !== -1) {
        $modded_array = go_return_multiplier($user_id, $points, $currency, $bonuses, $penalties);
        $points = $modded_array[0];
        $currency = $modded_array[1];
    }
    if ($points != 0) {
        $totalpoints = go_return_points($user_id);
        $wpdb->update($table_name_go_totals, array('points' => $points + $totalpoints), array('uid' => $user_id));
        go_update_ranks($user_id, $points + $totalpoints);
        go_notify('points', $points, 0, 0, 0, 0, $user_id);
        $p = (string) ($points + $totalpoints);
        go_update_admin_bar('points', go_return_options('go_points_name'), $p, $status);
    }
    if ($currency != 0) {
        $totalcurrency = go_return_currency($user_id);
        $wpdb->update($table_name_go_totals, array('currency' => $currency + $totalcurrency), array('uid' => $user_id));
        go_notify('currency', 0, $currency, 0, 0, 0, $user_id);
        go_update_admin_bar('currency', go_return_options('go_currency_name'), $currency + $totalcurrency);
    }
    if ($bonus_currency != 0) {
        $total_bonus_currency = go_return_bonus_currency($user_id);
        $wpdb->update($table_name_go_totals, array('bonus_currency' => $total_bonus_currency + $bonus_currency), array('uid' => $user_id));
        go_notify('bonus_currency', 0, 0, $bonus_currency, 0, 0, $user_id);
        go_update_admin_bar('bonus_currency', go_return_options('go_bonus_currency_name'), $total_bonus_currency + $bonus_currency);
    }
    if ($penalty != 0) {
        $total_penalty = go_return_penalty($user_id);
        $wpdb->update($table_name_go_totals, array('penalty' => $total_penalty + $penalty), array('uid' => $user_id));
        go_notify('penalty', 0, 0, 0, $penalty, 0, $user_id);
        go_update_admin_bar('penalty', go_return_options('go_penalty_name'), $total_penalty + $penalty);
    }
    if ($minutes != 0) {
        $total_minutes = go_return_minutes($user_id);
        $wpdb->update($table_name_go_totals, array('minutes' => $total_minutes + $minutes), array('uid' => $user_id));
        go_notify('minutes', 0, 0, 0, 0, $minutes, $user_id);
        go_update_admin_bar('minutes', go_return_options('go_minutes_name'), $total_minutes + $minutes);
    }
}
Esempio n. 7
0
function go_the_lb_ajax()
{
    check_ajax_referer('go_lb_ajax_referall', 'nonce');
    global $wpdb;
    $table_name_go = "{$wpdb->prefix}go";
    $the_id = $_POST['the_item_id'];
    $the_post = get_post($the_id);
    $the_title = $the_post->post_title;
    $item_content = get_post_field('post_content', $the_id);
    $the_content = wpautop($item_content);
    $custom_fields = get_post_custom($the_id);
    if (isset($custom_fields['go_mta_penalty_switch'])) {
        $penalty = true;
    }
    $store_cost = !empty($custom_fields['go_mta_store_cost'][0]) ? unserialize($custom_fields['go_mta_store_cost'][0]) : null;
    if (!empty($store_cost)) {
        $req_currency = $store_cost[0];
        $req_points = $store_cost[1];
        $req_bonus_currency = $store_cost[2];
        $req_penalty = $store_cost[3];
        $req_minutes = $store_cost[4];
    }
    $store_filter = !empty($custom_fields['go_mta_store_filter'][0]) ? unserialize($custom_fields['go_mta_store_filter'][0]) : null;
    if (!empty($store_filter)) {
        $is_filtered = $store_filter[0];
        if ($is_filtered) {
            $req_rank = $store_filter[1];
            $bonus_filter = count($store_filter[2]) > 0 ? (int) $store_filter[2] : null;
            $penalty_filter = count($store_filter[3]) > 0 ? (int) $store_filter[3] : null;
        }
    }
    $store_limit = !empty($custom_fields['go_mta_store_limit'][0]) ? unserialize($custom_fields['go_mta_store_limit'][0]) : null;
    if (!empty($store_limit)) {
        $is_limited = $store_limit[0];
        if ($is_limited == 'true') {
            $purchase_limit = $store_limit[1];
        }
    }
    $user_id = get_current_user_id();
    $user_points = go_return_points($user_id);
    $user_bonus_currency = go_return_bonus_currency($user_id);
    $user_currency = go_return_currency($user_id);
    $user_penalties = go_return_penalty($user_id);
    $user_minutes = go_return_minutes($user_id);
    $purchase_count = $wpdb->get_var("SELECT SUM(count) FROM {$table_name_go} WHERE post_id={$the_id} AND uid={$user_id} LIMIT 1");
    $is_giftable = !empty($custom_fields['go_mta_store_giftable'][0]) ? $custom_fields['go_mta_store_giftable'][0] : '';
    $is_unpurchasable = !empty($custom_fields['go_mta_store_unpurchasable'][0]) ? $custom_fields['go_mta_store_unpurchasable'][0] : '';
    echo "<h2>{$the_title}</h2>";
    echo '<div id="go-lb-the-content">' . do_shortcode($the_content) . '</div>';
    if ($user_points >= $req_rank || $req_rank <= 0 || $penalty) {
        $lvl_color = "g";
        $output_level = $req_rank *= -1;
    } else {
        $lvl_color = "r";
    }
    if ($req_currency == 0) {
        $gold_color = "n";
    } elseif ($req_currency < 0) {
        $gold_color = "g";
        $output_currency = $req_currency *= -1;
    } else {
        $gold_color = "r";
    }
    if ($req_points == 0) {
        $points_color = "n";
    } elseif ($req_points < 0) {
        $points_color = "g";
        $output_points = $req_points *= -1;
    } else {
        $points_color = "r";
    }
    if ($req_bonus_currency == 0) {
        $bonus_currency_color = "n";
    } elseif ($req_bonus_currency < 0) {
        $bonus_currency_color = "g";
        $output_bonus_currency = $req_bonus_currency *= -1;
    } else {
        $bonus_currency_color = "r";
    }
    if ($req_penalty == 0) {
        $penalty_color = "n";
    } elseif ($req_penalty < 0) {
        $penalty_color = "r";
        $output_penalty = $req_penalty *= -1;
    } else {
        $penalty_color = "g";
    }
    if ($req_minutes == 0) {
        $minutes_color = "n";
    } elseif ($req_minutes < 0) {
        $minutes_color = "g";
        $output_minutes = $req_minutes *= -1;
    } else {
        $minutes_color = "r";
    }
    if ($lvl_color == "g" && $gold_color == "g" && $points_color == "g") {
        $buy_color = "gold";
    } else {
        $buy_color = "gold";
    }
    $user_focuses = array();
    if ($is_filtered === 'true' && !is_null($penalty_filter) && $user_penalties >= $penalty_filter) {
        $penalty_diff = $user_penalties - $penalty_filter;
        if ($penalty_diff > 0) {
            die("You have {$penalty_diff} too many " . go_return_options('go_penalty_name') . ".");
        } elseif ($penalty_diff == 0) {
            die("You need less than {$penalty_filter} " . go_return_options('go_penalty_name') . " to buy this item.");
        }
    }
    // Get focus options associated with item
    $item_focus_array = !empty($custom_fields['go_mta_store_focus'][0]) ? unserialize($custom_fields['go_mta_store_focus'][0]) : null;
    // Check if item actually has focus
    $is_focused = (bool) filter_var($item_focus_array[0], FILTER_VALIDATE_BOOLEAN);
    if ($is_focused) {
        $item_focus = $item_focus_array[1];
    }
    // Check if user has a focus
    if (get_user_meta($user_id, 'go_focus', true) != null) {
        $user_focuses = (array) get_user_meta($user_id, 'go_focus', true);
    }
    // Check if item is locked by focus
    $locked_by_focus = !empty($custom_fields['go_mta_store_focus_lock'][0]) ? $custom_fields['go_mta_store_focus_lock'][0] : null;
    if (!empty($locked_by_focus)) {
        $focus_category_lock = true;
    }
    // Grab which focuses are chosen as the locks
    if (get_the_terms($the_id, 'store_focus_categories') && $focus_category_lock) {
        $categories = get_the_terms($the_id, 'store_focus_categories');
        $category_names = array();
        foreach ($categories as $category) {
            array_push($category_names, $category->name);
        }
    }
    // Check to see if the user has any of the focuses
    if (!empty($category_names) && $user_focuses) {
        $go_ahead = array_intersect($user_focuses, $category_names);
    }
    if ($is_focused && !empty($item_focus) && !empty($user_focuses) && in_array($item_focus, $user_focuses)) {
        die('You already have this ' . go_return_options('go_focus_name') . '!');
    }
    if (empty($go_ahead) && !empty($focus_category_lock)) {
        die('Item only available to those in ' . implode(', ', $category_names) . ' ' . strtolower(go_return_options('go_focus_name')));
    }
    if ($is_filtered === 'true' && !is_null($bonus_filter) && $user_bonus_currency < $bonus_filter) {
        die('You require more ' . go_return_options('go_bonus_currency_name') . ' to view this item.');
    }
    if (!empty($purchase_limit) && $purchase_count >= $purchase_limit) {
        die("You've reached the maximum purchase limit.");
    }
    if ($user_points < $req_rank) {
        die("You need to reach {$req_rank_key} to purchase this item.");
    }
    ?>
	<div id="golb-fr-price" class="golb-fr-boxes-<?php 
    echo $gold_color;
    ?>
" req="<?php 
    echo $req_currency;
    ?>
" cur="<?php 
    echo $user_currency;
    ?>
"><?php 
    echo go_return_options('go_currency_name') . ': ' . (empty($req_currency) ? 0 : ($req_currency < 0 ? $output_currency : $req_currency));
    ?>
</div>
	<div id="golb-fr-points" class="golb-fr-boxes-<?php 
    echo $points_color;
    ?>
" req="<?php 
    echo $req_points;
    ?>
" cur="<?php 
    echo $user_points;
    ?>
"><?php 
    echo go_return_options('go_points_name') . ': ' . (empty($req_points) ? 0 : ($req_points < 0 ? $output_points : $req_points));
    ?>
</div>
	<div id="golb-fr-bonus_currency" class="golb-fr-boxes-<?php 
    echo $bonus_currency_color;
    ?>
" req="<?php 
    echo $req_bonus_currency;
    ?>
" cur="<?php 
    echo $user_bonus_currency;
    ?>
"><?php 
    echo go_return_options('go_bonus_currency_name') . ': ' . (empty($req_bonus_currency) ? 0 : ($req_bonus_currency < 0 ? $output_bonus_currency : $req_bonus_currency));
    ?>
</div>
    <div id='golb-fr-penalty' class='golb-fr-boxes-<?php 
    echo $penalty_color;
    ?>
' req='<?php 
    echo $req_penalty;
    ?>
' cur='<?php 
    echo $user_penalties;
    ?>
'><?php 
    echo go_return_options('go_penalty_name') . ': ' . (empty($req_penalty) ? 0 : ($req_penalty < 0 ? $output_penalty : $req_penalty));
    ?>
</div>
    <div id="golb-fr-minutes" class="golb-fr-boxes-<?php 
    echo $minutes_color;
    ?>
" req="<?php 
    echo $req_minutes;
    ?>
" cur="<?php 
    echo $user_minutes;
    ?>
"><?php 
    echo go_return_options('go_minutes_name') . ': ' . (empty($req_minutes) ? 0 : ($req_minutes < 0 ? $output_minutes : $req_minutes));
    ?>
</div>
	<?php 
    if ($is_unpurchasable != 'on') {
        ?>
		<div id="golb-fr-qty" class="golb-fr-boxes-n">Qty: <input id="go_qty" style="width: 40px;font-size: 11px; margin-right:0px; margin-top: 0px; bottom: 3px; position: relative;" value="1" disabled="disabled" /></div>
		<div id="golb-fr-buy" class="golb-fr-boxes-<?php 
        echo $buy_color;
        ?>
" onclick="goBuytheItem( '<?php 
        echo $the_id;
        ?>
', '<?php 
        echo $buy_color;
        ?>
', '<?php 
        echo $purchase_count;
        ?>
' ); this.removeAttribute( 'onclick' );">Buy</div>
		<div id="golb-fr-purchase-limit" val="<?php 
        echo !empty($purchase_limit) ? $purchase_limit : 0;
        ?>
"><?php 
        echo !empty($purchase_limit) ? "Limit {$purchase_limit}" : 'No limit';
        ?>
</div>
		<div id="golb-purchased">
		<?
		if ( is_null( $purchase_count ) ) { 
			echo 'Quantity purchased: 0';
		} else {
			echo "Quantity purchased: {$purchase_count}";
		} 
	}
	 if ( ! empty( $item_focus ) && ! empty( $penalty ) && $is_giftable == 'on' ) {
	 ?>
 		<br />
		Gift this item <input type='checkbox' id='go_toggle_gift_fields'/>
        <div id="go_recipient_wrap" class="golb-fr-boxes-giftable">Gift To: <input id="go_recipient" type="text"/></div>
        <div id="go_search_results"></div> 
     <script>   
		var go_gift_check_box = jQuery( "#go_toggle_gift_fields" );
		var go_gift_text_box = jQuery( "#go_recipient_wrap" );
		go_gift_text_box.prop( "hidden", true );
		go_gift_check_box.click( function() {
			if ( jQuery( this ).is( ":checked" ) ) {
				go_gift_text_box.prop( "hidden", false );
			} else {
				go_gift_text_box.prop( "hidden", true );
				jQuery( '#go_search_results' ).hide();
				jQuery( "#go_recipient" ).val( '' );
			}
		});
	</script>
    
	<?php 
    }
    ?>
	</div>
	<?php 
    die;
}
Esempio n. 8
0
function go_clipboard_collect_data()
{
    global $wpdb;
    $table_name_user_meta = $wpdb->prefix . 'usermeta';
    $table_name_go = $wpdb->prefix . 'go';
    $uid = $wpdb->get_results("SELECT user_id \n\t\tFROM {$table_name_user_meta} \n\t\tWHERE meta_key = '{$wpdb->prefix}capabilities' \n\t\tAND meta_value NOT LIKE '%administrator%'");
    $time = round(microtime(true));
    $array = get_option('go_graphing_data');
    foreach ($uid as $id) {
        foreach ($id as $value) {
            $bonus_currency = go_return_bonus_currency($value);
            $penalty = go_return_penalty($value);
            $currency = go_return_currency($value);
            $points = go_return_points($value);
            $third_stage = (int) $wpdb->get_var("select count(*) from " . $table_name_go . " where uid = {$value} and status = 3");
            $fourth_stage = (int) $wpdb->get_var("select count(*) from " . $table_name_go . " where uid = {$value} and status = 4");
            $minutes = go_return_minutes($value);
            $array[$value][$time] = $bonus_currency . ',' . $penalty . ',' . $points . ',' . $third_stage . ',' . $fourth_stage . ',' . $currency . ',' . $minutes;
        }
    }
    update_option('go_graphing_data', $array);
}