Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress Plugins
Code

Mewujudkan Sistem Pesanan WordPress Custom, Bahagian 4

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Creating a Custom WordPress Messaging System.
Creating a Custom WordPress Messaging System, Part 3

Malay (Melayu) translation by Meyria (you can also view the original English article)

Dalam siri ini, kami telah melihat bagaimana kami boleh melaksanakan satu sistem yang membolehkan kami memformat secara teratur mesej tersuai yang dipaparkan pada halaman pentadbiran yang diberikan di belakang WordPress.

Jika anda telah mengikuti dengan siri ini setakat ini, maka anda tahu:

  • Kami telah meletakkan asas untuk plugin yang digunakan sepanjang siri ini, dan bahkan mengembangkannya sedikit lagi.
  • Kami telah menentukan dan menggunakan cangkuk tersuai yang boleh kita gunakan untuk memberikan mesej tetapan.
  • Kami telah menambah sokongan untuk mesej kejayaan, amaran, dan ralat yang boleh diberikan di bahagian atas halaman tetapan yang diberikan.

Seperti yang dinyatakan dalam tutorial terdahulu:

Tetapi jika anda telah membaca mana-mana tutorial saya yang terdahulu, anda tahu bahawa saya bukan penggemar mempunyai kod pendua. Saya juga peminat mempunyai satu kelas melakukan banyak perkara. Dan, malangnya, itulah yang kita lakukan di sini.

Dan kita akan membincangkannya dalam tutorial akhir ini. Pada akhirnya, kami akan mempunyai penyelesaian refactor lengkap yang menggunakan beberapa prinsip berorientasikan objek perantaraan seperti warisan. Kami juga akan mempunyai beberapa kaedah yang boleh kita gunakan secara program atau yang boleh didaftarkan dengan sistem cangkuk WordPress.

Bermula di Akhir

Pada ketika ini anda perlu tahu apa yang anda perlukan dalam persekitaran pembangunan tempatan anda. Khususnya, anda harus mempunyai perkara berikut:

  • PHP 5.6.25 dan MySQL 5.6.28
  • Apache atau Nginx
  • WordPress 4.6.1
  • IDE atau editor pilihan anda

Saya juga mengesyorkan versi terbaru kod sumber kerana ia akan membolehkan anda berjalan melalui semua perubahan yang akan kami buat. Sekiranya anda tidak memilikinya, tidak mengapa, tetapi saya cadangkan membaca semula tutorial sebelum ini.

Dalam Tutorial Terdahulu

Seperti yang anda mungkin ingat (atau telah dipastikan dari komen di atas), tutorial sebelumnya meninggalkan kami dengan satu kelas yang melakukan kerja yang terlalu banyak.

Salah satu cara untuk mengetahui ini adalah bahawa jika anda menerangkan apa yang dilakukan oleh kelas, anda tidak dapat memberikan satu jawapan. Sebaliknya, anda perlu mengatakan bahawa ia bertanggungjawab untuk menangani mesej kejayaan, mesej amaran, mesej ralat, dan menjadikan mereka semua secara bebas antara satu sama lain.

Dan walaupun anda mungkin membuat kes itu ''mengurus mesej tersuai,'' anda tidak semestinya menggambarkan betapa kasarnya kelas itu. Inilah yang kami harap dapat menyelesaikan dalam tutorial ini.

Dalam Tutorial Akhir

Khususnya, kami akan melihat perkara berikut:

  • mengeluarkan kelas messenger tetapan lama
  • menambah kelas pesanan seting yang lebih umum
  • menambah kelas messenger tetapan untuk berkomunikasi
  • memperkenalkan kaedah yang boleh kita gunakan tanpa WordPress
  • memperkemas cara WordPress memberi mesej

Kami mempunyai pekerjaan kami yang dipotong untuk kami, jadi mari pergi dan mulakan dengan semua perkara di atas.

Refactoring Our Work

Apabila ia membetulkan kerja kita, ia membantu mengetahui dengan tepat apa yang kita mahu buat. Dalam kes kita, kita menyedari bahawa kita mempunyai banyak kod duplikat yang boleh dipeluwap.

Selain itu, kami mempunyai tiga jenis mesej yang diurus dengan cara yang sama dengan cara menyimpannya. Dan dalam hal itu, itu adalah isu atribut kelas HTML.

Oleh itu, kita boleh umumkan kod itu untuk memberi tumpuan kepada type tertentu, dan kita boleh menyatukan banyak kaedah untuk menambah mesej kejayaan atau mendapatkan mesej ralat dengan memperakui kaedah untuk mengenali type tersebut.

Pada akhirnya, kita akan melakukannya. Tetapi pertama, beberapa pengemasan.

1. Keluarkan Messenger Settings Lama

