woocommerce_purchase_note_order_statuses

TokoDaring.Com – Panduan Lengkap Hook woocommerce_purchase_note_order_statuses di WooCommerce.

Panduan Lengkap Hook woocommerce_purchase_note_order_statuses di WooCommerce

WooCommerce menyediakan banyak hook yang membantu developer melakukan kustomisasi fitur toko online tanpa harus mengubah file inti plugin. Salah satu hook yang cukup penting tetapi sering kurang diperhatikan adalah woocommerce_purchase_note_order_statuses. Hook ini digunakan untuk mengatur status pesanan yang diperbolehkan menampilkan purchase note atau catatan pembelian kepada pelanggan. Fitur ini sangat berguna dalam pengelolaan produk digital, instruksi pengiriman, lisensi produk, maupun informasi tambahan setelah transaksi selesai.

Bagi pemilik toko online, purchase note dapat menjadi alat komunikasi yang efektif untuk meningkatkan pengalaman pelanggan setelah pembelian. Sementara bagi developer WooCommerce, hook woocommerce_purchase_note_order_statuses memberikan fleksibilitas tinggi dalam menentukan kapan catatan pembelian harus muncul berdasarkan status order tertentu. Artikel ini akan membahas cara kerja hook tersebut, implementasi teknis, optimasi penggunaan, contoh kode, hingga praktik terbaik agar kompatibel dengan berbagai tema dan plugin WooCommerce modern.

Mengenal Hook woocommerce_purchase_note_order_statuses

Hook woocommerce_purchase_note_order_statuses adalah filter hook WooCommerce yang digunakan untuk menentukan status order mana saja yang diizinkan menampilkan purchase note kepada pelanggan. Secara default, WooCommerce biasanya menampilkan purchase note ketika pesanan telah mencapai status tertentu seperti completed atau processing.

Purchase note sendiri merupakan catatan tambahan yang dapat ditambahkan pada setiap produk WooCommerce. Catatan ini biasanya digunakan untuk memberikan instruksi penggunaan produk, link download, informasi garansi, detail lisensi, atau informasi penting lainnya setelah pelanggan melakukan pembelian.

Berikut contoh dasar penggunaan hook woocommerce_purchase_note_order_statuses untuk menambahkan status custom agar purchase note tetap tampil.

add_filter(
    'woocommerce_purchase_note_order_statuses',
    'custom_purchase_note_statuses'
);

function custom_purchase_note_statuses( $statuses ) {

    $statuses[] = 'on-hold';

    return $statuses;
}

Kode tersebut menambahkan status on-hold ke dalam daftar status order yang dapat menampilkan purchase note. Dengan demikian pelanggan tetap bisa melihat catatan pembelian meskipun pembayaran masih dalam proses verifikasi.

Cara Kerja Hook woocommerce_purchase_note_order_statuses

Ketika pelanggan membuka detail pesanan atau menerima email order WooCommerce, sistem WooCommerce akan memeriksa status order terlebih dahulu. Setelah itu WooCommerce menjalankan filter woocommerce_purchase_note_order_statuses untuk menentukan apakah purchase note boleh ditampilkan atau tidak.

Karena berbentuk filter hook, developer dapat memodifikasi array status order sesuai kebutuhan bisnis. Hal ini sangat berguna untuk toko online yang memiliki alur pembayaran berbeda seperti pembayaran manual, transfer bank, pre order, atau produk digital berbasis langganan.

Berikut contoh implementasi untuk membatasi purchase note hanya pada status tertentu.

add_filter(
    'woocommerce_purchase_note_order_statuses',
    'limit_purchase_note_statuses'
);

function limit_purchase_note_statuses() {

    return array(
        'completed',
        'processing'
    );
}

Kode tersebut memastikan purchase note hanya muncul ketika pesanan berada pada status completed atau processing. Pendekatan seperti ini umum digunakan untuk menjaga keamanan distribusi produk digital.

Developer juga dapat mengombinasikan hook ini dengan sistem membership atau subscription agar purchase note hanya tersedia untuk pelanggan aktif tertentu.

Implementasi Hook woocommerce_purchase_note_order_statuses untuk Produk Digital

