woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD

TokoDaring.Com – Panduan Lengkap Hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD di WooCommerce.

Panduan Lengkap Hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD di WooCommerce

WooCommerce memiliki sistem hook yang sangat fleksibel untuk membantu developer melakukan kustomisasi alur checkout dan pembayaran tanpa harus mengubah file inti plugin. Salah satu hook yang cukup penting dalam proses pembayaran adalah woocommerce_receipt_$order->get_payment_method. Hook ini digunakan untuk menampilkan halaman receipt atau halaman instruksi pembayaran berdasarkan metode pembayaran yang dipilih pelanggan saat checkout.

Bagi pemilik toko online, halaman receipt memiliki peran penting karena menjadi jembatan antara proses checkout dan penyelesaian pembayaran. Sementara bagi developer WooCommerce, hook ini memungkinkan integrasi berbagai sistem pembayaran custom seperti transfer bank, payment gateway lokal, QRIS, virtual account, hingga pembayaran berbasis API pihak ketiga. Artikel ini akan membahas secara mendalam cara kerja hook woocommerce_receipt_$order->get_payment_method, implementasi teknis, optimasi keamanan, contoh kode, hingga praktik terbaik agar kompatibel dengan WooCommerce modern.

Mengenal Hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD

Hook woocommerce_receipt_$order->get_payment_method merupakan dynamic action hook WooCommerce yang dipanggil berdasarkan metode pembayaran yang digunakan pelanggan. Bagian $order->get_payment_method akan otomatis berubah sesuai ID payment gateway yang aktif pada order.

Sebagai contoh, jika pelanggan menggunakan metode pembayaran transfer bank dengan ID gateway bacs, maka WooCommerce akan menjalankan hook berikut:

woocommerce_receipt_bacs

Dynamic hook seperti ini memungkinkan developer membuat halaman receipt yang berbeda untuk setiap metode pembayaran tanpa perlu membuat sistem terpisah. Teknik ini sangat berguna untuk payment gateway custom yang membutuhkan instruksi pembayaran khusus.

Berikut contoh implementasi dasar hook receipt WooCommerce.

add_action(
    'woocommerce_receipt_bacs',
    'custom_bacs_receipt'
);

function custom_bacs_receipt( $order_id ) {

    echo '<p>Silakan lakukan transfer sesuai nominal tagihan.</p>';
}

Kode tersebut menampilkan pesan tambahan pada halaman receipt ketika pelanggan memilih metode pembayaran transfer bank.

Cara Kerja Hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD

Saat pelanggan menyelesaikan checkout WooCommerce, sistem akan membuat order baru lalu mengarahkan pengguna ke halaman pembayaran atau receipt page. Pada tahap tersebut WooCommerce memeriksa metode pembayaran yang dipilih dan menjalankan hook receipt sesuai ID gateway.

Karena hook ini bersifat dinamis, developer dapat membuat logika berbeda untuk setiap metode pembayaran. Hal ini sangat berguna pada website WooCommerce yang menggunakan banyak payment gateway seperti transfer bank, e wallet, kartu kredit, maupun gateway lokal Indonesia.

Berikut contoh implementasi hook untuk metode pembayaran COD.

add_action(
    'woocommerce_receipt_cod',
    'custom_cod_receipt'
);

function custom_cod_receipt( $order_id ) {

    echo '<p>Pembayaran dilakukan saat barang diterima.</p>';
}

Kode tersebut membuat WooCommerce menampilkan instruksi khusus ketika pelanggan memilih pembayaran Cash on Delivery.

Selain menampilkan instruksi pembayaran, hook receipt juga sering digunakan untuk memanggil API eksternal, menghasilkan token pembayaran, atau membuat redirect otomatis ke payment gateway pihak ketiga.

Implementasi Hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD untuk Payment Gateway Custom

Dalam pengembangan WooCommerce tingkat lanjut, hook receipt sering digunakan pada plugin payment gateway custom. Banyak gateway pembayaran membutuhkan proses tambahan setelah checkout seperti pembuatan virtual account, QR code, atau token transaksi.

Sebagai contoh, gateway pembayaran lokal biasanya memerlukan request API untuk menghasilkan nomor virtual account secara otomatis. Proses tersebut dapat dijalankan menggunakan hook receipt WooCommerce.

Berikut contoh implementasi sederhana payment gateway custom.

add_action(
    'woocommerce_receipt_custom_gateway',
    'custom_gateway_receipt_page'
);

function custom_gateway_receipt_page( $order_id ) {

    $order = wc_get_order( $order_id );

    echo '<h2>Instruksi Pembayaran</h2>';

    echo '<p>Nomor order Anda adalah ' . $order->get_order_number() . '</p>';
}

Kode tersebut mengambil data order WooCommerce lalu menampilkan informasi pembayaran tambahan pada halaman receipt.

Developer juga dapat menggunakan hook ini untuk redirect otomatis menuju payment gateway eksternal.

add_action(
    'woocommerce_receipt_custom_gateway',
    'redirect_to_payment_gateway'
);

function redirect_to_payment_gateway( $order_id ) {

    $payment_url = 'https://paymentgateway.com/pay';

    wp_redirect( $payment_url );

    exit;
}

Pendekatan seperti ini umum digunakan pada integrasi payment gateway modern berbasis API.

Optimasi Keamanan pada Hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD

Karena hook receipt berkaitan langsung dengan transaksi pembayaran, aspek keamanan menjadi sangat penting. Developer harus memastikan seluruh data order yang diproses benar benar valid sebelum ditampilkan atau dikirim ke layanan eksternal.

Salah satu praktik keamanan dasar adalah melakukan validasi order sebelum menjalankan logika pembayaran tambahan. Hal ini membantu mencegah akses tidak sah terhadap halaman receipt WooCommerce.

