Suporte » Plugins » Cookie não funciona dentro da função de um contador de visualização de paginas

  • O codigo funciona normalmente no Local Host, mas na hospedagem não. Notei que o cookie não é gerado na hospedagem apenas nesta função, mas outros cookies de teste funcionam.

    function set_post_views() {
    
    $cookie_content = strtotime(date('Y-m-d'));
    
    $cookie_name = 'view_'.md5($_SERVER['REQUEST_URI']);
    
    $count_key = 'post_views_count';
    
    $count = get_post_meta(get_the_ID(), $count_key, true);
    
    if(is_single() && !isset($_COOKIE[$cookie_name])) {
    	 
    
    wp_update_post(array('ID' => get_the_ID(), 'post_date_gmt' => date("Y:m:d H:is")));
    		
    		
    		
    
    if($count==''){
    			
    $count = 0;
    			
    delete_post_meta(get_the_ID(), $count_key);
    add_post_meta(get_the_ID(), $count_key, '0');
    			
    setcookie($cookie_name, $cookie_content, time()+3600, COOKIEPATH, COOKIE_DOMAIN );  } 
    
    else{
    $count++;
    update_post_meta(get_the_ID(), $count_key, $count);
    			
    setcookie($cookie_name, $cookie_content, time()+3600, COOKIEPATH, COOKIE_DOMAIN );  } } }
    
    add_action( 'wp_head', 'set_post_views');
Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Porque você está usando delete_poat_meta e add_post_meta ao invés de só update_post_meta?

    Usa uma variável para pegar o valor de setcookie e dá um var_dump.na variável.

    O setcookie não pode ser chamado no wp_head pq não pode ter nenhum output antes dele. Troca pelo init.

    Em vez de você usar init ou wp_head user só wp se você não precisasse verificar se a página é a single o init funcionaria o init é rápido wp_head dá erro headers already sent by
    Então o certo é você usar wp Veja WP no codex

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • O tópico ‘Cookie não funciona dentro da função de um contador de visualização de paginas’ está fechado para novas respostas.