Cron & Troubleshooting
Memeriksa scheduler, status worker, invoice ganda, notifikasi, dan masalah checkout Renewal.
Pemeriksaan Aman
Perintah berikut hanya membaca data dan tidak membuat order baru.
Cek event Renewal
Event normal dijadwalkan setiap satu jam.
Cek status worker terakhir
Status yang mungkin muncul:
running— worker sedang berjalan;completed— eksekusi selesai;skipped-locked— eksekusi dilewati karena worker lain masih memegang lock;failed— terjadi error; periksa fielderrordan log Sejoli.
Cek lock worker
Lock mencegah worker addon dan proses upstream berjalan bersamaan. Lock mempunyai stale recovery sekitar 30 menit.
Event Renewal Tidak Ada
Periksa hal berikut:
- Plugin Sejoli dan Addon Sejoli Renewal aktif.
- Lisensi Renewal valid.
- WordPress dapat menyelesaikan proses bootstrap tanpa fatal error.
- Muat satu halaman WordPress; addon akan menjadwalkan ulang event yang hilang.
- Jalankan kembali pemeriksaan event.
Jika DISABLE_WP_CRON bernilai true, pastikan cron server benar-benar memanggil wp-cron.php.
Event Selalu now
Status now berarti event sudah jatuh tempo. Jika terus tertahan:
- pastikan server cron berjalan;
- periksa proses PHP yang macet;
- periksa fatal error pada log PHP/WordPress;
- periksa apakah cron lain memenuhi queue;
- hindari menghapus seluruh option
cronsebagai langkah pertama.
Mengganti option cron menjadi nama lain akan menghapus seluruh jadwal aktif WordPress untuk sementara. Semua plugin belum tentu menjadwalkan ulang event dengan cara yang sama, sehingga tindakan tersebut berisiko menghilangkan pekerjaan terjadwal lain.
Banyak Event Reminder
Hook sejoli/reminder/check dan sejoli/reminder/send berasal dari sistem reminder Sejoli, bukan event worker Renewal itu sendiri.
Addon Renewal membantu:
- menghapus reminder untuk siklus yang sudah berhasil diperpanjang;
- menghapus reminder recurring yang sudah melewati grace period sebelum dikirim.
Jika jumlah event tetap tidak wajar, audit sumber pendaftaran event di Sejoli dan data reminder; jangan hanya berulang kali mereset option cron.
Status Dry-run Tidak Sesuai Toggle
Jika Buat Invoice Renewal Otomatis terlihat dicentang tetapi ringkasan masih menampilkan Fitur tidak aktif, lakukan hard refresh agar browser memuat JavaScript addon terbaru. Ubah checkbox sekali lagi dan pastikan hasil dry-run diperbarui otomatis.
Invoice Tidak Dibuat Otomatis
Periksa:
- Buat Invoice Renewal Otomatis aktif atau produk memilih Aktif;
- Emergency Pause tidak aktif;
- order awal dibuat pada atau setelah tanggal cutoff;
- subscription sudah expired tetapi belum melewati grace period;
- produk dan order asal masih tersedia;
- gateway yang dipilih valid;
- belum ada order renewal untuk siklus yang sama;
- status worker terakhir bukan
failedatauskipped-lockedberkepanjangan.
Cari event log seperti:
Alasan auto-renewal-skip dapat berupa auto-renewal-disabled, subscription-not-expired, renewal-window-expired, atau renewal-order-exists.
Invoice Lama Tiba-Tiba Dibuat
Segera lakukan:
- Aktifkan Emergency Pause — Hentikan Worker Sementara.
- Jangan menjalankan worker secara manual.
- Periksa cutoff, grace period global, dan grace period per produk.
- Periksa jumlah kandidat dan rincian pengecualian pada dry-run.
- Audit invoice yang sudah dibuat sebelum mengirim pembatalan atau notifikasi koreksi.
- Setelah konfigurasi benar, lepaskan emergency pause.
Notifikasi Renewal Tidak Terkirim
Periksa:
- kanal email/WhatsApp aktif pada Order Renewal;
- gateway notifikasi Sejoli berfungsi;
- lisensi Renewal valid saat order dibuat;
- order dikenali sebagai renewal;
- log
renewal-notificationuntuk statussentataufailed.
Addon menyimpan status pengiriman pada metadata order agar trigger yang sama tidak dikirim berulang kali.
Member Menerima Notifikasi On-Hold Biasa
Versi terbaru mempunyai dua lapis perlindungan untuk menahan notifikasi on-hold pada order renewal. Jika masalah muncul:
- Pastikan addon menggunakan versi terbaru.
- Pastikan file plugin lengkap dan tidak ada class yang gagal dimuat.
- Periksa log
renewal-on-hold-filter. - Lihat nilai
is_renewaldandecision; order renewal seharusnya menghasilkandecision: block.
Checkout Renewal Tidak Bisa Dibuka
Pesan umum dan artinya:
Pastikan halaman member memakai shortcode:
WP-CLI Menampilkan Warning HTTP_HOST
Warning Undefined array key HTTP_HOST atau SERVER_ADDR biasanya berasal dari kode situs/plugin yang menganggap proses selalu berjalan melalui web server. Warning ini tidak selalu berarti cron gagal, tetapi dapat merusak output JSON WP-CLI.
Untuk diagnosis, perbaiki kode terkait agar aman di konteks CLI atau definisikan environment yang sesuai pada wrapper WP-CLI. Jangan menyembunyikan fatal error hanya dengan memotong output.
Last updated Aug 15, 2026