Dalam tutorial sebelumnya, kami telah bekerjasama dengan kelas yang disebut Settings_Messenger. Hingga ke tahap ini, ia telah memenuhi tujuannya, tetapi kami akan menjadi refactoring kelas ini sepanjang baki tutorial ini.

Apabila ia datang kepada jenis refactoring ini, ia mudah untuk memadam kelas dan mula semula. Ada kalanya ia sesuai, tetapi ini bukan salah satu daripada mereka. Sebaliknya, kita akan mengambil kelas dan refactor apa yang sudah ada.

Semua itu dikatakan, jangan padamkan fail dan mulakan dengan yang baru. Sebaliknya, jejak dengan apa yang kami lakukan sepanjang tutorial ini.

2. Kelas Mesej Menetapkan Baharu

Pertama, mari memperkenalkan kelas Settings_Message. Ini mewakili sebarang jenis mesej tetapan yang akan kami tulis. Iaitu, ia akan mengurus mesej sukses, mesej ralat, dan mesej amaran.

Untuk melakukan ini, kami akan menentukan kelas, memperkenalkan satu sifat tunggal, dan kemudian kami akan menyatakannya dalam pembina. Lihat kod ini, dan saya akan menerangkan lebih sedikit di bawah:

Perhatikan bahawa kami telah mencipta atribut peribadi, $mesej. Apabila kelas diterapkan, kami membuat pelbagai multidimensi. Setiap indeks, yang dikenalpasti sama ada oleh kejayaan, kesilapan, atau amaran, merujuk kepada tatasusunannya sendiri yang mana kita akan menyimpan mesej yang sepadan.

Seterusnya, kita perlu dapat menambah mesej, mendapatkan mesej, dan mendapatkan semua mesej. Saya akan membincangkan setiap satu daripadanya dengan lebih terperinci seketika.

Menambah Mesej

Pertama, mari kita melihat bagaimana kami menambah mesej:

Mesej ini mula-mula mengambil rentetan masuk dan membersihkan data. Kemudian ia menyemak untuk melihat apakah ia sudah wujud dalam mesej kejayaan. Jika ya, ia hanya kembali. Lagipun, kami tidak mahu mesej pendua.

Jika tidak, ia menambah mesej ke koleksi.

Mendapatkan Mesej

Mendapatkan semula mesej datang dalam dua bentuk:

  1. memberikan mesej individu mengikut type
  2. memberikan mesej dalam paparan halaman pentadbiran (lengkap dengan sanitasi HTML, dll.)

Ingat, ada kalanya kita hanya mahu memaparkan mesej amaran. Pada masa lain, kami mungkin mahu memaparkan semua mesej. Oleh kerana terdapat dua cara untuk melakukan ini, kita boleh memanfaatkannya dan kemudian memanfaatkannya dalam fungsi lain yang lain.

Bunyi yang membingungkan? Bergantung dengan saya dan saya akan menerangkan semuanya. Bahagian pertama yang akan kita fokuskan ialah cara memberi mesej mengikut type (fikirkan kejayaan, kesilapan, atau amaran). Berikut adalah kod untuk melakukan itu (dan sepatutnya kelihatan biasa):

Perhatikan di sini bahawa kami menggunakan banyak kod yang sama dari tutorial sebelumnya; Walau bagaimanapun, kami umumkannya supaya ia melihat $type yang masuk dan secara dinamik menerapkannya pada markup.

Ini membolehkan kami mempunyai fungsi tunggal untuk menghantar mesej kami. Ini bukan semua. Bagaimana pula dengan masa yang kita mahu mendapatkan semua mesej? Ini boleh dibuat pada halaman atau untuk merebutnya secara pemprograman untuk beberapa pemprosesan lain.

Untuk melakukan ini, kita boleh memperkenalkan fungsi lain:

Mesej ini sepatutnya mudah difahami. Ia hanya melangkaui semua mesej yang kami ada dalam koleksi kami dan memanggil fungsi get_messages yang kami jelaskan di atas.

Ia masih membuat mereka semua bersama-sama (yang akan kita lihat satu kegunaan mereka dalam perlaksanaan cangkuk tersuai sesaat). Sekiranya anda ingin menggunakannya untuk tujuan lain, anda boleh memasukkan hasilnya kepada rentetan dan mengembalikannya kepada pemanggil, atau melaksanakan fungsi programatik yang lain.

Ini adalah satu pelaksanaan.

3. Tetapan Messenger

Itulah untuk kelas Settings_Message yang sebenarnya. Tetapi bagaimana kita berkomunikasi dengannya? Pasti, kita boleh bercakap dengannya secara langsung, tetapi jika ada kelas pertengahan, kita mempunyai kawalan ke atas apa yang dikembalikan kepada kami tanpa menambah lebih banyak tanggungjawab ke kelas Settings_Message, bukan?

