get_blog_prefix() . 'accessible_locale'; if ( ! empty( $_POST['setting_bogo_accessible_locales'] ) ) { delete_user_meta( $user_id, $meta_key ); if ( isset( $_POST['bogo_accessible_locales'] ) ) { $locales = (array) $_POST['bogo_accessible_locales']; $locales = bogo_filter_locales( $locales ); foreach ( $locales as $locale ) { add_user_meta( $user_id, $meta_key, $locale ); } } if ( ! metadata_exists( 'user', $user_id, $meta_key ) ) { add_user_meta( $user_id, $meta_key, 'zxx' ); // zxx is a special code in ISO 639-2 } } if ( isset( $_POST['bogo_own_locale'] ) ) { $locale = trim( $_POST['bogo_own_locale'] ); if ( bogo_is_available_locale( $locale ) ) { update_user_option( $user_id, 'locale', $locale, true ); } } } add_action( 'personal_options', 'bogo_set_locale_options' ); function bogo_set_locale_options( $profileuser ) { if ( is_network_admin() ) { return; } if ( defined( 'IS_PROFILE_PAGE' ) && IS_PROFILE_PAGE ) { bogo_select_own_locale( $profileuser ); } elseif ( ! user_can( $profileuser, 'bogo_access_all_locales' ) ) { bogo_set_accessible_locales( $profileuser ); } } function bogo_set_accessible_locales( $profileuser ) { $available_languages = bogo_available_languages( array( 'exclude_enus_if_inactive' => true, 'orderby' => 'value' ) ); $accessible_locales = bogo_get_user_accessible_locales( $profileuser->ID ); if ( empty( $accessible_locales ) ) { $accessible_locales = array_keys( $available_languages ); } else { $accessible_locales = bogo_filter_locales( $accessible_locales ); } ?>
$language ) : $checked = in_array( $locale, $accessible_locales ); $id_attr = 'bogo_accessible_locale-' . $locale; ?>
true, 'orderby' => 'value', 'current_user_can_access' => true ) ); $selected = bogo_get_user_locale( $profileuser->ID ); ?>