PluginProbe
Bogo / 2.2
Bogo v2.2
3.9.3 trunk 1.0 1.1 2.0 2.0.1 2.1 2.1.1 2.1.2 2.1.3 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 2.6 2.6.1 2.7 2.8 2.8.1 2.9 3.0 3.0.1 All 52 releases
bogo / includes / user.php

user.php in Bogo 2.2, at includes/user.php

69 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /* Admin Bar */
4
5 add_action( 'admin_bar_menu', 'bogo_admin_bar_menu' );
6
7 function bogo_admin_bar_menu( $wp_admin_bar ) {
8 $current_locale = bogo_get_user_locale();
9 $current_language = bogo_get_language( $current_locale );
10
11 if ( ! $current_language )
12 $current_language = $current_locale;
13
14 $wp_admin_bar->add_menu( array(
15 'parent' => 'top-secondary',
16 'id' => 'bogo-user-locale',
17 'title' => '&#10004; ' . $current_language ) );
18
19 $available_languages = bogo_available_languages(
20 array( 'exclude' => array( $current_locale ) ) );
21
22 foreach ( $available_languages as $locale => $lang ) {
23 $url = admin_url( 'profile.php?action=bogo-switch-locale&locale=' . $locale );
24
25 $url = add_query_arg(
26 array( 'redirect_to' => urlencode( $_SERVER['REQUEST_URI'] ) ),
27 $url );
28
29 $url = wp_nonce_url( $url, 'bogo-switch-locale' );
30
31 $wp_admin_bar->add_menu( array(
32 'parent' => 'bogo-user-locale',
33 'id' => 'bogo-user-locale-' . $locale,
34 'title' => $lang,
35 'href' => $url ) );
36 }
37 }
38
39 add_action( 'admin_init', 'bogo_switch_user_locale' );
40
41 function bogo_switch_user_locale() {
42 if ( empty( $_REQUEST['action'] ) || 'bogo-switch-locale' != $_REQUEST['action'] )
43 return;
44
45 check_admin_referer( 'bogo-switch-locale' );
46
47 $locale = isset( $_REQUEST['locale'] ) ? $_REQUEST['locale'] : '';
48
49 if ( ! bogo_is_available_locale( $locale ) || $locale == bogo_get_user_locale() )
50 return;
51
52 update_user_option( get_current_user_id(), 'locale', $locale, true );
53
54 if ( ! empty( $_REQUEST['redirect_to'] ) ) {
55 wp_safe_redirect( $_REQUEST['redirect_to'] );
56 exit();
57 }
58 }
59
60 function bogo_get_user_locale( $user_id = 0 ) {
61 $locale = get_user_option( 'locale', $user_id );
62
63 if ( empty( $locale ) )
64 $locale = bogo_get_default_locale();
65
66 return $locale;
67 }
68
69 ?>