Masukkan Settings_Messenger. Kelas ini bertanggungjawab untuk membolehkan kita membaca dan menulis mesej tetapan. Saya fikir satu kes boleh dibuat bahawa anda boleh membahagikan ini ke dalam dua kelas dengan tanggungjawabnya kerana kedua-duanya membaca dan menulis tetapi, seperti seorang utusan yang menghantar dan menerima, itulah tujuan kelas ini.

Persediaan awal kelas adalah mudah.

  • Pembina mewujudkan contoh kelas Settings_Message yang boleh kita gunakan untuk menghantar dan menerima mesej.
  • Ia mengaitkan kaedah dengan tutsplus_settings_messages tersuai kuki kami yang kami tentukan dalam tutorial sebelumnya.

Lihatlah beberapa kaedah pertama:

Ingat dari sebelumnya dalam tutorial ini, kami mempunyai cangkuk yang ditakrifkan dalam pandangan kami yang boleh didapati di settings.php. Untuk kesempurnaan, ia disenaraikan di sini:

Perhatikan, bagaimanapun, bahawa cangkuk ini mengambil kesempatan daripada kaedah get_all_messages yang akan kita semak dalam seketika. Ia tidak perlu menggunakan kaedah ini. Sebaliknya, ia boleh digunakan untuk hanya memberi mesej kejayaan atau kaedah lain yang anda mahu gunakan.

Menambah Mesej

Membuat fungsi untuk menambah mesej adalah mudah kerana fungsi ini memerlukan jenis dan mesej itu sendiri. Ingat, Pengatur_Message menjaga penyucian maklumat supaya kita dapat melewati mesej yang masuk.

Lihat di bawah di mana kami menambah mesej sukses, amaran, dan ralat:

Ia mudah, bukan?

Mendapatkan Mesej

Mendapatkan mesej tidak jauh berbeza kecuali kita hanya perlu menyediakan jenis mesej yang kita mahu ambil:

Selesai dan selesai, bukan?

Tetapi Adakah Anda Menangkap Itu?

Perhatikan bahawa mesej-mesej di atas semua merujuk kepada dua kaedah lain yang belum kita pelajari lagi. Ini adalah mesej peribadi yang membantu kami memudahkan panggilan di atas.

Semak kaedah peribadi berikut yang bertanggungjawab untuk menambah dan mengambil semula mesej terus dari contoh Settings_Message yang dikekalkan pada objek utusan:

Dan itu membungkus kelas Settings_Messenger baru. Semua ini lebih mudah, bukan?

Memulakan Plugin

Ia menimbulkan persoalan, walaupun: Bagaimana kita memulakan plugin sekarang bahawa kita mempunyai semua perubahan ini?

Lihat keseluruhan fungsi di bawah:

Dan itu sahaja.

Beberapa perkara yang perlu diperhatikan:

  • Jika anda tidak memanggil init pada Settings_Messenger, maka anda tidak perlu risau tentang memaparkan mana-mana mesej di halaman tetapan anda.
  • Kod menambah mesej ke Settings_Messenger, tetapi sebenarnya tidak mengambil apa-apa kerana saya menggunakan kaedah init.
  • Sekiranya anda ingin mendapatkan mesej maka anda boleh menggunakan kaedah yang telah kita jelaskan di atas.

Itu sahaja untuk refactoring. Ini tidak akan berfungsi dengan tepat daripada kotak kerana masih ada kod yang diperlukan untuk memuatkan semua fail PHP yang diperlukan untuk mendapatkan plugin berfungsi; Walau bagaimanapun, kod di atas memberi tumpuan kepada refactoring yang menjadi titik keseluruhan tutorial ini.

kesimpulan

Untuk versi kerja penuh tutorial ini dan lengkapkan kod sumber yang berfungsi di luar kotak, sila muat turun kod sumber yang dilampirkan pada siaran ini di bar sisi kanan.

Saya berharap bahawa sepanjang kursus ini anda telah mengambil beberapa kemahiran baru dan cara untuk mendekati pembangunan WordPress. Apabila melihat siri ini, kami telah banyak membincangkan:

  • menu tersuai
  • memperkenalkan halaman pentadbiran
  • pelbagai jenis mesej
  • mentakrifkan dan memanfaatkan cangkuk adat
  • dan refactoring code berorientasikan objek

Seperti biasa, saya juga gembira menjawab soalan melalui komen, dan anda juga boleh menyemak blog saya dan ikuti saya di Twitter. Saya biasanya bercakap tentang perkembangan perisian dalam WordPress dan topik tangen, juga. Sekiranya anda berminat untuk pembangunan WordPress lebih lanjut, jangan lupa untuk menyemak siri dan tutorial saya sebelumnya, dan bahan WordPress lain yang ada di sini di Envato Tuts +.

Sumber

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.