Cliques do link de conta WordPress pelo endereço IP

Estou construindo o site do WordPress, que terá uma opção para baixar o arquivo zip de determinado tipo de postagem personalizado. Ao clicar no botão de download, o usuário começa automaticamente com o download do arquivo zip.

download 

Meu objective é exibir o número de downloads ao lado do mesmo botão. Até agora, tudo está funcionando bem, exceto o fato de que eu posso desencadear inúmeras vezes no contador.

Em vez disso, gostaria que o contador só pudesse ser executado uma vez pelo usuário exclusivo. Estou assumindo que isso tem que fazer algo com o endereço IP dos usuários, mas meu conhecimento de PHP, SQL e ajax é extremamente pobre.

Aqui está o script que eu encontrei: (também foi postado aqui )

 ID ) ) { ?>  jQuery(function ($) { var ajax_options = { action: 'link_click_counter', nonce: 'ID ); ?>', ajaxurl: '', post_id: 'ID; ?>' }; $( '#countable_link' ).on( 'click ', function() { var self = $( this ); $.post( ajax_options.ajaxurl, ajax_options, function() { window.location.href = self.attr( "href" ); }); return false; }); });   

Quando eu coloco esse trecho no meu arquivo functions.php, ele gera o valor do campo personalizado com o número exato de cliques. Seria ótimo se esses números fossem mais realistas. Por exemplo, se ele mostrar valor de 350, as pessoas realmente gostariam de saber que 350 usuários diferentes baixaram o conteúdo.

Sou grato por qualquer solução ao lado de usar plugins adicionais. Se de alguma forma pode ser incorporado a este trecho, ele acabará por encerrar um círculo perfeito para mim.

Obrigado,

Solutions Collecting From Web of "Cliques do link de conta WordPress pelo endereço IP"

O que você faria se o usuário usar um proxy e aleatorizar seu endereço de IP? Existem inúmeros plugins do navegador para simplificar isso com um clique de um botão para baixar várias vezes. O mesmo vale para os cookies. Além disso, você está tentando coletar dados que permitem identificar usuários, o que é ilegal em muitos países.

O que (poderia) funcionar muito melhor é um hash descartable que você adiciona como metadados de publicação. Exemplo que adiciona um hash durante a publicação de uma postagem – neste caso, a data de publicação hasd md5 como carimbo de hora do UNIX:

 add_action( 'draft_to_publish', function( \WP_Post $post ) { add_post_meta( $post->ID, 'download_hash', md5( date( 'U', $post->post_date ), true ); } ); 

(Você pode construir seu hash como quiser).

Então, quando um usuário baixa um arquivo, basta configurar um meta valor do usuário com esse hash como chave e um valor de 1 / true / foo . Após o download, você verifica se o download_hash atual já é um meta valor do usuário e, em seguida, pode negar o download.

Para implementar um contador, você simplesmente adicionaria outro valor de meta do anexo chamado download_users onde você salvou uma série de IDs de usuário. Feito.