Mengatasi masalah ongkos kirim (shipping) yang tidak muncul, salah kalkulasi, atau gagal memuat tarif pada WooCommerce memerlukan pendekatan teknis yang sistematis. Inti dari proses debug ini adalah mengaktifkan mode debug bawaan WooCommerce, memantau log API kurir pihak ketiga, serta memverifikasi data zona pengiriman, berat, dan dimensi produk secara presisi.
Kesalahan umum sering terjadi pada pencocokan zona (shipping zones), kesalahan kode pos, atau tidak sinkronnya titik koordinat/alamat yang dimasukkan oleh pembeli dengan aturan yang telah dikonfigurasi di panel administrator WordPress. Berikut adalah tahapan teknis dan kode yang diperlukan untuk melacak dan menyelesaikan masalah tersebut.
Langkah 1: Mengaktifkan Debug Mode dan Log WooCommerce
WooCommerce menyediakan fitur log bawaan untuk melacak respons dari metode pengiriman, terutama yang menggunakan API eksternal seperti JNE, JNT, SiCepat, atau kurir internasional.
- Masuk ke dashboard WordPress, lalu buka menu WooCommerce > Settings > Shipping > Shipping options.
- Pada bagian Debug mode, centang opsi Enable shipping debug mode. Opsi ini akan mencegah WooCommerce menyimpan tarif pengiriman ke dalam cache transient, sehingga setiap perubahan atau pengujian ulang akan langsung mengambil data terbaru dari server kurir.
- Simpan perubahan.
- Untuk melihat log aktivitas, navigasi ke WooCommerce > Status > Logs, lalu pilih file log yang berawalan dengan nama metode pengiriman atau
woocommerce-shipping-.
Tabel Metode dan Alat Debugging Shipping WooCommerce
| Metode Debugging | Fungsi Utama | Lokasi / Tools |
|---|---|---|
| Shipping Debug Mode | Mematikan transient cache tarif pengiriman agar kalkulasi selalu real-time. | WooCommerce > Settings > Shipping > Options |
| WooCommerce Logs | Merekam respons error API, timeout, atau kegagalan parsing JSON dari kurir. | WooCommerce > Status > Logs |
| Query Monitor Plugin | Memeriksa apakah ada konflik plugin, beban database, atau error PHP saat kalkulasi tarif. | Plugin Repository (Query Monitor) |
| WooCommerce Shipping Debug Tool | Menghapus data transient shipping secara manual dari database. | WooCommerce > Status > Tools > Clear shipping zone caches |
Langkah 2: Menggunakan Skrip Kustom untuk Memaksa Log Tambahan
Jika log bawaan tidak mencatat detail yang Anda butuhkan, Anda dapat menyisipkan fungsi PHP kustom melalui plugin Code Snippets atau file functions.php pada child theme untuk mencetak data debug ke dalam file wp-content/debug.log.
add_action( 'woocommerce_package_rates', 'azwinn_debug_shipping_rates', 10, 2 );
function azwinn_debug_shipping_rates( $rates, $package ) {
if ( WP_DEBUG === true ) {
error_log( '--- WOOCAMMERCE SHIPPING DEBUG ---' );
error_log( print_r( $package, true ) );
error_log( 'Calculated Rates: ' . print_r( $rates, true ) );
}
return $rates;
}
Pastikan konstanta WP_DEBUG dan WP_DEBUG_LOG di dalam file wp-config.php Anda bernilai true agar fungsi error_log di atas menuliskan data dengan benar.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Skenario Masalah Umum dan Cara Mengatasinya
Berikut adalah identifikasi masalah yang sering ditemukan saat melakukan debug pada sistem pengiriman WooCommerce:
- Tarif Tidak Muncul (No Shipping Methods Available): Biasanya disebabkan karena alamat pembeli tidak masuk ke dalam cakupan zona pengiriman mana pun yang dibuat di WooCommerce. Pastikan zona pengiriman memiliki wilayah geografis yang valid (negara, provinsi, atau kode pos spesifik).
- Berat Produk Kosong: Banyak plugin kurir memerlukan berat (weight) dan dimensi (length, width, height) yang valid. Jika produk tidak memiliki berat, API kurir sering kali mengembalikan nilai error atau tarif nol.
- Konflik Mata Uang (Currency): Beberapa plugin pengiriman lokal hanya mendukung mata uang Rupiah (IDR). Jika toko menggunakan mata uang lain tanpa konversi yang tepat, kalkulasi API akan gagal.
Langkah 3: Pembersihan Cache Database
WooCommerce menyimpan tarif pengiriman dalam bentuk transient di tabel wp_options untuk mempercepat proses checkout. Jika Anda mengubah tarif atau menambah kota baru tetapi tidak ada perubahan di halaman checkout, lakukan pembersihan cache melalui:
- Buka WooCommerce > Status > Tools.
- Cari tombol Clear shipping zone caches dan klik Clear transients.
- Periksa kembali halaman keranjang (Cart) atau halaman checkout dengan melakukan Hard Refresh (Ctrl + F5 pada Windows atau Cmd + Shift + R pada Mac).