• User

    Script per cambiare livello utente

    Salve a tutti, avrei bisogno di uno script per cambiare il livello utente in automatico, quando l'utente ha pagato.

    Ovvero : ho un sito per adulti, ( che utilizza dolphin come cms) ed in romania il 90% degli utenti preferisce pagare tramite SMS. Cosa succede, quando l'utente invia un sms al numero speciale, riceve un codice. Questo codice deve inserirlo in un campo del sito.
    Se il codice e' corretto il suo livello di utente passa da standar a gold.

    La parte dello script di verifica del codice l'ho fatto, se il codice e' corretto ho il messaggio " codice valido" altrimentri " codice invalido".
    Ora pero' non so come fare per gestire il livello di utente, tenendo presente che deve settare anche un lasso di tempo ( 1 mese) di validita'.
    Il sistema ha gia' di base la funzione, utilizzando pero' Paypal, o 2checkout ed altri...

    Se qualcuno mi potesse aiutare ne sarei grato !

    Scusate per il lungo post... Ciao e grazie.


  • Consiglio Direttivo

    Ciao stedracu. 🙂

    Dovresti includere nello script quanto già avviene tramite Paypal, ovvero aggiornare lo stato ed inserire la data di inserimento del codice.

    Non so come sia strutturato il Db, ma credo che andando a vedere i file che gestiscono il ritorno da Paypal a pagamento effettuato dovresti trovare le righe già bell'e pronte da replicare nello script dell'inserimento codice manuale. 😉

    Ipotizzando che sulla tabella user esistano due campi: *status *(dove 1 è standard e 2 è gold) ed un campo *timestatus *(dove memorizzi il timestamp dell'inserimento del codice) uscira fuori una cosa del genere:
    [php]$time=time();
    $sql="UPDATE user SET status='2' AND timestatus='$time'";
    $query=@mysql_query($sql) or die (mysql_error());
    [/php]Ovviamente questo pezzo andrà eseguito solo dopo aver fatto le verifiche del caso. 😉


  • User

    Ciao, grazie per il codice...
    provero' a capirci qualcosa... e' da 4 giorni che ci smanetto... ma non conoscendo il linguaggio.... eh ehe

    Se ne esco lo faro' sapere.

    Ciao.


  • User

    Ciao, son riuscito a farlo funzionare, grazie per l'aiuto...
    Ma avrei ancora una domanda, come faccio a fare :

    se datascadenza e' superiore o uguale a dataodierna, aggiungi a datascadenza 30 giorni, altrimenti aggiungi a data odierna 30 giorni ....

    Esiste un comando per questo confronto ?

    Grazie mille....


  • Consiglio Direttivo

    Si, certo che è possibile. 🙂

    Farai prima una selezione per estrarti il campo datascadenza relativo all'id utente e confrontarlo, appunto con la data :
    [php]$sql="SELECT datascadenza FROM nome_tabella WHERE id='$id'";
    $query=@mysql_query($sql) or die (mysql_error());

    $scad=mysql_result ($query, 0);
    $time=time();

    if ($scad>$time)
    {
    $sql="UPDATE nome_tabella SET datascadenza='".$scad+30."' WHERE id='$id'";
    }
    else
    {
    $sql="UPDATE nome_tabella SET datascadenza='".$time+30."' WHERE id='$id'";
    }
    $query=@mysql_query($sql) or die (mysql_error());
    [/php]:)

    Edit: Sto dando per scontato che le date siano memorizzate in formato timestamp.


  • User

    Ops!


  • User

    Ciao, spulciando qua' e la' ho trovato questa funzione e sembra che vada bene :

    UPDATE ProfileMemLevels SET
    DateExpires = if(DateExpires >= now(), DateExpires + interval 30 day, now() + interval 30 day)
    WHERE ProfileMemLevels.IDMember = $memberID

    Ovviamente ora faro' una serie di prove, sia con questa che con la tua soluzione.

    Grazie comunque per la tua celere risposta.


  • Consiglio Direttivo

    La funzione va benissimo, usa pure quella dato che l'hai già in script. 😉