Необходимо изменить обновление стандартного профиля WordPress.
Идея – в профиль добавлено дополнительное поле "Номер диплома". В базу добавлена таблица gg_persons со списком всех выпускников. Если пользователь вводит в поле "Номер диплома" какой-либо номер, и этот номер найден в этой таблице, то поля Имя и Фамилия подставляются автоматически, так же из этой таблицы.
<?php function pol_inf () {
global $wpdb;
//номер диплома
$n = $curauth->n_dip;
//если номер введен
if (!empty($n)) {
//выбираем строчку, в которой указан данный номер
$user = $wpdb->get_row("SELECT * FROM gg_persons WHERE docnumber = '$n'");
//если есть такая строка
if ($user) {
//имя
$name = $user->firsname;
//id пользователя
$id_u = $curauth->id;
//обновляем wp_usermeta. обновляем имя
$wpdb->update(
$wpdb->prefix . 'usermeta',
array('meta_value' => $name),
array('user_id' => $id_u, 'meta_key' => 'first_name'
),
array( '%s' ),
array('%d', '%s')
);
}}}
//надо привязать функцию к какому-то действию..
add_action('profile_update', 'pol_inf');
?>
Если просто прописать в author.php данный код, то при обновлении страницы, всё хорошо работает. Данные в wp_usermeta обновляются и подставляются в профиль. А вот привязать к кнопке Обновить информацию в профиле WordPress не получается. Может кто-нибудь подскажет, как это можно реализовать?