Membatasi Pengiriman Tiket oleh Email yang Sama dalam N Hari Terakhir di osTicket

Sebagai Administrator di Sistem osTicket, suatu ketika Anda dapat membatasi tiket yang dikirim oleh pengguna menggunakan email yang sama dalam periode waktu tertentu. Sebagai contoh, Anda ingin membatasi hanya 3 tiket yang dapat dikirim oleh seorang pengguna (dideteksi dari emailnya) dalam waktu satu bulan terakhir. Ketika kondisi ini terpenuhi, maka Sistem osTicket akan menampilkan pesan seperti: “Anda tidak diijinkan mengirim tiket karena Anda sudah pernah mengirim 3 tiket dalam 30 hari terakhir!”, dan setelah itu, sistem akan langsung menolak tiket yang sedang akan dikirim oleh pengguna tadi. Untuk itu, inilah solusi yang berhasil saya buat.

  1. Buka file \include\class.ticket.php, dan cari kode ini:

    1152
    1153
    
            //Any error above is fatal.
            if($errors) { return 0; }

    sebelum baris pertama dari cuplikan kode di atas, tambahkan kode berikut ini:

    1151
    1152
    1153
    1154
    1155
    1156
    1157
    1158
    
      $sqllimit='SELECT email FROM '.TICKET_TABLE.'
                 WHERE 30 >= TIMESTAMPDIFF(DAY,created,NOW()) 
                 AND email='.db_input($var['email']).'';
      $reslimit=db_query($sqllimit);
      // Batasi hanya 3 tiket yang dapat dikirim dalam waktu 30 hari terakhir
      if (db_num_rows($reslimit) >= 3) {
          $errors['err'] = 'Anda tidak diijinkan mengirim tiket karena Anda sudah pernah mengirim 3 tiket dalam 30 hari terakhir!';
      }

Jika Anda ingin mengganti periode hari tadi (misalnya Anda ingin mengganti dari 30 hari menjadi satu minggu), maka Anda dapat menggantinya dari kode di atas pada bagian yang ini:

WHERE 30 >= TIMESTAMPDIFF(DAY,created,NOW())

menjadi:

WHERE 7 >= TIMESTAMPDIFF(DAY,created,NOW())

Dan jangan lupa pula untuk menyesuaikan pesan di atas yang akan ditampilkan ke klien Anda. :-)

Share

263 kali dibacaCetak Artikel Ini Cetak Artikel Ini

Lacakbalik

  1. [...] being asked to myself regarding the modification on osTicket System I made through this article: Limiting Tickets Sent by Same Email Within The Last N Days in osTicket. That request was about send email to user when the limit tickets is reached and the last ticket is [...]

Utarakan pikiran Anda

*


*