#php #wordpress
#php #wordpress
Вопрос:
Как скорректировать предоставленные данные до того, как они будут отправлены??
(Я пытаюсь настроить выпадающее значение, чтобы использовать значение вместо текста)
Вот мой код:
function wpf_dev_process( $fields, $entry, $form_data ) {
if ( absint( $form_data['id'] ) !== 66203 ) {
return $fields;
}
foreach ( $fields as $key => $value ){
if ($fields[$key]["type"] == "select"){
$fields[$key]["value"] = $fields[$key]["value_raw"];
}
}
echo "<pre>". print_r($fields, true)."</pre><hr>";
return $fields;
}
add_action( 'wpforms_process', 'wpf_dev_process', 10, 3 );
Мой оператор echo показывает на моей странице «исправленные» данные, как можно видеть здесь, на этом изображении:
echo "<pre>". print_r($fields, true)."</pre><hr>";
Но это форма регистрации пользователя, и данные, отправленные в базу данных, по-прежнему являются исходным значением, а не value_raw, на которое я его меняю?
У кого-нибудь есть какие-нибудь идеи?
Комментарии:
1. Не могли бы вы объяснить более подробно? Как я понял, вы хотите изменить данные перед началом процесса. Что насчет фильтра wpforms_process_before_form_data?
2. Я никогда не слышал об этом фильтре. Я использую то, что предложила служба поддержки WPForms.
Ответ №1:
Я решил эту проблему с помощью wpforms_user_registered
действия.
После того, как система создала пользователя, я update_user_meta
вставлял правильные значения из выпадающих списков.