'publish' ) // если страница еще не создана или не опубликована... { $page = array( 'post_title' => __('Profile','oifrontendprofile'), 'post_name' => 'profile', 'post_content' => '[oi_frontend_profile]', 'post_status' => 'publish', 'post_type' => 'page', 'comment_status' => 'closed', //'post_author' => 2, //'post_date' => '2012-08-20 15:10:30' ); $post_id = wp_insert_post($page); // создаем ее $options[ 'post_id' ] = $post_id; update_option( 'oifrontendprofile', json_encode( $options ) ); // сохраняем в настройках id страницы } } function oifep_styles() { // если в настройках не выключен css, подгружаем стили $options = get_oifrontendprofile(); $turn_off_css = $options[ 'turn_off_css' ]; if( $turn_off_css <> 1 ){wp_enqueue_style('oifep', oifep_path().'/css/style.css');} } add_action('wp_enqueue_scripts', 'oifep_styles'); add_action ('init' , 'prevent_profile_access'); // инициализация функции перенаправления function prevent_profile_access() // функция перенаправления { if (current_user_can('manage_options')) return ''; // если пользователь может менять настройки системы - ничего не делаем, иначе... if( strpos ( $_SERVER ['REQUEST_URI'] , 'wp-admin/' ) ) // перехватываем перехход в профиль { $options = get_oifrontendprofile(); $backend_hide = $options[ 'backend_hide' ]; // получаем id страницы профиля из настроек $post_id = $options[ 'post_id' ]; if( $backend_hide == 1 ){$backend_hide = strpos ($_SERVER ['REQUEST_URI'] , 'wp-admin/' );} } if (strpos ($_SERVER ['REQUEST_URI'] , 'wp-admin/profile.php' ) || $backend_hide ) // перехватываем перехход в профиль { if( get_post_status( $post_id ) == 'publish' ) // если она существует и опубликована... { $post_id = '/?p=' . $post_id; // формируем адрес редиректа на эту страницу }else { $post_id = ''; // иначе редирект будет без параметров(на главную) } wp_redirect ( get_bloginfo( 'url' ) . $post_id ); // редирект } } //wp_enqueue_script( 'password-strength-meter' ); function oi_public_display($profileuser=null) // make list of "options" for select box { if($profileuser<>null) { $public_display = array(); $public_display['display_nickname'] = $profileuser->nickname; $public_display['display_username'] = $profileuser->user_login; if ( !empty($profileuser->first_name) ) $public_display['display_firstname'] = $profileuser->first_name; if ( !empty($profileuser->last_name) ) $public_display['display_lastname'] = $profileuser->last_name; if ( !empty($profileuser->first_name) && !empty($profileuser->last_name) ) { $public_display['display_firstlast'] = $profileuser->first_name . ' ' . $profileuser->last_name; $public_display['display_lastfirst'] = $profileuser->last_name . ' ' . $profileuser->first_name; } if ( !in_array( $profileuser->display_name, $public_display ) ) // Only add this if it isn't duplicated elsewhere $public_display = array( 'display_displayname' => $profileuser->display_name ) + $public_display; $public_display = array_map( 'trim', $public_display ); $public_display = array_unique( $public_display ); $names = array(); foreach($public_display as $k=>$v) { $names[$v] = $v; } return $names; } } function oi_frontend_profile() { if(!function_exists('get_user_to_edit')){ require_once(ABSPATH.'/wp-admin/includes/user.php'); } // if-not-user-logged-in if(!is_user_logged_in()) { get_template_part( 'login-form' ); }else { global $userdata, $wp_http_referer; $current_user = wp_get_current_user(); $user_id = $current_user->ID; if ( !isset( $_POST['submit'] ) ) { $profileuser = get_user_to_edit($user_id); }else { ob_start(); check_admin_referer('update-user_' . $user_id); $errors = edit_user( $user_id ); if ( is_wp_error( $errors ) ) { $alert_message = $errors->get_error_message(); $alert_type = 'alert-error text-danger'; }else { $alert_message = __('Your profile has been updated successfully.','oifrontendprofile'); $alert_type = 'bg-success text-success'; do_action( 'personal_options_update', $user_id ); } if($alert_message){$alert_message = 'alert("'.$alert_message.'");';} ob_end_clean(); $profileuser = get_user_to_edit($user_id); } ob_start(); ?>
>