Add option to force Strings to use UTF-8 encoding

This commit is contained in:
champsupertramp
2016-03-07 17:42:35 +08:00
parent aaccd51164
commit 50cde1dd2b
4 changed files with 88 additions and 4 deletions
+9 -4
View File
@@ -414,9 +414,11 @@ class UM_Fields {
function is_selected($key, $value, $data){
global $ultimatemember;
if ( isset( $ultimatemember->form->post_form[$key] ) && is_array( $ultimatemember->form->post_form[$key] ) ) {
$key = apply_filters('um_is_selected_filter_key', $key );
if ( in_array( $value, $ultimatemember->form->post_form[$key] ) ){
if ( isset( $ultimatemember->form->post_form[ $key ] ) && is_array( $ultimatemember->form->post_form[ $key ] ) ) {
if ( in_array( $value, $ultimatemember->form->post_form[ $key ] ) ){
return true;
}
@@ -424,11 +426,14 @@ class UM_Fields {
if ( !isset( $ultimatemember->form->post_form ) ) {
if ( um_user( $key ) && $this->editing == true && is_array( um_user( $key ) ) && in_array($value, um_user( $key ) ) ) {
$value = um_user( $key );
$value = apply_filters('um_is_selected_filter_value', $value );
if ( $value && $this->editing == true && is_array( $value ) && in_array( $value, $value ) ) {
return true;
}
if ( um_user( $key ) && $this->editing == true && !is_array( um_user( $key ) ) && um_user( $key ) == $value ) {
if ( $value && $this->editing == true && !is_array( $value ) && $value == $value ) {
return true;
}
+37
View File
@@ -301,4 +301,41 @@
}
return $array;
}
/**
* Force fields to use UTF-8 encoding
* @param mixed $value
* @return mixed
* @uses hook filter: um_profile_field_filter_hook__
*/
add_filter('um_profile_field_filter_hook__','um_force_utf8_fields',1,10);
function um_force_utf8_fields( $value ){
if( ! um_get_option('um_force_utf8_strings') )
return $value;
$value = um_force_utf8_string( $value );
return $value;
}
/**
* Filter profile data value
* @param mixed $value
* @return mixed
* @uses hook filter: um_is_selected_filter_value
*/
add_filter('um_is_selected_filter_value','um_is_selected_filter_value',1,9);
function um_is_selected_filter_value( $value ){
global $ultimatemember;
if( ! um_get_option('um_force_utf8_strings') )
return $value;
$value = um_force_utf8_string( $value );
return $value;
}
+32
View File
@@ -1495,3 +1495,35 @@ function um_fetch_user( $user_id ) {
return $count;
}
/**
* Force strings to UTF-8 encoded
* @param mixed $value
* @return mixed
*/
function um_force_utf8_string( $value ){
if( is_array( $value ) ){
$arr_value = array();
foreach ($value as $key => $value) {
$utf8_decoded_value = utf8_decode( $value );
if( mb_check_encoding( $utf8_decoded_value, 'UTF-8') ){
array_push( $arr_value, $utf8_decoded_value );
}else{
array_push( $arr_value, $value );
}
}
return $arr_value;
}else{
$utf8_decoded_value = utf8_decode($value);
if( mb_check_encoding( $utf8_decoded_value, 'UTF-8') ){
return $utf8_decoded_value;
}
}
return $value;
}
+10
View File
@@ -1898,6 +1898,16 @@ $this->sections[] = array(
'off' => __('Off','ultimatemember'),
),
array(
'id' => 'um_force_utf8_strings',
'type' => 'switch',
'title' => __( 'Force Strings to UTF-8 Encoding','ultimatemember' ),
'default' => 0,
'desc' => __('Turn on If you want to force labels and fields to use UTF-8 encoding','ultimatemember'),
'on' => __('On','ultimatemember'),
'off' => __('Off','ultimatemember'),
),
array(
'id' => 'enable_timebot',
'type' => 'switch',