Visualizzazione risultati 1 fino 5 di 5

Discussione: Cookie si cancella prima

  1. #1
    Guest

    Predefinito Cookie si cancella prima

    Ho questo codice che mette la parola New sulle immagini-anteprime dei nuovi articoli, il cookie è impostato su 30 giorni, però se io aggiorno la home o se clicco un'altra anteprima-articolo anche vecchio, poi ritorno al nuovo articolo e la marcatura New è sparita.
    Non dovrebbe durare 30 giorni?

    Codice PHP:
    /* Codice che marca i nuovi articoli con "New" */
    function wpb_lastvisit_the_title ( $title, $id ) {

    if ( !
    in_the_loop() || is_singular() || get_post_type( $id ) == 'page' ) return $title;

    // if no cookie then just return the title

    if ( !isset($_COOKIE['lastvisit']) || $_COOKIE['lastvisit'] == '' ) return $title;
    $lastvisit = $_COOKIE['lastvisit'];
    $publish_date = get_post_time( 'U', true, $id );
    if (
    $publish_date > $lastvisit) $title .= '<span class="new-article">New</span>';
    return
    $title;

    }

    add_filter( 'the_title', 'wpb_lastvisit_the_title', 10, 2);

    // Set the lastvisit cookie

    function wpb_lastvisit_set_cookie() {

    if (
    is_admin() ) return;
    $current = current_time( 'timestamp', 1);
    setcookie( 'lastvisit', $current, time()+3600*24*30, COOKIEPATH, COOKIE_DOMAIN ); //Dura 30 giorni

    }

    add_action( 'init', 'wpb_lastvisit_set_cookie' );
    CSS
    Codice PHP:
    /* Formatta la parola "New" nelle anteprime dei nuovi articoli */
    .new-article {
    background: #feffdd;
    font-size: 1em;
    font-weight: normal;
    color: #ff0000;
    padding: 3px;
    margin-left: 10px;
    border: 1px solid #eeefd2;
    -webkit-border-radius: 5px;
    -
    moz-border-radius: 5px;
    border-radius: 5px;
    }

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,685

    Predefinito

    Non ho provato il codice, ma dovrebbe rimanere per 30 giorni. Personalmente non ho mai utilizzato quella funzione con i parametri path edomain, ma non credo siano fonte del problema.

    Hai verificato il corretto assegnamento del cookie tramite gli strumenti per sviluppatori del browser?
    Il tuo browser blocca i cookies?

    Ciao!

  3. #3
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    @albenessereblog non ti serve uno scambio tra cliente e server ma solo dal server.. La risposta sta nella domanda su ciò che devi fare... "Ho bisogno di evidenziare i POST che non superano i 30 GG di vita"?
    1)Prelevo la data di creazione del singolo POST
    2)Verifico se non sono passati più di 30 GG dalla creazione del POST all'ora corrente del server.
    3)Modifico la visualizzazione dei POST (far visualizzare la scritta New solo se è vero il punto 2)..
    la funzione setcookie non viene utilizzata correttamente poiché devi esplicare "correttamente" il percorso e il dominio o altrimenti se non specificati saranno per il percorso root e le altre sottocartelle e il dominio corrente (se ricordo bene ciò che fu scritto in precedenza sul manuale php)
    Purtroppo non si tratta di solo codice php ma bensì di codice php abbinato al linguaggio di un'applicazione (per fare qualcosa bisogna conoscere questa applicazione)..
    Visto che si parla di WordPress puoi provare a chiedere direttamente nel forum wordpress.org con i tre punti che ti ho indicato..
    Ps. Funzionamento setcookie preparo l'invio del cookie che forse (l'utente puo decidere di bloccare i cookie dal proprio cliente) sarà re inoltrato dal cliente alla prossima richiesta.
    Ultima modifica di darbula : 13-10-2018 alle ore 00.22.47

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    A prima vista mi sembra che venga utilizzato e condiviso lo stesso cookie per tutti gli articoli. Di conseguenza, cliccando su un articolo qualunque, il cookie viene aggiornato e tutti gli altri articoli non risultano più new.

    I suggerimenti che do più spesso:


  5. #5
    Guest

    Predefinito

    Ho trovato un plugin che fa per me: Mark New Posts

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •