Pelajaran Teratas yang Dipetik Saat Mengoptimalkan WordPress (Untuk Kesuksesan Pelanggan)

Diterbitkan: 2022-09-15
Daftar Isi sembunyikan
1. Apa yang mendorong saya untuk berbicara di WordCamp Mumbai?
2. Tiga masalah yang membuat saya tidak bisa tidur (Dengan Solusi & Pelajaran Dari Mereka)
2.1. Mengurangi waktu buka halaman dari 3 menit menjadi milidetik…
2.1.1. Masalah
2.1.2. Larutan
2.1.3. Meningkatkan solusi
2.2. Bagaimana kesalahan batas waktu menjadi fitur terlaris dari plugin kami?
2.2.1. Masalah
2.2.2. Larutan
2.2.3. Meningkatkan solusi
2.3. Bagaimana lingkungan hosting bersama memaksa kami untuk menulis ulang plugin kami?
2.3.1. Masalah
2.3.2. Larutan
3. Ringkasan pelajaran
4. Apa pilihanmu?

Kapan terakhir kali Anda memiliki momen cloud sembilan?

Lulus sekolah dengan gemilang.. atau saat pacar/pacarmu menerima lamaranmu?

Saya memiliki awan sembilan saat dua minggu lalu! Saya berbicara di WordCamp Mumbai 2017 – WordCamp terbesar di India.

Topiknya adalah sesuatu yang dekat dengan hati saya, dan sesuatu yang saya tangani setiap hari – pelajaran yang didapat dari mengoptimalkan WordPress untuk kesuksesan pelanggan.

Ini tentang masalah yang saya hadapi saat berurusan dengan database WordPress yang besar dan bagaimana saya menanganinya.

Apa yang mendorong saya untuk berbicara di WordCamp Mumbai?

Mengembangkan plugin WordPress adalah pengalaman belajar yang luar biasa. Anda dapat memperluas kerangka kerja yang luar biasa, fokus pada penulisan kode yang memecahkan masalah pelanggan dan bekerja dengan anggota tim yang hebat.

Di StoreApps, pengembang tidak hanya menulis kode, tetapi juga mendukung pelanggan. Menyelesaikan pertanyaan pelanggan telah memberi saya beberapa pelajaran terbesar.

Jadi semua itu adalah rutinitas harian saya, dan itu cukup mengasyikkan.

Tapi tahukah Anda apa yang lebih menarik bagi saya? Bekerja dengan database besar dan memecahkan masalah database yang kompleks!

Plugin kami digunakan oleh lebih dari 35000 pengguna. Dan saya telah melihat banyak tantangan bekerja dengan toko WooCommerce besar dan situs WordPress populer.

Syukurlah, saya bisa mengatasi tantangan ini dan belajar banyak.

Tapi tunggu, seperti saya, akan ada ratusan pengembang lain yang menghadapi masalah serupa yang bekerja dengan WordPress dan WooCommerce.

Jadi saya memutuskan untuk berbagi pelajaran saya dengan orang lain.

Dan platform apa yang lebih baik daripada kesempatan berbicara di WordCamp terbesar di India!

Tiga masalah yang membuat saya tidak bisa tidur (Dengan Solusi & Pelajaran yang Dipetik Dari Mereka)

Akhirnya, inilah tiga masalah yang saya bicarakan. Jadi mari kita mulai dengan mereka satu per satu.

Mengurangi waktu buka halaman dari 3 menit menjadi milidetik…

Masalah

Saya menghadapi situasi dengan plugin Smart Coupons di mana fungsi sederhana menampilkan kupon di halaman penting toko (yaitu halaman keranjang, checkout & akun saya) menghentikan proses checkout.

Kupon Cerdas adalah plugin untuk membuat dan menangani kupon dan sertifikat hadiah secara massal untuk toko WooCommerce.

Larutan

Sekarang, menggunakan WP Query akan menghasilkan banyak GABUNG karena untuk menunjukkan kupon yang tersedia untuk pengguna tertentu memerlukan beberapa kondisi meta untuk dievaluasi.

Jadi, alih-alih menggunakan cara ideal untuk mengkueri basis data yaitu WP Query, saya menulis kueri SQL khusus .

Mengoptimalkan WordPress
Kode Lama Kupon Cerdas

Juga, dalam kueri khusus, yang saya lakukan adalah:

  • Alih-alih memeriksa semua kondisi meta dalam satu permintaan MySQL, saya hanya mengevaluasi kondisi meta pertama
  • Setelah itu, saya menyimpan daftar post_id (id kupon) yang dipisahkan koma di tabel opsi
  • Dan kemudian, saya cukup memetakan set post_id yang sama dengan mengevaluasi masing-masing kondisi meta lainnya

Ini saya lakukan sampai saya mendapatkan set post_ids terakhir yang perlu ditampilkan untuk pengguna tertentu.

Mengoptimalkan WordPress
Kupon Cerdas Kode Baru

Meningkatkan solusi

Ini memang memecahkan masalah pemuatan halaman. Namun, untuk mendapatkan pemuatan halaman di bawah milidetik, seperti yang disarankan oleh teman kami, saya harus mendefinisikan ulang masalahnya.

Alih-alih menampilkan semua kupon yang memenuhi syarat pengguna,
Saya menetapkan batas jumlah kupon yang akan ditampilkan kepada pengguna di halaman keranjang & checkout.

Bagaimana kesalahan batas waktu menjadi fitur terlaris dari plugin kami?

Masalah

Untuk memproses pembaruan basis data yang sangat besar, saya telah menulis kueri khusus karena menggunakan fungsi inti WordPress mungkin akan menjadi overhead yang besar.

Contoh: Jika seseorang harus menurunkan harga semua produk di tokonya sebesar 40%, maka mereka hanya perlu memilih 'Harga', 'turunkan sebesar 40%' dan tekan tombol perbarui. Ini mudah dimungkinkan menggunakan plugin Smart Manager kami, yang dirancang untuk membuat pembaruan massal di toko WooCommerce Anda lebih mudah.

Tetapi, proses pembaruan batch mulai terhenti dan memberikan kesalahan waktu habis setiap kali ada yang mencoba memperbarui 1k produk atau seluruh toko sekaligus .

Awalnya saya mulai melihat mengoptimalkan kueri tetapi itu tidak membantu.

Situasi saya mirip dengan kontestan Kastil Takeshi. Tidak peduli berapa banyak saya mencoba, saya terus jatuh ke dalam air.

Mengoptimalkan WordPress

Larutan

Dikatakan bahwa terkadang Anda harus keluar dari masalah dan melihat sekilas masalah untuk menemukan penyebab pastinya.

Saya melakukan hal yang sama dan menemukan bahwa masalah sebenarnya adalah
tidak pada tingkat permintaan tetapi pada tingkat permintaan .

Jadi, yang saya lakukan adalah alih-alih satu permintaan melakukan semua pembaruan, saya memecah hal yang sama menjadi beberapa panggilan AJAX berturut-turut yang melakukan pembaruan dalam batch yang lebih kecil dan yang sepenuhnya menghilangkan kesalahan batas waktu.

Mengoptimalkan WordPress
Permintaan Ajax Pembaruan Batch Manajer Cerdas

Meningkatkan solusi

Sekarang, pendekatan memecah satu permintaan menjadi beberapa permintaan AJAX yang lebih kecil ini tidak hanya memecahkan kesalahan batas waktu tetapi juga meningkatkan pembaruan batch UX .

Sekarang manajer toko sedang diperbarui tentang kemajuan pembaruan yang hanya meningkatkan kepercayaan mereka pada produk.

Juga, pendekatan yang sama telah memungkinkan Smart Manager untuk menangani pembaruan batch untuk toko WooCommerce dalam bentuk dan ukuran apa pun dan menjadikan Smart Manager menjadi salah satu plugin terlaris di StoreApps.

Bagaimana lingkungan hosting bersama memaksa kami untuk menulis ulang plugin kami?

Masalah

Untuk plugin pelaporan apa pun, sangat penting untuk tidak hanya memberikan pelaporan statistik yang akurat tetapi juga cepat. Sekarang, mendapatkan statistik pelaporan memerlukan beberapa kueri yang melibatkan penggabungan 2 tabel WordPress utama yaitu posting dan postmeta.

Mengoptimalkan WordPress
Posting WordPress Postmeta ERD

Seperti yang sudah terlihat di atas, JOIN sangat mahal .

Di Smart Reporter (solusi pelaporan kami untuk WooCommerce), kami menampilkan 20 statistik pelaporan yang berbeda dalam satu tampilan halaman dan itu juga saat memuat halaman.

Larutan

Jadi, saya mengikuti pendekatan yang sama seperti kebanyakan solusi pelaporan yang mengikuti yang membuat tabel ringkasan yaitu tabel kustom struktur datar.

Tabel ini akan berisi ringkasan semua data yang diperlukan oleh plugin dan dengan demikian menghilangkan penggunaan gabungan dan meningkatkan waktu pemuatan halaman.

Mengoptimalkan WordPress
Tabel Ringkasan Reporter Cerdas

Selain itu, untuk menjaga agar tabel ringkasan ini tetap diperbarui, kami menggunakan tindakan dan filter WordPress.

Ringkasan pelajaran

  • Ikuti praktik terbaik sebanyak mungkin
  • Tidak ada pertanyaan dalam lingkaran
  • Hindari gabungan kompleks yang besar
  • Lakukan lebih banyak di tingkat MySQL daripada di tingkat PHP
  • Masuk lebih dalam dalam kode
  • Tabel Ringkasan / Kustom / Temp
  • Perhatian pada UX – daya tanggap, notifikasi…
  • Apakah Anda memecahkan masalah yang tepat?

Apa pilihanmu?

Saya yakin Anda telah menangani beberapa masalah besar dan menemukan solusi untuk itu. Beri tahu kami tentang hal itu di bagian komentar kami di bawah. Itu akan sangat berharga bagi para pembaca.