IP в профиле для админа

Главные вкладки

Аватар пользователя Arturus Arturus 9 февраля 2019 в 21:06

Подскажите, как добавить в профиль пользователя поле в котором будет записываться ip пользователя при его регистрации? Можно добавить в профиль новое текстовое поле, но как в него добавить ip пользователя при регистрации?

Поставил модуль User IP Log, но он показывает ip только после того, как пользователь совершит какие-то действия на сайте уже после регистрации

Комментарии

Аватар пользователя gun_dose gun_dose 10 февраля 2019 в 0:17
1

А какова цель? Вы в курсе, что сейчас, в эпоху мобильного интернета, большинство IP-адресов динамические? И что определение местоположения даже по статическому айпишнику может промахнулся на 200-300км?

Но если вы настаиваете, то см. hook_user_insert и там пишите что-то вроде

<?php
$user
['field_ip'] = array(
  
'und' => array(array(
    
'value'=> ip_address(),
  )),
);
?>
Аватар пользователя sas@drupal.org sas@drupal.org 10 февраля 2019 в 8:04
1

gun_dose wrote:

А какова цель? Вы в курсе, что сейчас, в эпоху мобильного интернета, большинство IP-адресов динамические? И что определение местоположения даже по статическому айпишнику может промахнулся на 200-300км?

Да в курсе, например можно определить где ты см. https://browserleaks.com/geo и даже не промахнутся.

Аватар пользователя EvgenySorokin EvgenySorokin 10 февраля 2019 в 0:24
1

Как вариант, можно решить несколькими строками в кастомном модуле. Перед этим, в профиле нужно создать соотв. поле, и поставить галку, чтобы поле выводилось в форме регистрации (визуально оно будет скрыто).

<?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';
     }
}
?>