mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
Add option to force Strings to use UTF-8 encoding
This commit is contained in:
+9
-4
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user