/** * Gets displayed user's rating for a given idea * * @package WP Idea Stream * @subpackage users/tags * * @since 2.0.0 * * @param int $id the idea ID * @param int $user_id the user ID * @uses wp_idea_stream_is_user_profile_rates() to check we're on the rates part of a user's profile * @uses wp_idea_stream_get_idea_var() to get a globalized value * @uses wp_idea_stream_users_displayed_user_id() to get displayed user's ID * @uses wp_idea_stream_users_get_displayed_user_username() to get displayed user's username * @uses wp_idea_stream_users_get_user_profile_url() to get user's profile url * @uses get_avatar() to get user's avatar * @uses apply_filters() call 'wp_idea_stream_users_get_user_idea_rating' to override output */ function wp_idea_stream_users_get_user_idea_rating($id = 0, $user_id = 0) { if (!wp_idea_stream_is_user_profile_rates()) { return; } if (empty($id)) { $query_loop = wp_idea_stream_get_idea_var('query_loop'); if (!empty($query_loop->idea->ID)) { $id = $query_loop->idea->ID; } } if (empty($user_id)) { $user_id = wp_idea_stream_users_displayed_user_id(); } if (empty($user_id) || empty($id)) { return; } $user_rating = wp_idea_stream_count_ratings($id, $user_id); if (empty($user_rating) || is_array($user_rating)) { return false; } $username = wp_idea_stream_users_get_displayed_user_username(); $output = '<a class="user-rating-link" href="' . esc_url(wp_idea_stream_users_get_user_profile_url($user_id, $username)) . '" title="' . esc_attr($username) . '">'; $output .= get_avatar($user_id, 20) . sprintf(_n('rated 1 star', 'rated %s stars', $user_rating, 'wp-idea-stream'), $user_rating) . '</a>'; /** * Filter the user idea rating output * * @param string $output the rating * @param int $id the idea ID * @param int $user_id the user ID */ return apply_filters('wp_idea_stream_users_get_user_idea_rating', $output, $id, $user_id); }
/** * Redirect IdeaStream profile to BuddyPress one * * @package WP Idea Stream * @subpackage buddypress/functions * * @since 2.0.0 * * @param string $context the context of the template * @uses wp_idea_stream_users_displayed_user_id() to get displayed user ID * @uses wp_idea_stream_users_get_displayed_user_username() to get displayed user nicename * @uses bp_core_redirect() to redirect the user to BuddyPress profile * @uses wp_idea_stream_buddypress_get_user_profile_url() to get the BuddyPressified user's profile */ function wp_idea_stream_buddypress_profile_redirect($context = '') { if (empty($context) || 'user-profile' != $context || wp_idea_stream_get_idea_var('is_user_embed')) { return; } // Be sure it's a user's profile $user_id = wp_idea_stream_users_displayed_user_id(); // Bail if not on WP Idea Stream built in profile if (empty($user_id)) { return; } // Get user nicename $user_nicename = wp_idea_stream_users_get_displayed_user_username(); // Safely redirect the user to his BuddyPress profile. bp_core_redirect(wp_idea_stream_buddypress_get_user_profile_url($user_id, $user_nicename)); }
/** * Edit User's profile description * * @package WP Idea Stream * @subpackage users/functions * * @since 2.0.0 * * @uses check_admin_referer() to check the request was made on the site * @uses wp_idea_stream_users_displayed_user_id() to get displayed user id * @uses wp_idea_stream_users_get_user_profile_url() to build redirect url * @uses wp_idea_stream_add_message() to give feedback to the user * @uses wp_safe_redirect() to safely redirect the user * @uses wp_kses_allowed_html() to get allowed tags for user's description * @uses wp_kses to sanitize user's descripton * @uses update_user_meta() to save the edited description * @uses do_action() Calls 'wp_idea_stream_users_profile_description_updated' to perform actions once description edited */ function wp_idea_stream_users_profile_description_update() { // Bail if not a post request if ('POST' != strtoupper($_SERVER['REQUEST_METHOD'])) { return; } // Bail if not a post idea request if (empty($_POST['wp_idea_stream_profile'])) { return; } // Check nonce check_admin_referer('wp_idea_stream_update_description', '_wpis_nonce'); $user_id = wp_idea_stream_users_displayed_user_id(); // Capbility checks if (!is_user_logged_in()) { return; } // Capbility checks if ((int) get_current_user_id() !== (int) $user_id) { return; } $redirect = wp_idea_stream_users_get_user_profile_url($user_id, wp_idea_stream_users_get_displayed_user_username()); $user_description = str_replace(array('<div>', '</div>'), "\n", $_POST['wp_idea_stream_profile']['description']); $user_description = rtrim($user_description, "\n"); if (empty($user_description)) { wp_idea_stream_add_message(array('type' => 'error', 'content' => __('Please enter some content in your description', 'wp-idea-stream'))); wp_safe_redirect($redirect); exit; } // Remove all html tags $user_description = wp_kses(wp_specialchars_decode($user_description), array()); if (!update_user_meta($user_id, 'description', $user_description)) { wp_idea_stream_add_message(array('type' => 'error', 'content' => __('Something went wrong while trying to update your description.', 'wp-idea-stream'))); wp_safe_redirect($redirect); exit; } else { wp_idea_stream_add_message(array('type' => 'success', 'content' => __('Description updated.', 'wp-idea-stream'))); /** * @param int $user_id the user ID * @param string $user_description the user description ("about field") */ do_action('wp_idea_stream_users_profile_description_updated', $user_id, $user_description); wp_safe_redirect($redirect); exit; } }