วิธีเพิ่มหน้าชำระเงินหมายเลข VAT ของ WooCommerce

เผยแพร่แล้ว: 2020-12-17

WooCommerce หมายเลข VAT ชำระเงิน คุณต้องการเพิ่มฟิลด์หมายเลข VAT ในหน้าชำระเงิน WooCommerce หรือไม่? WooCommerce ไม่มีฟังก์ชันในตัวเพื่อเพิ่มฟิลด์หมายเลข VAT อย่างไรก็ตาม ฉันได้สร้างสคริปต์ PHP แบบกำหนดเองซึ่งจะเพิ่มฟิลด์ภาษีมูลค่าเพิ่มในหน้าชำระเงินและหน้าบัญชีของฉัน

WooCommerce หมายเลข VAT ชำระเงิน

การขายสินค้าในสหภาพยุโรปมีความเฉพาะเจาะจงมาก ส่วนใหญ่เป็นเพราะแง่มุมทางกฎหมาย อย่างไรก็ตาม บางครั้ง WooCommerce ไม่ได้คำนึงถึงเรื่องนี้ ดังนั้นจึงจำเป็นต้องปรับร้านค้าให้เข้ากับเงื่อนไขของยุโรป

ร้านค้าของคุณควรสนับสนุนหมายเลขประจำตัวผู้เสียภาษีมูลค่าเพิ่มสำหรับการออกใบแจ้งหนี้ ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีเพิ่มฟิลด์ภาษีมูลค่าเพิ่มในหน้าชำระเงิน

ขั้นตอนในการเพิ่มฟิลด์ภาษีมูลค่าเพิ่มในหน้าชำระเงิน

นี่คือขั้นตอนที่คุณต้องปฏิบัติตาม:

  1. ลงชื่อเข้าใช้ไซต์ WordPress ของคุณและเข้าถึงแดชบอร์ดในฐานะผู้ดูแลระบบ
  2. จากเมนูแดชบอร์ด ให้คลิกที่ เมนูลักษณะที่ปรากฏ > เมนูตัวแก้ไขธีม เมื่อหน้าแก้ไขธีมเปิดขึ้น ให้มองหาไฟล์ฟังก์ชันของธีมที่มีนามสกุล functions.php เปิดไฟล์ฟังก์ชันนี้เพื่อเพิ่มฟังก์ชันเพื่อเพิ่มฟิลด์ VAT ในหน้าการชำระเงิน
  3. เพิ่มรหัสต่อไปนี้ในไฟล์ functions.php:
 /************************************ ด้านหน้า ******************* *********************/

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

กรองเพื่อเพิ่มฟิลด์ VAT ไปที่:
- บัญชีของฉัน - แก้ไขแบบฟอร์ม - ฟิลด์การเรียกเก็บเงิน
- ชำระเงิน - แก้ไขแบบฟอร์ม - ฟิลด์การเรียกเก็บเงิน
ฟังก์ชันนี้ยังจัดลำดับฟิลด์แบบฟอร์มใหม่อีกด้วย
*********************************/

ฟังก์ชัน add_woocommerce_billing_fields($billing_fields){

            //เรียงลำดับใหม่ woo ฟิลด์แบบฟอร์มที่อยู่สำหรับเรียกเก็บเงินของฉัน
            $billing_fields2['billing_first_name'] = $billing_fields['billing_first_name'];
            $billing_fields2['billing_last_name'] = $billing_fields['billing_last_name'];

            $billing_fields2['billing_vat'] = อาร์เรย์ (
                        'type' => 'ข้อความ',
                        'label' => __('หมายเลขภาษีมูลค่าเพิ่ม', 'keyelp-shop-customization' ),
                        'class' => array('form-row-wide'),
                        'จำเป็น' => เท็จ
                        'ชัดเจน' => จริง
            );
                
            $merged_billing_fields = $billing_fields2 + $billing_fields;


            ส่งคืน $merged_billing_fields;

}

add_filter('woocommerce_billing_fields' , 'add_woocommerce_billing_fields');


/************
ตัวกรองเพื่อเพิ่มภาษีมูลค่าเพิ่มเมื่อพิมพ์ที่อยู่สำหรับการเรียกเก็บเงินเมื่อ:
- (1) บัญชีของฉัน 
- (2) ชำระเงิน - ได้รับคำสั่งซื้อแล้ว (หลังจากชำระเงินเสร็จสิ้น)
+++ ตัวกรองเพิ่มเติมเพื่อจัดรูปแบบผลงานพิมพ์
********/

// (1) พิมพ์ที่อยู่สำหรับการเรียกเก็บเงินในบัญชีของฉัน

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

