Visualizzazione dei risultati da 1 a 5 su 5

Discussione: php cookie set

  1. #1

    php cookie set

    Buonasera ragazzi,
    volevo chiedervi un aiuto riguardo una riga di codice.

    Ho un plugin in wordpress che assegna il nome al cookie attraverso questa riga:
    const COOKIE_ID = 'mnp_';

    Vorrei poter aggiungere il nome dell'utente logato in quel momento su wp (esiste la funzione get_current_user).
    Ho provato a creare una costante assegnandole il valore get, faccio bene? non funziona
    come aggiungo il valore poi alla stringa 'mnp_'?

    Grazie mille dell'aiuto
    auguro a tutti buona giornata

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, bisognerebbe vedere com'è fatto lo script in generale e come viene richiamato il settggio del cookie.
    Fondamentalmente la tua costante non è altro che la stringa 'mnp_' , pertanto facendo una semplice concatenzione fra costante e nome utente avresti il risultato voluto.
    codice:
    $nomeUtente = wp_get_current_user()->user_login; //o quello che ti serve come da documentazione.
    $nomeCookie = COOKIE_ID . $nomeUtente;
    Quindi nel momento in cui setti il cookie dovresti fare questo.
    Come definire a priopri questa costante dipende appunto da come hai impostato il codice.
    Ad occhio e croce qualcosa sarà da modificare perchè solitamente le costanti non sono da modificare una volta settata. Dato che se tratta di utente loggato, presumo la costante esista ancor prima di essere loggati.

    La soluzione migliore penso sia quella dell'esempio che ti ho scritto visto lo scopo.

  3. #3
    grazie mille marko80 per la risposta.
    Il codice fornito è proprio quello che mi serve, il codice che sto utilizzando però comunque non funziona e non ne comprendo il motivo.
    Il cookie viene creato ma forse non letto successivamente. In pratica a me serve che si controlli la data di creazione del cookie per capire se l'utente è entrato prima di aver pubblicato un articolo. In tal caso viene segnalata la scritta "nuovo" vicino al titolo.
    Mi aiuteresti guardando il codice? grazie mille a prescindere!!

    //Wordpress nuovo post
    function wpb_lastvisit_the_title ( $title, $id ) {

    $utente = wp_get_current_user()->user_login;
    if ( !in_the_loop() || is_singular() || get_post_type( $id ) == 'page' ) return $title;


    // se il cookie non è presente restituisce il titolo
    $lastvisit = $_COOKIE['idutente'.$utente];
    if ( !isset($_COOKIE['idutente'.$utente]) || $_COOKIE['idutente'.$utente] == '' ) return $title;




    $publish_date = get_post_time( 'U', true, $id );
    if ($publish_date > $lastvisit) $title .= '<span class="new-article"> Nuovo!</span>';
    return $title;

    }


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




    // Set the lastvisit cookie


    function wpb_lastvisit_set_cookie() {


    $utente = wp_get_current_user()->user_login;
    if ( is_admin() ) return;
    $current = current_time( 'timestamp', 1);
    setcookie( 'idutente'.$utente, $current-60, time()+60+60*24*7, COOKIEPATH, COOKIE_DOMAIN );
    }


    add_action( 'init', 'wpb_lastvisit_set_cookie' );

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, se puo interessare ci sono plugin fatti apposta per il Last Login o semplicemente con poche righe di codice puoi creare questo
    http://www.wpbeginner.com/plugins/ho...-in-wordpress/

  5. #5
    Ciao marko, sempre molte grazie. A me serve notificare all'utente quali post sono stati pubblicati dall'ultima sua visita per questo mi occorreva quel codice, cercherò ancora. Grazie mille per il supporto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.