Wordpress - Добавить настраиваемое поле в базу данных, пока пользователь регистрируется - PullRequest
0 голосов
/ 24 марта 2019

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

password_hash($password, PASSWORD_DEFAULT);

, где я должен добавить код для использованияввод данных в поле перед его хэшированием?

Важно добавить эту команду до того, как пользователь будет зарегистрирован, потому что мне нужно использовать необработанный пароль из поля ввода пользователя

1 Ответ

1 голос
/ 24 марта 2019

wordpress имеет хук действия, называемый user_register, который срабатывает немедленно после вставки пользователя в базу данных.

Пример из codex

add_action( 'user_register', 'myplugin_registration_save', 10, 1 );

и ваша функция

function myplugin_registration_save( $user_id ) {

   if ( isset( $_POST['first_name'] ) )
        update_user_meta($user_id, 'first_name', $_POST['first_name']);

}

Редактировать I

После комментария: Во-первых - вы можете хэшировать или изменять пароль в любой момент, когда захотите, другими способами -но я не буду вдаваться в подробности, поэтому, если вам нужно какое-то более раннее действие, вы можете использовать register_form для манипулирования самой формой или вы можете использовать register_post для манипулирования или обработки почтовых данных от пользователярегистрация до фильтра register_errors - который также можно использовать в зависимости от вашего сценария.

Все эти дополнительные функции связаны на странице кодекса user_register.

Редактировать II

после комментария:

думаю, что мне нужно редактировать register_form, какой именно файл?

никогда НИКОГДА НИКОГДА редактировать файлы ядра.

Это о работеЭто практика, которую разработчик может сделать по многим причинам, которые я даже не могу здесь перечислить.Именно поэтому были сделаны крючки / фильтры.

Если вы уже это знаете, то используйте их, а если нет - можете прочитать подробнее здесь .

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

Редактировать III

Пожалуйста, проверьте также функции: wp_hash_password и wp_set_password , который позволяет изменить алгоритм хеширования по умолчанию.

if ( !function_exists('wp_hash_password') ){
    function wp_hash_password($password) {
                //your own hashing algorithm here
            return $password;
    } }

, если вы это сделаете, вам также потребуется изменить wp_check_password

if ( !function_exists('wp_check_password') ){
    function wp_check_password($password, $hash, $user_id = '') {
            // do you hash checking
            return apply_filters('check_password', $check, $password, $hash, $user_id);
            }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...