Hướng dẫn tạo vote cho bài viết bằng cách sử dụng Ajax (ok)

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Ajax Wordpress</title>
</head>
<body>
	Hướng dẫn tạo vote bài viết bằng Ajax
	Bước 1: Bạn copy code vào file single.php
	<?php
		$tt = rand(1,100);
	   	$nonce = wp_create_nonce("my_user_vote_nonce");
	    $link = admin_url('admin-ajax.php?action=my_user_vote&post_id='.$post->ID.'&nonce='.$nonce.'&tt='.$tt);
	    echo '<a class="user_vote" data-nonce="' . $nonce . '" data-post_id="' . $post->ID . '" href="' . $link . '">vote for this article</a>';
	?>
	Giải thích một chút: 
	$nonce là chuỗi mã hóa nhận dạng giữa nơi gọi và nơi nhận cho sự kiện này, tránh hacker lợi dụng.
	(Bạn có thể đặt chuỗi my_user_vote_nonce thành tên khác miễn là bên file nhận tham số này phải trùng với chuỗi bạn đặt ban đầu)
	Bước 2: Bạn copy code vào file functions.php
	add_action("wp_ajax_my_user_vote", "my_user_vote");
	add_action("wp_ajax_nopriv_my_user_vote", "my_must_login");
	 
	function my_user_vote() {
	 	// Kiểm tra xem nếu không có thông báo tạo với tên my_user_vote_nonce thì hãy xuất ra thông báo
	   if ( !wp_verify_nonce( $_REQUEST['nonce'], "my_user_vote_nonce")) {
	      exit("No naughty business please");
	   }   
	 
	   $vote_count = get_post_meta($_REQUEST["post_id"], "votes", true);
	   $vote_count = ($vote_count == '') ? 0 : $vote_count;
	   $new_vote_count = $vote_count + 1;
	 
	   $vote = update_post_meta($_REQUEST["post_id"], "votes", $new_vote_count);
	 
	   if($vote === false) {
	      $result['type'] = "error";
	      $result['vote_count'] = $vote_count;
	   }
	   else {
	      $result['type'] = "success";
	      $result['vote_count'] = $new_vote_count;
	   }
	 	// Nếu truy xuất trực tiếp bằng trình duyệt thực hiện echo $result;
	   if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
	      $result = json_encode($result);
	      echo $result;
	   }
	   else {
	      header("Location: ".$_SERVER["HTTP_REFERER"]);
	   }
	 
	   die();
	 
	}
	 
	function my_must_login() {
	   echo "You must log in to vote";
	   die();
	}

</body>
</html>

Có thể tham thêm khảo ở đây

Last updated

Was this helpful?