示例#1
0
 /**
  * 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;
 }
示例#2
0
文件: actions.php 项目: devd123/wpaam
/**
 * 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();
    }
}
示例#3
0
 /**
  * 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 . '&quotation_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');
 }
示例#4
0
 * 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));
        }
示例#5
0
文件: filters.php 项目: devd123/wpaam
/**
 * 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;
}
示例#6
0
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;
}
示例#7
0
/**
 * 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);
}