Cara Menambahkan Halaman Pembayaran Nomor PPN WooCommerce

Diterbitkan: 2020-12-17

Pembayaran Nomor PPN WooCommerce Apakah Anda ingin menambahkan bidang nomor PPN di halaman checkout WooCommerce? WooCommerce tidak memiliki fungsi bawaan untuk menambahkan bidang nomor PPN. Namun, saya telah membuat skrip PHP khusus yang akan menambahkan bidang PPN pada halaman checkout dan halaman akun saya.

Pembayaran Nomor PPN WooCommerce

Menjual produk di Uni Eropa sangat spesifik, terutama karena aspek hukum. Namun, WooCommerce terkadang tidak memperhitungkannya, sehingga perlu menyesuaikan toko dengan kondisi Eropa.

Sangat penting bahwa toko Anda harus mendukung nomor identifikasi PPN untuk menerbitkan faktur. Dalam tutorial ini, Anda akan belajar cara menambahkan kolom PPN di halaman checkout.

Langkah-langkah untuk Menambahkan bidang PPN di Halaman Checkout

Berikut adalah langkah-langkah yang perlu Anda ikuti:

  1. Masuk ke situs WordPress Anda dan akses dasbor sebagai pengguna admin.
  2. Dari menu dasbor, klik Menu Penampilan > Menu Editor Tema . Saat halaman editor tema terbuka, cari file fungsi tema dengan ekstensi functions.php. Buka file fungsi ini untuk menambahkan fungsi untuk menambahkan bidang PPN di halaman checkout.
  3. Tambahkan kode berikut ke file functions.php:
 /***************************** PALING DEPAN ******************* ************************/

/***************************

Filter untuk menambahkan bidang PPN ke:
- Akun Saya - Edit Formulir - Bidang Penagihan
- Checkout - Edit Formulir - Bidang Penagihan
Fungsi ini juga menyusun ulang bidang formulir.
***************************/

fungsi add_woocommerce_billing_fields($billing_fields){

            //pesan ulang woo bidang formulir alamat penagihan saya
            $billing_fields2['billing_first_name'] = $billing_fields['billing_first_name'];
            $billing_fields2['billing_last_name'] = $billing_fields['billing_last_name'];

            $billing_fields2['billing_vat'] = array(
                        'ketik' => 'teks',
                        'label' => __('Nomor PPN', 'keyelp-shop-customization' ),
                        'class' => array('form-baris-lebar'),
                        'wajib' => salah,
                        'jelas' => benar
            );
                
            $merged_billing_fields = $billing_fields2 + $billing_fields;


            kembalikan $merged_billing_fields;

}

add_filter('woocommerce_billing_fields' , 'add_woocommerce_billing_fields');


/*********
Filter untuk menambahkan PPN saat mencetak alamat penagihan pada:
- (1) Akun saya 
- (2) Checkout - Pesanan Diterima (setelah checkout selesai),
+++ Filter tambahan untuk memformat hasil cetak.
********/

// (1) Mencetak Alamat Penagihan di Akun Saya

add_filter( 'woocommerce_my_account_my_address_formatted_address', 'njengah_my_account_my_address_formatted_address', 10, 3 );

function njengah_my_account_my_address_formatted_address( $fields, $customer_id, $type ) {

            if ( $type == 'penagihan' ) {
                        $fields['vat'] = get_user_meta( $customer_id, 'billing_vat', true );
            }
            kembalikan $bidang;
}


// (2) Checkout -- Order Diterima (dicetak setelah menyelesaikan checkout)

add_filter( 'woocommerce_order_formatted_billing_address', 'njengah_add_vat_formatted_billing_address', 10, 2 );

function njengah_add_vat_formatted_billing_address( $fields, $order ) {

            $fields['vat'] = $order->billing_vat;

            kembalikan $bidang;

}



// Membuat variabel PPN penggabungan untuk format pencetakan

add_filter( 'woocommerce_formatted_address_replacements', 'njengah_formatted_address_replacements', 10, 2 );

function njengah_formatted_address_replacements( $address, $args ) {

            $alamat['{vat}'] = '';
            $alamat['{vat_upper}']= '';

            jika ( ! kosong( $args['vat'] ) ) {
                        $address['{vat}'] = $args['vat'];
                        $alamat['{vat_upper}'] = strtoupper($args['vat']);
            }

            kembali $alamat;

}


//Menentukan format Spanyol untuk mencetak alamat, termasuk PPN.

add_filter( 'woocommerce_localisation_address_formats', 'njengah_localisation_address_format' );

function njengah_localisation_address_format( $formats ) {

            $formats['ES'] = "{nama}\n{perusahaan}\n{vat_upper}\n{alamat_1}\n{alamat_2}\n{kode pos} {kota}\n{negara bagian}\n{negara} ";

            kembalikan $format;

}


/***************************** HALAMAN PROFIL PENGGUNA ADMIN **************** ***************************/

/***************

Filter untuk menambahkan bidang meta Pelanggan PPN (bidang profil pengguna pada pengelompokan alamat penagihan)

*****************/

add_filter( 'woocommerce_customer_meta_fields', 'njengah_customer_meta_fields' );

function njengah_customer_meta_fields( $fields ) {

            $fields['billing']['fields']['billing_vat'] = array(

                        'label' => __( 'Nomor PPN', 'njengah' )

            );


            kembalikan $bidang;

}


/*************************** HALAMAN PEMESANAN ADMIN ******************* ************************/


/********* 

Filter untuk menambahkan PPN ke Formulir Edit Pesanan -- Halaman Admin

*********/

add_filter( 'woocommerce_admin_billing_fields', 'njengah_admin_billing_fields' );

function njengah_admin_billing_fields( $fields ) {

            $bidang['vat'] = array(
                        'label' => __( 'Nomor PPN', 'njengah' ),
                        'tunjukkan' => benar
            );

            kembalikan $bidang;

}

/******************

Filter untuk menyalin bidang PPN dari bidang meta Pengguna ke formulir Admin Pesanan (setelah mengklik tombol khusus di halaman admin)

*********************/


add_filter( 'woocommerce_found_customer_details', 'njengah_found_customer_details');

function njengah_found_customer_details( $customer_data ) {

            $customer_data['billing_vat'] = get_user_meta( $_POST['user_id'], 'billing_vat', true );

            kembalikan $data_pelanggan;

}
  1. Ini adalah hasil di ujung depan: kolom pembayaran PPN
  2. Ini adalah hasil di sisi admin: nomor PPN

Kesimpulan

Singkatnya, Anda telah mempelajari cara menambahkan bidang checkout nomor PPN di halaman checkout WooCommerce. Saya sarankan menambahkan potongan kode pada file functions.php dari tema anak Anda sehingga perubahan yang Anda buat tidak akan hilang selama pembaruan. Cuplikan kode secara otomatis menampilkan Nomor PPN pada faktur yang diterbitkan.

Artikel Serupa