2016-12-12 2 views
0

Я использую contact form 7 на моем сайте Wordpress, чтобы показать форму запроса для моих пользователей.Удалить несколько пробелов из textarea после формы submit

Я недавно изменил форму и добавил textarea. Однако проблема, с которой я сталкиваюсь, заключается в удалении пробелов, добавленных пользователями, когда они удерживают клавишу «ввод» на лицевой стороне. Некоторые пользователи добавят сотни строк пробелов, которые нежелательны.

В идеале, когда они отправляют форму, я бы хотел заменить все эти пробелы одним пробелом. Так что я попытался ниже:

add_filter('wpcf7_validate_textarea*', 'custom_textarea_validation_filter', 10, 2); 
function custom_textarea_validation_filter($result, $tag){ 
    $tag = new WPCF7_Shortcode($tag); 
    $value = $_POST[$tag->name]; 
    if("your-enquiry" == $tag->name){ 
     htmlentities($value); 
     trim(preg_replace('/\s\s+/', ' ', $value)); 
    } 
    return $result; 
} 

К сожалению, это не работает ... Я не так озабочен предотвращения их делать это на переднем конце, как некоторые пользователи могут захотеть отделить свои пункты и т.д. ... но на стороне сервера я хотел бы удалить все эти пробелы и заменить одной пустой линией

У кого есть предложения?

+0

Что вы ожидали? Что у тебя? – JustOnUnderMillions

ответ

1

Вы не назначаете какое-либо значение $ result, почему вы его возвращаете? А также ваше регулярное выражение неправильно, попробуйте следующее:

add_filter('wpcf7_validate_textarea*', 'custom_textarea_validation_filter', 10, 2); 
function custom_textarea_validation_filter($result, $tag){ 
    $tag = new WPCF7_Shortcode($tag); 
    $value = $_POST[$tag->name]; 
    if("your-enquiry" == $tag->name){ 
     $value = htmlentities($value); 
     $result = trim(preg_replace('/\s{2,}/', ' ', $value)); 
    } 
    return $result; 
} 
0

Попробуйте это:

add_filter('wpcf7_validate_textarea*', 'custom_textarea_validation_filter', 10, 2); 
function custom_textarea_validation_filter($result, $tag){ 
    $tag = new WPCF7_Shortcode($tag); 
    $value = $_POST[$tag->name]; 
    if("your-enquiry" == $tag->name){ 
     $value = htmlentities($value); 
     $result = trim(preg_replace('/\r|\n/', ' ', $value)); 
    } 
    return $result; 
} 
Смежные вопросы