Dalam toko online berbasis produk digital, purchase note sering digunakan untuk memberikan link download, kode lisensi, atau instruksi instalasi kepada pelanggan. Karena itu pengaturan status order menjadi sangat penting agar informasi sensitif tidak muncul terlalu cepat sebelum pembayaran dikonfirmasi.

Sebagai contoh, toko yang menjual plugin WordPress premium biasanya hanya menampilkan purchase note ketika pembayaran berhasil diverifikasi. Hal ini membantu mengurangi risiko penyalahgunaan akses download oleh pengguna yang belum menyelesaikan pembayaran.

Berikut contoh implementasi hook untuk produk digital premium.

add_filter(
    'woocommerce_purchase_note_order_statuses',
    'digital_product_purchase_notes'
);

function digital_product_purchase_notes() {

    return array(
        'completed'
    );
}

Kode tersebut memastikan purchase note hanya muncul pada order completed sehingga pelanggan baru dapat mengakses informasi produk setelah transaksi benar benar selesai.

Selain itu, developer juga dapat membuat aturan dinamis berdasarkan jenis produk yang dibeli pelanggan.

add_filter(
    'woocommerce_purchase_note_order_statuses',
    'dynamic_purchase_note_statuses'
);

function dynamic_purchase_note_statuses( $statuses ) {

    if ( is_admin() ) {
        return $statuses;
    }

    $statuses[] = 'processing';

    return $statuses;
}

Pendekatan tersebut membantu menciptakan sistem distribusi produk digital yang lebih fleksibel dan aman.

Optimasi Penggunaan Hook woocommerce_purchase_note_order_statuses

Walaupun hook ini terlihat sederhana, implementasi yang tepat dapat membantu meningkatkan pengalaman pengguna sekaligus efisiensi pengelolaan order WooCommerce. Salah satu strategi terbaik adalah menyesuaikan status purchase note dengan alur bisnis toko online.

Sebagai contoh, toko berbasis preorder sering menggunakan status custom seperti preparing atau awaiting-stock. Dengan hook ini, developer dapat memastikan pelanggan tetap menerima informasi penting selama proses pemesanan berlangsung.

Berikut contoh implementasi dengan custom order status.

add_filter(
    'woocommerce_purchase_note_order_statuses',
    'custom_order_status_purchase_note'
);

function custom_order_status_purchase_note( $statuses ) {

    $statuses[] = 'awaiting-stock';

    return $statuses;
}

Kode tersebut membantu WooCommerce mengenali status custom sebagai status valid untuk menampilkan purchase note.

Selain optimasi alur order, developer juga dapat meningkatkan pengalaman pengguna dengan membuat purchase note lebih informatif dan relevan. Catatan pembelian yang jelas dapat mengurangi jumlah pertanyaan pelanggan dan meningkatkan kepuasan pengguna setelah transaksi.

Berikut contoh penambahan purchase note otomatis pada produk tertentu.

add_action(
    'woocommerce_process_product_meta',
    'custom_product_purchase_note'
);

function custom_product_purchase_note( $post_id ) {

    update_post_meta(
        $post_id,
        '_purchase_note',
        'Terima kasih telah membeli produk ini.'
    );
}

Teknik seperti ini sangat berguna untuk toko online yang menjual produk dengan instruksi penggunaan khusus.

Mengatasi Konflik dan Error pada Hook woocommerce_purchase_note_order_statuses

Dalam pengembangan WooCommerce, konflik plugin dan tema merupakan hal yang cukup umum terjadi. Beberapa plugin payment gateway atau plugin manajemen order sering menggunakan status custom yang belum dikenali WooCommerce secara default.

Jika purchase note tidak muncul meskipun status order sudah sesuai, developer perlu memastikan bahwa status order benar benar terdaftar di WooCommerce. Kesalahan penulisan slug status juga sering menjadi penyebab utama masalah ini.

Berikut contoh validasi status sebelum ditambahkan ke filter.

add_filter(
    'woocommerce_purchase_note_order_statuses',
    'validated_purchase_note_statuses'
);