Berikut contoh validasi order sederhana.

add_action(
    'woocommerce_receipt_custom_gateway',
    'secure_receipt_page'
);

function secure_receipt_page( $order_id ) {

    $order = wc_get_order( $order_id );

    if ( ! $order ) {
        return;
    }

    echo '<p>Order berhasil ditemukan.</p>';
}

Kode tersebut memastikan WooCommerce berhasil mengambil object order sebelum memproses data lebih lanjut.

Selain validasi order, developer juga perlu melakukan sanitasi output terutama ketika menampilkan data pelanggan atau parameter pembayaran.

add_action(
    'woocommerce_receipt_custom_gateway',
    'safe_receipt_output'
);

function safe_receipt_output( $order_id ) {

    $order = wc_get_order( $order_id );

    echo '<p>Nomor Order: ' . esc_html( $order->get_order_number() ) . '</p>';
}

Fungsi esc_html() membantu mencegah potensi serangan XSS pada halaman receipt WooCommerce.

Mengatasi Konflik dan Error pada Hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD

Dalam implementasi payment gateway custom, konflik plugin dan kesalahan redirect sering menjadi masalah umum. Salah satu penyebab utama adalah penggunaan hook dengan ID payment gateway yang tidak sesuai.

Developer harus memastikan bahwa ID gateway yang digunakan pada hook sama dengan ID payment gateway yang terdaftar di WooCommerce. Kesalahan kecil seperti typo dapat menyebabkan hook tidak berjalan sama sekali.

Berikut contoh implementasi dengan pengecekan payment method.

add_action(
    'woocommerce_receipt_custom_gateway',
    'validated_payment_method'
);

function validated_payment_method( $order_id ) {

    $order = wc_get_order( $order_id );

    if ( $order->get_payment_method() !== 'custom_gateway' ) {
        return;
    }

    echo '<p>Metode pembayaran valid.</p>';
}

Kode tersebut membantu memastikan logika hanya berjalan untuk payment gateway tertentu.

Selain konflik ID gateway, redirect loop juga sering terjadi ketika developer menggunakan wp_redirect() tanpa validasi yang benar. Pastikan redirect hanya dijalankan satu kali dan gunakan kondisi yang jelas sebelum melakukan redirect ke payment gateway eksternal.

Developer juga perlu menguji kompatibilitas dengan plugin checkout modern seperti WooCommerce Blocks karena beberapa sistem checkout terbaru memiliki alur pembayaran berbeda dibanding checkout klasik WooCommerce.

Best Practice Menggunakan Hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD

Penggunaan hook WooCommerce yang baik harus mempertimbangkan keamanan, performa, dan kemudahan maintenance jangka panjang. Salah satu praktik terbaik adalah menyimpan seluruh integrasi payment gateway di dalam custom plugin agar lebih mudah diperbarui dan dipelihara.

Developer juga disarankan menggunakan logging untuk membantu debugging transaksi pembayaran. Logging sangat penting terutama ketika berhubungan dengan API payment gateway eksternal.

Berikut contoh logging sederhana WooCommerce.

add_action(
    'woocommerce_receipt_custom_gateway',
    'log_receipt_activity'
);

function log_receipt_activity( $order_id ) {

    $logger = wc_get_logger();

    $logger->info(
        'Receipt page accessed for order ' . $order_id,
        array( 'source' => 'custom_gateway' )
    );
}

Kode tersebut membantu developer melacak aktivitas halaman receipt WooCommerce melalui sistem logging bawaan WooCommerce.

Praktik terbaik lainnya adalah menggunakan HTTPS dan API secure token untuk seluruh komunikasi payment gateway. Jangan pernah menyimpan credential API langsung di dalam template atau file frontend WordPress.

Ringkasan

Hook woocommerce_receipt_$order->get_payment_method merupakan dynamic action hook WooCommerce yang digunakan untuk menampilkan halaman receipt berdasarkan metode pembayaran yang dipilih pelanggan. Hook ini sangat penting dalam pengembangan payment gateway custom, integrasi API pembayaran, redirect transaksi, dan tampilan instruksi pembayaran khusus. Dengan memahami cara kerja hook, implementasi teknis, optimasi keamanan, serta teknik mengatasi konflik plugin dan payment gateway, developer dapat membangun sistem pembayaran WooCommerce yang lebih fleksibel, aman, dan profesional.

Pertanyaan Umum Tentang Hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD

Pertanyaan Umum Tentang Hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD.

Apa fungsi hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD?

Hook ini digunakan untuk menampilkan halaman receipt atau instruksi pembayaran berdasarkan metode pembayaran yang dipilih pelanggan di WooCommerce.

Apakah hook woocommerce_receipt_$ORDER->GET_PAYMENT_METHOD termasuk dynamic hook?

Ya. Hook ini merupakan dynamic action hook karena nama hook berubah mengikuti ID payment gateway yang digunakan.

Kapan hook receipt WooCommerce dijalankan?

Hook dijalankan setelah pelanggan menyelesaikan checkout dan diarahkan menuju halaman pembayaran atau receipt page.

Apakah hook ini cocok untuk payment gateway custom?

Sangat cocok. Hook ini sering digunakan untuk integrasi virtual account, QRIS, API pembayaran, dan redirect payment gateway eksternal.

Mengapa hook receipt tidak berjalan pada WooCommerce?

Masalah tersebut biasanya terjadi karena ID payment gateway tidak sesuai, konflik plugin checkout, kesalahan redirect, atau payment gateway belum terdaftar dengan benar di WooCommerce.

Tinggalkan Komentar

Iklan Terkait

Scroll to Top