WPForms — настройка значений перед отправкой формы в базу данных

#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 вставлял правильные значения из выпадающих списков.