function validated_purchase_note_statuses( $statuses ) {

    $valid_status = 'processing';

    if ( ! in_array( $valid_status, $statuses ) ) {
        $statuses[] = $valid_status;
    }

    return $statuses;
}

Pendekatan tersebut membantu mencegah duplikasi status dalam array filter WooCommerce.

Developer juga perlu memperhatikan kompatibilitas dengan plugin email WooCommerce custom. Beberapa plugin email pihak ketiga memiliki template sendiri yang dapat mengabaikan purchase note bawaan WooCommerce.

Berikut contoh penggunaan conditional check agar filter hanya berjalan di frontend.

add_filter(
    'woocommerce_purchase_note_order_statuses',
    'frontend_purchase_note_statuses'
);

function frontend_purchase_note_statuses( $statuses ) {

    if ( ! is_admin() ) {
        $statuses[] = 'completed';
    }

    return $statuses;
}

Teknik ini membantu menjaga stabilitas sistem WooCommerce terutama pada website dengan banyak plugin tambahan.

Best Practice Menggunakan Hook woocommerce_purchase_note_order_statuses

Penggunaan hook WooCommerce yang baik harus mempertimbangkan keamanan, kompatibilitas, dan kemudahan maintenance jangka panjang. Salah satu praktik terbaik adalah menempatkan seluruh custom function di child theme atau custom plugin agar tidak hilang ketika tema diperbarui.

Developer juga disarankan menggunakan purchase note hanya untuk informasi penting dan relevan. Hindari menambahkan terlalu banyak teks karena dapat membuat tampilan halaman order maupun email pelanggan menjadi kurang nyaman dibaca.

Berikut contoh implementasi hook dengan sanitasi sederhana.

add_filter(
    'woocommerce_purchase_note_order_statuses',
    'safe_purchase_note_statuses'
);

function safe_purchase_note_statuses( $statuses ) {

    $statuses = array_map(
        'sanitize_text_field',
        $statuses
    );

    return $statuses;
}

Kode tersebut membantu memastikan seluruh data status order tetap aman sebelum diproses WooCommerce.

Praktik terbaik lainnya adalah melakukan pengujian pada berbagai skenario transaksi seperti pembayaran manual, payment gateway otomatis, refund, hingga status custom. Pengujian menyeluruh sangat penting agar purchase note tetap muncul sesuai alur bisnis yang diinginkan.

Ringkasan

Hook woocommerce_purchase_note_order_statuses merupakan filter hook WooCommerce yang digunakan untuk menentukan status order mana saja yang diizinkan menampilkan purchase note kepada pelanggan. Hook ini sangat berguna dalam pengelolaan produk digital, instruksi pembelian, hingga optimasi pengalaman pengguna setelah transaksi selesai. Dengan memahami cara kerja hook, implementasi teknis, optimasi alur bisnis, serta teknik mengatasi konflik plugin dan tema, developer dapat membangun sistem WooCommerce yang lebih fleksibel, aman, dan profesional.

Pertanyaan Umum Tentang Hook woocommerce_purchase_note_order_statuses

Pertanyaan Umum Tentang Hook woocommerce_purchase_note_order_statuses.

Apa fungsi hook woocommerce_purchase_note_order_statuses?

Hook ini digunakan untuk menentukan status order WooCommerce yang diperbolehkan menampilkan purchase note kepada pelanggan.

Apakah hook woocommerce_purchase_note_order_statuses termasuk filter hook?

Ya, hook tersebut merupakan filter hook karena digunakan untuk memodifikasi daftar status order sebelum diproses WooCommerce.

Kapan purchase note biasanya ditampilkan WooCommerce?

Secara default purchase note biasanya muncul ketika order berada pada status processing atau completed tergantung konfigurasi WooCommerce.

Apakah hook ini cocok untuk toko produk digital?

Sangat cocok. Hook ini sering digunakan untuk mengontrol kapan link download atau informasi lisensi dapat diakses pelanggan.

Mengapa purchase note tidak muncul pada order tertentu?

Masalah tersebut biasanya terjadi karena status order belum terdaftar dengan benar, konflik plugin, override template email, atau kesalahan konfigurasi WooCommerce.

Tinggalkan Komentar

Iklan Terkait

Scroll to Top