Подскажите, как добавить в профиль пользователя поле в котором будет записываться ip пользователя при его регистрации? Можно добавить в профиль новое текстовое поле, но как в него добавить ip пользователя при регистрации?
Поставил модуль User IP Log, но он показывает ip только после того, как пользователь совершит какие-то действия на сайте уже после регистрации
Комментарии
А какова цель? Вы в курсе, что сейчас, в эпоху мобильного интернета, большинство IP-адресов динамические? И что определение местоположения даже по статическому айпишнику может промахнулся на 200-300км?
Но если вы настаиваете, то см. hook_user_insert и там пишите что-то вроде
<?php
$user['field_ip'] = array(
'und' => array(array(
'value'=> ip_address(),
)),
);
?>
Да в курсе, например можно определить где ты см. https://browserleaks.com/geo и даже не промахнутся.
Как вариант, можно решить несколькими строками в кастомном модуле. Перед этим, в профиле нужно создать соотв. поле, и поставить галку, чтобы поле выводилось в форме регистрации (визуально оно будет скрыто).
<?php
function MODULENAME_form_user_register_form_alter(&$form, &$form_state, $form_id){
if(isset($form['field_ip'])){
$form['field_ip']['und'][0]['value']['#value'] = ip_address();
$form['field_ip']['#type'] = 'hidden';
}
}
?>
Спасибо, понятно!