خرید بک لینک

Vote count: 0

I want to add this simple voting system to my wordpres theme. But it's saving votes by user IPs . I would like to save with user id . and only logged users will vote the posts.

This is the post like function

function post_like()
{
// Check for nonce security
$nonce = $_POST['nonce'];

if ( ! wp_verify_nonce( $nonce, 'ajax-nonce' ) )
    die ( 'Busted!');

if(isset($_POST['post_like']))
{
    // Retrieve user IP address
    $ip = $_SERVER['REMOTE_ADDR'];
    $post_id = $_POST['post_id'];

    // Get voters'IPs for the current post
    $meta_IP = get_post_meta($post_id, "voted_IP");
    $voted_IP = $meta_IP[0];

    if(!is_array($voted_IP))
        $voted_IP = array();

    // Get votes count for the current post
    $meta_count = get_post_meta($post_id, "votes_count", true);

    // Use has already voted ?
    if(!hasAlreadyVoted($post_id))
    {
        $voted_IP[$ip] = time();

        // Save IP and increase votes count
        update_post_meta($post_id, "voted_IP", $voted_IP);
        update_post_meta($post_id, "votes_count", ++$meta_count);

        // Display count (ie jQuery retu value)
        echo $meta_count;
    }
    else
        echo "already";
}
exit;
}

and this is the check already voted function

function hasAlreadyVoted($post_id)
{
global $timebeforerevote;

// Retrieve post votes IPs
$meta_IP = get_post_meta($post_id, "voted_IP");
$voted_IP = $meta_IP[0];

if(!is_array($voted_IP))
    $voted_IP = array();

// Retrieve current user IP
$ip = $_SERVER['REMOTE_ADDR'];

// If user has already voted
if(in_array($ip, array_keys($voted_IP)))
{
    $time = $voted_IP[$ip];
    $now = time();

    // Compare between current time and vote time
    if(round(($now - $time) / 60) > $timebeforerevote)
        retu false;

    retu true;
}

retu false;
}

thank you very much for answers

asked 47 secs ago

برچسب: نویسنده: استخدام کار تاريخ: شنبه 18 ارديبهشت 1395 ساعت: 22:54

صفحه بندی