сохранить IP-адрес пользователя в базе данных WordPress - PullRequest
0 голосов
/ 17 сентября 2018
function get_ip(){
    global $wpdb;
    $ipaddress = $_SERVER['REMOTE_ADDR'];
    $data = array('post_title'=>'Sample Title','ip_address'=>$ipaddress);
    $wpdb->insert('wp_ip_address',$data);
}
add_action('init','get_ip');

В этом коде работает нормально, но пользователь посещает несколько страниц на нашем веб-сайте. IP-адрес хранится несколько раз в базе данных

Ожидаемый результат

Пользователь, посещающий веб-сайт Сохраните IP-адрес в базе данных в одно время

1 Ответ

0 голосов
/ 17 сентября 2018

сначала создать таблицу в MySQL:

CREATE TABLE `wp_user_ip` (
  `id` mediumint(48) NOT NULL,
  `post_id` bigint(40) NOT NULL,
  `post_title` text NOT NULL,
  `user_ip` text NOT NULL,
  `date` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `wp_user_ip`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `wp_user_ip`
  MODIFY `id` mediumint(48) NOT NULL AUTO_INCREMENT;

секунда, добавьте этот код в активную тему functions.php:

add_action('wp', function(){
    global $wpdb, $post;

    if( is_single() || is_page() ) {

    $wpdb->insert( 
    'wp_user_ip', 
    array( 
        'post_id' => $post->ID, 
        'post_title' => get_the_title($post->ID) ,
        'user_ip' => $_SERVER['REMOTE_ADDR'],
        'date' => current_time('mysql') ,
    )
);


    }

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...