ฟังก์ชั่น njengah_my_account_my_address_formatted_address (ฟิลด์ $, $customer_id, $type) {

            if ( $type == 'การเรียกเก็บเงิน') {
                        $fields['vat'] = get_user_meta( $customer_id, 'billing_vat', จริง);
            }
            ส่งคืนฟิลด์ $;
}


// (2) ชำระเงิน - ได้รับคำสั่งซื้อแล้ว (พิมพ์หลังจากชำระเงินเรียบร้อยแล้ว)

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

ฟังก์ชั่น njengah_add_vat_formatted_billing_address (ฟิลด์ $, $order) {

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

            ส่งคืนฟิลด์ $;

}



// การสร้างตัวแปร VAT การควบรวมกิจการสำหรับการจัดรูปแบบการพิมพ์

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

ฟังก์ชั่น njengah_formatted_address_replacements ( ที่อยู่ $, $args ) {

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

            if ( ! empty( $args['vat'] ) ) ) {
                        $address['{vat}'] = $args['vat']; $address['{vat}'] = $args['vat'];
                        $address['{vat_upper}'] = strtoupper($args['vat']); $ที่อยู่['{vat_upper}'] = strtoupper($args['vat']);
            }

            ส่งคืนที่อยู่ $;

}


//กำหนดรูปแบบภาษาสเปนเพื่อพิมพ์ที่อยู่ รวมภาษีมูลค่าเพิ่ม

add_filter( 'woocommerce_localisation_address_formats', 'njengah_localisation_address_format' );

ฟังก์ชั่น njengah_localisation_address_format ( รูปแบบ $ ) {

            $formats['ES'] = "{name}\n{company}\n{vat_upper}\n{address_1}\n{address_2}\n{รหัสไปรษณีย์} {city}\n{state}\n{ประเทศ} ";

            ส่งคืนรูปแบบ $;

}


/************************************ หน้าโปรไฟล์ผู้ใช้ของผู้ดูแลระบบ **************** ******************************/

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

กรองเพื่อเพิ่มฟิลด์ meta ของลูกค้า VAT (ฟิลด์โปรไฟล์ผู้ใช้ในการจัดกลุ่มที่อยู่สำหรับการเรียกเก็บเงิน)

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

add_filter( 'woocommerce_customer_meta_fields', 'njengah_customer_meta_fields' );

ฟังก์ชัน njengah_customer_meta_fields ($fields) {

            $fields['billing']['fields']['billing_vat'] = อาร์เรย์ (

                        'label' => __( 'หมายเลขภาษีมูลค่าเพิ่ม', 'njengah' )

            );


            ส่งคืนฟิลด์ $;

}


/****************************** หน้าสั่งซื้อของแอดมิน ******************* *********************/


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

กรองเพื่อเพิ่มภาษีมูลค่าเพิ่มในแบบฟอร์มแก้ไขคำสั่งซื้อ -- หน้าผู้ดูแลระบบ

*********/

add_filter( 'woocommerce_admin_billing_fields', 'njengah_admin_billing_fields' );

ฟังก์ชัน njengah_admin_billing_fields ($fields) {

            $fields['vat'] = อาร์เรย์ (
                        'label' => __( 'หมายเลขภาษีมูลค่าเพิ่ม', 'njengah' ),
                        'show' => จริง
            );

            ส่งคืนฟิลด์ $;

}

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

กรองเพื่อคัดลอกฟิลด์ภาษีมูลค่าเพิ่มจากฟิลด์เมตาผู้ใช้ไปยังแบบฟอร์มการจัดการคำสั่งซื้อ (หลังจากคลิกปุ่มเฉพาะบนหน้าผู้ดูแลระบบ)

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


add_filter( 'woocommerce_found_customer_details', 'njengah_found_customer_details' );

ฟังก์ชัน njengah_found_customer_details ($customer_data) {

            $customer_data['billing_vat'] = get_user_meta( $_POST['user_id'], 'billing_vat', จริง);

            ส่งคืน $customer_data;

}
  1. นี่คือผลลัพธ์ในส่วนหน้า: ช่องเช็คภาษีมูลค่าเพิ่ม
  2. นี่คือผลลัพธ์ในด้านผู้ดูแลระบบ: หมายเลขภาษี

บทสรุป

โดยสรุป คุณได้เรียนรู้วิธีเพิ่มช่องการชำระเงินหมายเลข VAT ในหน้าชำระเงินของ WooCommerce ฉันแนะนำให้เพิ่มข้อมูลโค้ดในไฟล์ functions.php ของธีมลูกของคุณ เพื่อไม่ให้การเปลี่ยนแปลงที่คุณทำหายไประหว่างการอัปเดต ข้อมูลโค้ดแสดงหมายเลข VAT ในใบแจ้งหนี้ที่ออกโดยอัตโนมัติ

บทความที่คล้ายกัน