/** * Returns a wp user object containg user's data. * The user is retrieved based on the current permalink structure. * This function is currently used only through the wpaam_profile shortcode. * If no data is set, returns currently logged in user data. * * @since 1.0.0 * @access public * @return object */ function wpaam_get_user_by_data() { $user_data = null; $permalink_structure = get_option('wpaam_permalink', 'user_id'); $who = get_query_var('user') ? get_query_var('user') : null; // Checks we are on the profile page if (is_page(wpaam_get_core_page_id('profile'))) { // Verify the user isset if ($who) { switch ($permalink_structure) { case 'user_id': $user_data = get_user_by('id', intval(get_query_var('user'))); break; case 'username': $user_data = get_user_by('login', esc_attr(get_query_var('user'))); break; case 'nickname': // WP_User_Query arguments $args = array('search' => esc_attr(get_query_var('user')), 'search_columns' => array('user_nicename')); // The User Query $user_query = new WP_User_Query($args); $user_query = $user_query->get_results(); $user_data = $user_query[0]; break; default: $user_data = apply_filters("wpaam_get_user_by_data", $permalink_structure, $who); break; } } else { $user_data = get_user_by('id', get_current_user_id()); } } return $user_data; }
/** * Force 404 error if user or tabs do not exist. * * @since 1.0.0 * @access public * @return void */ function wpaam_profile_force_404_error() { // Bail if not on the profile page if (!is_page(wpaam_get_core_page_id('profile'))) { return; } // Bail if viewing single profile only and not another user profile if (!wpaam_is_single_profile()) { return; } // Trigger if tab is set and does not exist if (wpaam_get_current_profile_tab() !== null && !wpaam_profile_tab_exists(wpaam_get_current_profile_tab())) { wpaam_trigger_404(); } // Trigger if profile is set and does not exist if (wpaam_is_single_profile() && !wpaam_user_exists(wpaam_is_single_profile(), get_option('wpaam_permalink'))) { wpaam_trigger_404(); } }
/** * Adds new rewrite rules to create pretty permalinks for users profiles. * * @access public * @since 1.0.0 * @global object $wp * @return void */ public function profile_rewrite_rules() { global $wp; // Define args for profile pages $wp->add_query_var('user'); $wp->add_query_var('tab'); $page_id = wpaam_get_core_page_id('profile'); $page_slug = esc_attr(get_post_field('post_name', intval($page_id))); add_rewrite_rule($page_slug . '/([^/]*)/([^/]*)/page/([0-9]+)', 'index.php?page_id=' . $page_id . '&user=$matches[1]&tab=$matches[2]&paged=$matches[3]', 'top'); add_rewrite_rule($page_slug . '/([^/]*)/([^/]*)', 'index.php?page_id=' . $page_id . '&user=$matches[1]&tab=$matches[2]', 'top'); add_rewrite_rule($page_slug . '/([^/]*)', 'index.php?page_id=' . $page_id . '&user=$matches[1]', 'top'); // Define args for account page $wp->add_query_var('account_tab'); $account_page_id = wpaam_get_core_page_id('account'); $account_page_slug = esc_attr(get_post_field('post_name', intval($account_page_id))); add_rewrite_rule($account_page_slug . '/([^/]*)', 'index.php?page_id=' . $account_page_id . '&account_tab=$matches[1]', 'top'); // Define args for products page $wp->add_query_var('product_tab'); $products_page_id = wpaam_get_core_page_id('products'); $products_page_slug = esc_attr(get_post_field('post_name', intval($products_page_id))); add_rewrite_rule($products_page_slug . '/([^/]*)', 'index.php?page_id=' . $products_page_id . '&product_tab=$matches[1]', 'top'); // Define args for clients page $wp->add_query_var('client_tab'); $clients_page_id = wpaam_get_core_page_id('clients'); $clients_page_slug = esc_attr(get_post_field('post_name', intval($clients_page_id))); add_rewrite_rule($clients_page_slug . '/([^/]*)', 'index.php?page_id=' . $clients_page_id . '&client_tab=$matches[1]', 'top'); // Define args for quotations page $wp->add_query_var('quotation_tab'); $quotations_page_id = wpaam_get_core_page_id('quotations'); $quotations_page_slug = esc_attr(get_post_field('post_name', intval($quotations_page_id))); add_rewrite_rule($clients_page_slug . '/([^/]*)', 'index.php?page_id=' . $quotations_page_id . '"ation_tab=$matches[1]', 'top'); // Define args for clients page $wp->add_query_var('invoice_tab'); $invoices_page_id = wpaam_get_core_page_id('invoices'); $invoices_page_slug = esc_attr(get_post_field('post_name', intval($invoices_page_id))); add_rewrite_rule($invoices_page_slug . '/([^/]*)', 'index.php?page_id=' . $invoices_page_id . '&invoice_tab=$matches[1]', 'top'); }
* wpaam Template: Upload Field Template. * * @package wp-user-manager * @copyright Copyright (c) 2015, Alessandro Tesoro * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License * @since 1.0.0 */ $classes = array('input-upload'); $allowed_mime_types = array_keys(!empty($field['allowed_mime_types']) ? $field['allowed_mime_types'] : get_allowed_mime_types()); $field_name = isset($field['name']) ? $field['name'] : $key; // Store current field files. $field_files = isset($field['value']) ? $field['value'] : ''; ?> <?php if (!is_page(wpaam_get_core_page_id('register'))) { ?> <div class="wpaam-uploaded-files"> <?php if (!empty($field['value']) && !is_wp_error($field['value'])) { // Check if we have multiple files. if (wpaam_is_multi_array($field_files)) { foreach ($field_files as $key => $file) { get_wpaam_template('form-fields/uploaded-file-html.php', array('key' => $key, 'name' => 'current_' . $field_name, 'value' => $file['url'], 'field' => $field, 'field_name' => $field_name, 'number' => $key)); } // We have single file. } else { get_wpaam_template('form-fields/uploaded-file-html.php', array('key' => $key, 'name' => 'current_' . $field_name, 'value' => $field_files, 'field' => $field, 'field_name' => $field_name)); }
/** * Add custom classes to body tag * * @since 1.0.0 * @param array $classes * @return array */ function wpaam_body_classes($classes) { if (is_page(wpaam_get_core_page_id('login'))) { // add class if we're on a login page $classes[] = 'wpaam-login-page'; } else { if (is_page(wpaam_get_core_page_id('register'))) { // add class if we're on a register page $classes[] = 'wpaam-register-page'; } else { if (is_page(wpaam_get_core_page_id('account'))) { // add class if we're on a account page $classes[] = 'wpaam-account-page'; } else { if (is_page(wpaam_get_core_page_id('profile'))) { // add class if we're on a profile page $classes[] = 'wpaam-profile-page'; // add user to body class if set if (wpaam_is_single_profile()) { $classes[] = 'wpaam-user-' . wpaam_is_single_profile(); } } else { if (is_page(wpaam_get_core_page_id('password'))) { // add class if we're on a password page $classes[] = 'wpaam-password-page'; } } } } } return $classes; }
function wpaam_get_displayed_user_id() { $user_id = false; $who = wpaam_is_single_profile(); $structure = get_option('wpaam_permalink', 'user_id'); // If we're on the profile but no user has been given, we return the current user id. if (!$who && !empty($structure) && is_page(wpaam_get_core_page_id('profile'))) { return get_current_user_id(); } // Process the retrieved user. if ($who && !empty($structure)) { switch ($structure) { case 'user_id': $user_id = esc_attr($who); break; case 'username': $retrieve = get_user_by('login', esc_attr($who)); $user_id = $retrieve->data->ID; break; case 'nickname': // WP_User_Query arguments. $args = array('search' => esc_attr($who), 'search_columns' => array('user_nicename')); // The User Query. $user_query = new WP_User_Query($args); $user_query = $user_query->get_results(); $user_id = $user_query[0]->data->ID; break; } } return $user_id; }
/** * Get URL of a core page. * * @since 1.0.0 * @param string $name the name of the page. Supports: login, register, password, account. * @return string $url of the core page. */ function wpaam_get_core_page_url($page) { $url = null; switch ($page) { case 'login': $url = esc_url(get_permalink(wpaam_get_core_page_id('login'))); break; case 'register': $url = esc_url(get_permalink(wpaam_get_core_page_id('register'))); break; case 'password': $url = esc_url(get_permalink(wpaam_get_core_page_id('password'))); break; case 'account': $url = esc_url(get_permalink(wpaam_get_core_page_id('account'))); break; case 'clients': $url = esc_url(get_permalink(wpaam_get_core_page_id('clients'))); break; case 'products': $url = esc_url(get_permalink(wpaam_get_core_page_id('products'))); break; case 'quotations': $url = esc_url(get_permalink(wpaam_get_core_page_id('quotations'))); break; case 'invoices': $url = esc_url(get_permalink(wpaam_get_core_page_id('invoices'))); break; case 'creditmemos': $url = esc_url(get_permalink(wpaam_get_core_page_id('creditmemos'))); break; } return apply_filters('wpaam_get_core_page_url', $url, $page); }