mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
- fix count of words and letters for the bio field
This commit is contained in:
@@ -110,7 +110,12 @@ jQuery(document).ready(function() {
|
||||
jQuery( document.body ).on( 'change keyup', '#um-meta-bio', function() {
|
||||
if ( typeof jQuery(this).val() !== 'undefined' ) {
|
||||
var um_bio_limit = jQuery(this).data( 'character-limit' );
|
||||
var remaining = um_bio_limit - jQuery(this).val().length;
|
||||
var bio_html = jQuery(this).attr('data-html');
|
||||
if ( parseInt( bio_html ) === 1 ){
|
||||
var remaining = um_bio_limit - jQuery(this).val().replace(/(<([^>]+)>)/ig,'').length;
|
||||
} else {
|
||||
var remaining = um_bio_limit - jQuery(this).val().length;
|
||||
}
|
||||
|
||||
jQuery( 'span.um-meta-bio-character span.um-bio-limit' ).text( remaining );
|
||||
if ( remaining < 5 ) {
|
||||
|
||||
@@ -573,9 +573,14 @@ function um_submit_form_errors_hook_( $submitted_data, $form_data ) {
|
||||
}
|
||||
|
||||
if ( isset( $array['max_words'] ) && $array['max_words'] > 0 ) {
|
||||
// count words without html tags
|
||||
$without_tags = wp_strip_all_tags( $submitted_data[ $key ] );
|
||||
if ( str_word_count( $without_tags, 0, 'éèàôù' ) > $array['max_words'] ) {
|
||||
if ( array_key_exists( 'html', $array ) && 1 === (int) $array['html'] ) {
|
||||
$text_value = wp_strip_all_tags( $submitted_data[ $key ] );
|
||||
} else {
|
||||
// count words without html tags
|
||||
$text_value = $submitted_data[ $key ];
|
||||
}
|
||||
|
||||
if ( str_word_count( $text_value, 0, '0123456789éèàôù' ) > $array['max_words'] ) {
|
||||
// translators: %s: max words.
|
||||
UM()->form()->add_error( $key, sprintf( __( 'You are only allowed to enter a maximum of %s words', 'ultimate-member' ), $array['max_words'] ) );
|
||||
}
|
||||
@@ -668,6 +673,23 @@ function um_submit_form_errors_hook_( $submitted_data, $form_data ) {
|
||||
}
|
||||
}
|
||||
|
||||
if ( isset( $submitted_data['description'] ) ) {
|
||||
$max_chars = UM()->options()->get( 'profile_bio_maxchars' );
|
||||
$profile_show_bio = UM()->options()->get( 'profile_show_bio' );
|
||||
if ( ! UM()->options()->get( 'profile_show_html_bio' ) ) {
|
||||
$description_value = $submitted_data['description'];
|
||||
} else {
|
||||
$description_value = wp_strip_all_tags( $submitted_data['description'] );
|
||||
}
|
||||
|
||||
if ( $profile_show_bio ) {
|
||||
if ( mb_strlen( str_replace( array( "\r\n", "\n", "\r\t", "\t" ), ' ', $description_value ) ) > $max_chars && $max_chars ) {
|
||||
// translators: %s: max chars.
|
||||
UM()->form()->add_error( 'description', sprintf( __( 'Your user description must contain less than %s characters', 'ultimate-member' ), $max_chars ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( empty( $array['validate'] ) ) {
|
||||
continue;
|
||||
}
|
||||
@@ -933,17 +955,21 @@ function um_submit_form_errors_hook_( $submitted_data, $form_data ) {
|
||||
|
||||
}
|
||||
|
||||
if ( isset( $submitted_data['description'] ) ) {
|
||||
$max_chars = UM()->options()->get( 'profile_bio_maxchars' );
|
||||
$profile_show_bio = UM()->options()->get( 'profile_show_bio' );
|
||||
|
||||
if ( $profile_show_bio ) {
|
||||
if ( mb_strlen( str_replace( array( "\r\n", "\n", "\r\t", "\t" ), ' ', $submitted_data['description'] ) ) > $max_chars && $max_chars ) {
|
||||
// translators: %s: max chars.
|
||||
UM()->form()->add_error( 'description', sprintf( __( 'Your user description must contain less than %s characters', 'ultimate-member' ), $max_chars ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
// if ( isset( $submitted_data['description'] ) ) {
|
||||
// echo '<pre>';
|
||||
// print_r($submitted_data);
|
||||
// echo '</pre>';
|
||||
// exit();
|
||||
// $max_chars = UM()->options()->get( 'profile_bio_maxchars' );
|
||||
// $profile_show_bio = UM()->options()->get( 'profile_show_bio' );
|
||||
//
|
||||
// if ( $profile_show_bio ) {
|
||||
// if ( mb_strlen( str_replace( array( "\r\n", "\n", "\r\t", "\t" ), ' ', $submitted_data['description'] ) ) > $max_chars && $max_chars ) {
|
||||
// // translators: %s: max chars.
|
||||
// UM()->form()->add_error( 'description', sprintf( __( 'Your user description must contain less than %s characters', 'ultimate-member' ), $max_chars ) );
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
} // end if ( isset in args array )
|
||||
}
|
||||
add_action( 'um_submit_form_errors_hook_', 'um_submit_form_errors_hook_', 10, 2 );
|
||||
|
||||
@@ -1241,6 +1241,7 @@ function um_profile_header( $args ) {
|
||||
|
||||
<div class="um-meta-text">
|
||||
<textarea id="um-meta-bio"
|
||||
data-html="<?php echo esc_attr( UM()->options()->get( 'profile_show_html_bio' ) ); ?>"
|
||||
data-character-limit="<?php echo esc_attr( UM()->options()->get( 'profile_bio_maxchars' ) ); ?>"
|
||||
placeholder="<?php esc_attr_e( 'Tell us a bit about yourself...', 'ultimate-member' ); ?>"
|
||||
name="<?php echo esc_attr( $description_key ); ?>"><?php echo UM()->fields()->field_value( $description_key ) ?></textarea>
|
||||
|
||||
Reference in New Issue
Block a user