Compruebe si el usuario ya visitó esta publicación hoy

4

Tengo un código que mide la popularidad de un post. ¿Cómo puedo verificar si el usuario no ha visitado esta publicación en las últimas 24 horas? ¿Necesito configurar una cookie para el usuario y para cada publicación que visitaron? Yo

$count = get_post_meta($post_id, 'popular_posts', true);
    if(user-didnt-visited-this-page-in-last-24-hours) : 
       $count++;
       update_post_meta($post_id, $count_key, $count);
    endif; 
    
pregunta Boris Kozarac 28.05.2016 - 19:03

1 respuesta

2

¡Nota! Este código no fue probado!

<?php
function my_visitor_cookie($post_id) {

    if ( empty($post_id) ) {
        global $post;
        $post_id = $post->ID;    
    }

    // get post meta
    $count = get_post_meta($post_id, 'unique_post_visits', true);

    // if there was no meta value
    if( empty($count) ) {
        $count = 0;
    }

    // check if cookie was already set (cookie name for the current post)
    if( !isset($_COOKIE['my_visitor_' . $post_id]) ) {
        // set visitor cookie if it is not set already
        setcookie(
            'my_visitor_' . $post_id, // cookie name for the current post
            $post_id, // any value, shot in the dark
            DAY_IN_SECONDS // WordPress time constant
        );
        // increase count
        $count++;
        // update count
        update_post_meta($post_id, 'unique_post_visits', $count);
    }
}

// add_action('wp_head', 'my_visitor_cookie');
add_action('init', 'my_visitor_cookie'); // updated according to the comments
    
respondido por el Max Yudin 28.05.2016 - 20:51

Lea otras preguntas en las etiquetas