วิธีเพิ่มฟิลด์ที่กำหนดเองในหน้าชำระเงินของ WooCommerce
เผยแพร่แล้ว: 2020-07-21คุณต้องการ ปรับแต่งการชำระเงินของคุณ หรือไม่? ในคู่มือนี้ เราจะแสดง วิธีเพิ่มฟิลด์ที่กำหนดเองให้กับหน้าการชำระเงินใน WooCommerce เพื่อนำร้านค้าของคุณไปสู่อีกระดับ
ทำไมต้องปรับแต่งการชำระเงิน WooCommerce?
ใน QuadLayers เราเคยเห็นวิธีปรับแต่งหน้าร้านค้าใน WooCommerce มาก่อนแล้ว วันนี้ เราจะมาดูวิธีการทำเช่นเดียวกันและรวมฟิลด์ที่กำหนดเองในการชำระเงิน การชำระเงินเป็นหนึ่งใน หน้าที่สำคัญที่สุดสำหรับร้านค้าออนไลน์ใดๆ เป็นที่ที่คุณต้องการพาผู้ซื้อของคุณเพื่อให้การซื้อเสร็จสมบูรณ์และคุณปิดการขาย ดังนั้น ในการปรับปรุงอัตราการแปลงและรายได้ของคุณ การเพิ่มประสิทธิภาพการชำระเงินด้วยฟิลด์ที่กำหนดเองจึงเป็นสิ่งจำเป็น
หน้าชำระเงินที่สมบูรณ์แบบเป็นอย่างไร? ขึ้นอยู่กับธุรกิจของคุณเป็นอย่างมาก ตัวอย่างเช่น การชำระเงินสำหรับสินค้าที่จับต้องได้จะแตกต่างจากการชำระเงินสำหรับผลิตภัณฑ์ดิจิทัล คุณเลือกการชำระเงินแบบหน้าเดียวหรือหลายหน้า แสดงหรือซ่อนช่อง ใช้สีที่ต่างกัน และอื่นๆ อย่างไรก็ตาม สิ่งที่สำคัญที่สุดคือการชำระเงินของคุณสร้างความเชื่อถือในผู้ใช้ ไม่มีสิ่งรบกวน และได้รับการปรับให้เหมาะสมเพื่อให้นักช้อปใช้เวลาน้อยที่สุด
จะเพิ่มฟิลด์ที่กำหนดเองในหน้าชำระเงิน WooCommerce ได้อย่างไร
มีสองวิธีหลักในการเพิ่มหรือซ่อนฟิลด์ที่กำหนดเองในหน้าชำระเงินใน WooCommerce:
- ด้วยปลั๊กอิน
- โดยทางโปรแกรม
หากคุณไม่มีทักษะในการเขียนโค้ด เราขอแนะนำให้คุณตรวจสอบปลั๊กอินเหล่านี้:
- WooCommerce Direct Checkout : เป็นเครื่องมือที่ยอดเยี่ยมในการทำให้กระบวนการเช็คเอาต์ง่ายขึ้นและเปลี่ยนเส้นทางผู้ใช้จากหน้าผลิตภัณฑ์ไปยังจุดชำระเงิน มีเวอร์ชันฟรีและแผนพรีเมียมเริ่มต้นที่ 19 USD
- WooCommerce Checkout Manager : ด้วยการติดตั้งที่ใช้งานมากกว่า 90,000 รายการ Checkout Manager เป็นปลั๊กอินที่ยอดเยี่ยมในการเพิ่มอัตราการแปลงของคุณ ช่วยให้คุณเพิ่ม ปรับแต่ง และลบฟิลด์ในหน้าชำระเงินได้ เป็นเครื่องมือ freemium ที่มีเวอร์ชันฟรีและแผนโปรเริ่มต้นที่ 19 USD
ปลั๊กอินการชำระเงินเหล่านี้เป็นตัวเลือกที่ยอดเยี่ยมและจะทำงานได้อย่างราบรื่น อย่างไรก็ตาม หากคุณไม่ต้องการติดตั้งปลั๊กอินใดๆ คุณสามารถเขียนโค้ดโซลูชันของคุณได้ ในคู่มือนี้ เราจะเน้นที่ วิธีที่คุณสามารถเพิ่มฟิลด์ที่กำหนดเองลงในหน้าชำระเงินของ WooCommerce ด้วยการเข้ารหัส
เพิ่มฟิลด์ที่กำหนดเองในการชำระเงิน WooCommerce โดยทางโปรแกรม
ในส่วนนี้ คุณจะได้เรียนรู้ วิธีเพิ่มฟิลด์ที่กำหนดเองในหน้าชำระเงินของ WooCommerce โดยทางโปรแกรม เราจะแสดงวิธีการรวม:
- ข้อความ
- ช่องทำเครื่องหมาย
- ประเภทอินพุตวิทยุ
มีฟิลด์ที่กำหนดเองอื่นๆ ที่คุณสามารถเพิ่มได้ แต่โปรดทราบว่าฟิลด์เหล่านี้อาจต้องมีการตรวจสอบความถูกต้องบางประเภท ดังนั้น ในบทช่วยสอนนี้ เราจะมุ่งเน้นไปที่ 3 ประเภทนั้นและข้ามฟิลด์ที่ต้องมีการตรวจสอบความถูกต้องของค่าที่ป้อน นอกจากนี้ เราจะแสดงฟิลด์ที่กำหนดเองในรายการคำสั่งซื้อแบ็กเอนด์และเทมเพลตอีเมล
หมายเหตุ : โปรดทราบว่าหากคุณต้องการเพิ่มฟิลด์อื่นๆ ในโครงการของคุณ คุณต้องใช้การตรวจสอบความปลอดภัย
ดังนั้น ในการเพิ่มฟิลด์ที่กำหนดเองลงในหน้าชำระเงินของ WooCommerce มีสองตัวเลือก:
- คุณสามารถเขียนโค้ดสคริปต์ของคุณในธีมย่อย
- สร้างปลั๊กอินที่กำหนดเอง
เพื่อสร้างโซลูชันที่ปรับขนาดได้และมีการจัดการที่ดี เราจะสร้างปลั๊กอินที่กำหนดเอง นอกจากนี้ ปลั๊กอินแบบกำหนดเองยังสามารถเป็นจุดเริ่มต้นของการพัฒนาต่อไป ซึ่งแตกต่างจากแนวทางธีมลูก อย่างไรก็ตาม หากคุณต้องการใช้ธีมย่อย เราขอแนะนำให้คุณอ่านคู่มือนี้
เพิ่มฟิลด์ที่กำหนดเองในการชำระเงิน WooCommerce ด้วยปลั๊กอินที่กำหนดเอง
ปลั๊กอินแบบกำหนดเองที่เราจะสร้างจะมีสามไฟล์
- หลัก
- ส่วนหน้า
- แบ็กเอนด์
ไฟล์หลักทำหน้าที่เป็นทางเข้าเกตเวย์ไปยังไฟล์ส่วนหน้า ซึ่งเราจะใช้สำหรับสคริปต์ส่วนหน้าของเรา นอกจากนี้ เราจะรวมไฟล์ที่สามซึ่งมีสคริปต์ส่วนหลังไว้ด้วย เป็นที่น่าสังเกตว่าไฟล์ส่วนหน้านี้จะเป็นไฟล์ฐานหลักและควรย้ายไปยังไฟล์ลำดับชั้นระดับต่ำ (เช่นเดียวกับไฟล์แบ็กเอนด์ของเรา) หากคุณเพิ่มคลาสเพิ่มเติม ตอนนี้ มาดู วิธีการเพิ่มฟิลด์ที่กำหนดเองในหน้าชำระเงิน WooCommerce โดยใช้ปลั๊กอินที่กำหนดเอง
1. เปิด IDE ที่คุณชื่นชอบและสร้างโฟลเดอร์ที่มีสามไฟล์:
QuadLayers_checkout_fields /__Classes /__/__class_qlccf_base.php (ไฟล์ส่วนหน้า) /__/__class_qlccf_back.php (ไฟล์แบ็กเอนด์) /__QuadLayers_checkout_fields.php (ไฟล์หลัก)
2. ไฟล์หลัก
ไฟล์หลักคือ QuadLayers_checkout_fields.php
:
<?php /** * @ลิงค์ https://quadlayers.com/ * @ตั้งแต่ 1.0.0 * ชื่อปลั๊กอิน: QuadLayers Checkout Custom Fields * URI ของปลั๊กอิน: https://quadlayers.com/ * คำอธิบาย: ปลั๊กอินเพื่อสร้างฟิลด์ที่กำหนดเองในหน้าชำระเงินของ WooCommerce พิมพ์คำสั่งซื้อแบ็กเอนด์และเทมเพลตอีเมล * เวอร์ชัน: 1.0.0 * ผู้แต่ง: Sebastopolys * URI ผู้แต่ง: https://quadlayers.com/ * โดเมนข้อความ: qlccf */ if(!defined('ABSPATH')){die('-1');} elseif(!class_exists('run_init')){ คลาสสุดท้าย run_init{ เรียกใช้ฟังก์ชันสแตติกสาธารณะ () { ส่งคืน include_once plugin_dir_path ( __FILE__ ).'classes/class_qlccf_base.php'; } } run_init::run(); } อื่น{ echo "<h3>ข้อผิดพลาด - คลาส run_init ที่มีอยู่ใน QuadLayers_checkout_fields.php!</h3>"; }
คุณสามารถเปลี่ยนข้อมูลปลั๊กอิน ฟังก์ชัน และชื่อไฟล์และตั้งค่าของคุณเองได้ แต่เราขอแนะนำให้คุณคัดลอกและวางสคริปต์ก่อนโดยไม่ต้องแก้ไขใดๆ เพื่อให้คุณเข้าใจวิธีการทำงานได้ดีขึ้น
3. ไฟล์คลาสส่วนหน้า
ไฟล์ส่วนหน้าคือ class_qlccf_base.php
นี่คือที่ที่คลาสหลักอาศัยอยู่ และคุณสามารถรวมคลาสและฟังก์ชันได้ไม่จำกัดจำนวน คลาสนามธรรมไม่สามารถสร้างอินสแตนซ์ได้ ดังนั้นจึงต้องสืบทอดโดยคลาสอื่น นี่คือไฟล์ส่วนหน้าและคำอธิบายโดยละเอียดหลังโค้ด:
<?php if(!defined('ABSPATH')){die('-1');} elseif(!class_exists('base_class'))){ คลาสนามธรรม base_class{ VERS สาธารณะ = '1.1.0';// <-- เวอร์ชันของปลั๊กอิน คำนำหน้าสาธารณะ = 'qlccf';// <-- คำนำหน้าปลั๊กอิน สาธารณะ const PLDIR = __DIR__ ;// <-- Plugin Dir path const สาธารณะ PLPAT = __FILE__ ;// <-- File Path ฟังก์ชั่นสาธารณะ add_base_hooks(){ add_action( 'woocommerce_after_order_notes', array($this,'quadlayers_subscribe_checkout' )); add_action('woocommerce_after_checkout_billing_form',array($this,'quadlayers_email_checkout')); add_action('woocommerce_before_order_notes', array($this,'quadlayers_radio_checkout')); add_action( 'woocommerce_checkout_update_order_meta',array($this, 'quadlayers_save_function' )); } // แทรกช่องทำเครื่องหมายในการชำระเงิน woocommerce - hook: after_order_notes ฟังก์ชั่นสาธารณะ quadlayers_subscribe_checkout ($checkout) { woocommerce_form_field ( 'ตัวห้อย', อาร์เรย์ ( 'type' => 'ช่องทำเครื่องหมาย', //'required' => จริง 'class' => array('รูปแบบฟิลด์กำหนดเอง-แถวกว้าง'), 'label' => ' สมัครรับจดหมายข่าวของเรา' ), $checkout->get_value( 'suscriptor' ) ); } // แทรกข้อความในการชำระเงิน woocommerce - hook: after_billing_form ฟังก์ชั่นสาธารณะ quadlayers_email_checkout ($checkout2){ woocommerce_form_field ( 'altmail', อาร์เรย์ ( 'type' => 'อีเมล', //'required' => จริง 'class' => array('รูปแบบฟิลด์กำหนดเอง-แถวกว้าง'), 'label' => ' อีเมลสำรอง' ), $checkout2->get_value( 'altmail' ) ); } // แทรกฟิลด์วิทยุที่กำหนดเองในการชำระเงิน woocommerce - hook: before_order_notes ฟังก์ชั่นสาธารณะ quadlayers_radio_checkout ($checkout3){ woocommerce_form_field ( 'ฟีด', อาร์เรย์ ( 'type' => 'วิทยุ', //'required' => จริง 'class' => array('รูปแบบฟิลด์กำหนดเอง-แถวกว้าง'), 'label' => ' คุณหาเราเจอได้ยังไง?.', 'ตัวเลือก' => อาร์เรย์ ( 'Google' => 'Google', 'เพื่อน' => 'เพื่อน', 'Facebook' => 'Facebook', 'YouTube' => 'YoutTube', 'อื่นๆ' => 'อื่นๆ' ) )); } // บันทึกค่าฟิลด์ที่กำหนดเองทั้งหมด ฟังก์ชั่นสาธารณะ quadlayers_save_function ($order_id){ if ( ! ว่างเปล่า ( $_POST['suscriptor'] ) ) { update_post_meta( $order_id, 'suscriptor', sanitize_text_field( $_POST['suscriptor'] ) ); } ถ้า ( ! ว่างเปล่า ( $_POST['altmail'] ) ) { update_post_meta( $order_id, 'altmail',sanitize_text_field( $_POST['altmail'] ) ); } if ( ! ว่างเปล่า ( $_POST['feed'] ) ) ) { update_post_meta( $order_id, 'ฟีด', sanitize_text_field( $_POST['feed'] ) ); } } }// รวมคลาสแบ็กเอนด์ include_once(plugin_dir_path( __FILE__ ).'class_qlccf_back.php'); } อื่น{ echo "<h3>ข้อผิดพลาดในการเริ่มต้น - คลาส base_class ที่มีอยู่!</h3>"; }
หลังจากประกาศคลาสแล้ว เรากำหนดค่าคงที่บางอย่างที่เราสามารถใช้ได้ในภายหลัง จากนั้น เรารวม WooCommerce hooks ทั้งหมดที่เราจะใช้ในวิธีเดียว ซึ่งเราเรียกว่า add_base_hooks()
เนื่องจากคลาสนามธรรมไม่สามารถสร้างอินสแตนซ์ได้ เราจึงเรียกใช้วิธีนี้จากไฟล์แบ็กเอนด์ของเรา ดังนั้นมันจึงเรียกใช้ hooks ทั้งหมดที่ประกาศไว้ที่นี่ เราใช้ตะขอแต่ละตัวสำหรับงานที่แตกต่างกัน โดยกำหนดวิธีใดวิธีหนึ่งต่อไปนี้ให้กับแต่ละตะขอ เช่น hook นี้: woocommerce_after_order_notes
ใน add_base_hooks()
ของเรารันเมธอด quadlayers_subscribe_checkout()
ซึ่งทั้งสองถูกกำหนดไว้ภายในคลาส base_class
โปรดทราบว่าเราใช้ฟังก์ชันบางอย่างของ WordPress และ WooCommerce: woocommerce_form_field()
ซึ่งจะส่งออกฟิลด์ที่กำหนดเองในแบบฟอร์มการชำระเงินของ WooCommerce update_post_meta()
ฟังก์ชันดั้งเดิมของ WordPress นี้ใช้กันอย่างแพร่หลายในการอัปเดตข้อมูลเมตาของฐานข้อมูลของโพสต์ ผลิตภัณฑ์ และประเภทโพสต์ที่กำหนดเองอื่นๆ นอกจากนี้ ประเภทของฟิลด์อินพุตที่ใช้ได้คือ:
ข้อความ | เลือก | วิทยุ |
รหัสผ่าน | วันเวลา | datetime-local |
วันที่ | เดือน | เวลา |
สัปดาห์ | ตัวเลข | อีเมล |
url | โทร |
4.ไฟล์แบ็กเอนด์ class_qlccf_back.php
นี่คือตำแหน่งที่คลาส qlccf_back_class
สืบทอด base_class
ที่กำหนดไว้ก่อนหน้านี้ใน class_qlccf_base.php file
:
<?php if(!defined('ABSPATH')){die('-1');} if(!class_exists('qlccf_back_class')): คลาส qlccf_back_class ขยาย base_class{ ฟังก์ชันสาธารณะ __construct(){ ผู้ปกครอง::add_base_hooks(); ถ้า(is_admin()): add_filter( 'manage_edit-shop_order_columns', array($this,'qlccf_checkbox')); add_filter( 'manage_edit-shop_order_columns', array($this,'qlccf_email')); add_action( 'manage_shop_order_posts_custom_column',array($this, 'qlccf_column_content')); add_action( 'woocommerce_email_order_meta',array($ this,'qlccf_email_template')); เอนดิฟ; } # แสดงค่าฟิลด์ที่กำหนดเองในรายการสั่งซื้อแบ็กเอนด์ ฟังก์ชั่นสาธารณะ qlccf_column_content($column){ โพสต์ $ ทั่วโลก; if ( 'suscriptor' === $column ) { # ช่องทำเครื่องหมาย $order = wc_get_order( $โพสต์->ID ); $c_meta = $order->get_meta('ตัวห้อย'); if($c_meta==1):$img_url='https://www.sebastopolys.com/wp-content/uploads/2020/07/true-icon.png'; อื่น:$img_url='https://www.sebastopolys.com/wp-content/uploads/2020/07/false-icon.png'; เอนดิฟ; echo '<img src="'.$img_url.'"/>'; } elseif('altmail' === $column ){ # อีเมลสำรอง $order = wc_get_order( $โพสต์->ID ); $e_meta = $order->get_meta('altmail'); $e_meta = $order->get_meta('altmail'); เสียงสะท้อน $e_meta; } อื่น{} } # ตั้งค่าคอลัมน์ของช่องทำเครื่องหมาย ฟังก์ชั่นสาธารณะ qlccf_checkbox($columns){ $columns['suscriptor'] = __( 'Suscriptor'); ส่งคืนคอลัมน์ $; } # ตั้งค่าคอลัมน์ของ alt mail ฟังก์ชั่นสาธารณะ qlccf_email($columns1){ $columns1['altmail'] = __( 'เมลสำรอง'); ส่งคืน $columns1; } # รวมฟิลด์ Alt Mail ใน WC email tamplate ฟังก์ชั่นสาธารณะ qlccf_email_template ($order_obj){ $is_set = get_post_meta( $order_obj->get_order_number()); // ส่งคืนหากไม่มีการตั้งค่าฟิลด์ที่กำหนดเอง ถ้า( ว่างเปล่า( $is_set ) ) กลับ; // โอเค ลุยเลย และก้องฟิลด์กำหนดเอง $alt_email = get_post_meta( $order_obj->get_order_number(), 'altmail', จริง ); echo '<h2>ฟิลด์กำหนดเองของฉัน</h2><p>อีเมลทางเลือก:'.$alt_email.'</p>'; } } $run=new qlccf_back_class; เอนดิฟ;
ในไฟล์นี้ เรากำหนดคอนสตรัคเตอร์เพื่อเรียกใช้ front-end hooks ที่เราระบุไว้ในไฟล์อื่นของเรา จากนั้น เราเพิ่ม hooks ที่จำเป็นเพื่อแสดงฟิลด์ที่กำหนดเองในรายการแบ็กเอนด์ออร์เดอร์และเทมเพลตอีเมลของ WooCommerce โดยใช้ if() และฟังก์ชัน WordPress is_admin()
เพื่อใช้เฉพาะเมื่อผู้ใช้อยู่ในหน้าจอแบ็กเอนด์ของผู้ดูแลระบบ manage_shop_order_posts_custom_column()
แทรกคอลัมน์ในรายการคำสั่งซื้อ เพื่อให้เราสามารถแสดงฟิลด์ใน qlccf_column_content()
ของเรา
เมื่อเราติดใน WooCommerce loop แล้ว เราจะตรวจสอบว่าชื่อฟิลด์นั้นเป็นของฟิลด์ที่เรากำหนดเองหรือไม่ และถ้าเป็นเช่นนั้น เราจะพิมพ์ออกมา การใช้เงื่อนไข if()else อื่น เราสามารถตรวจสอบฟิลด์ที่กำหนดเองทั้งหมดของเราในฟังก์ชันเดียวกันได้
หลังจากนั้น เราสร้างช่องทำเครื่องหมายและคอลัมน์ฟิลด์ที่กำหนดเองข้อความในรายการใบสั่งแบ็กเอนด์ เราจำเป็นต้องตั้งค่าคอลัมน์ที่กำหนดเองของเราเพื่อแสดงฟิลด์ WooCommerce ที่กำหนดเองเมื่อลูกค้าเสร็จสิ้นขั้นตอนการชำระเงินและสร้างคำสั่งซื้อ
สุดท้าย ในวิธีสุดท้าย เราใช้ woocommerce_email_order_meta
hook เพื่อแสดงฟิลด์ข้อความที่กำหนดเองในเทมเพลตอีเมลของผู้ดูแลระบบ ฟังก์ชัน WordPress & WooCommerce ที่ใช้:
wc_get_order()
: รับออบเจ็กต์คำสั่งปัจจุบันพร้อมข้อมูลทั้งหมดที่แนบมาด้วย
get_meta()
: เพื่อรับข้อมูลเมตาของคำสั่ง
get_post_meta()
: รับค่าของฟิลด์กำหนดเองของเราที่บันทึกไว้ในฐานข้อมูล
get_order_number()
: เพื่อรับหมายเลขประจำตัวของคำสั่งซื้อปัจจุบัน
ห่อ
สรุปแล้ว การปรับแต่งหน้าชำระเงินเป็นสิ่งจำเป็นสำหรับร้านค้าออนไลน์ทุกแห่ง ในคู่มือนี้ เราได้แสดงวิธีเพิ่มฟิลด์ที่กำหนดเองให้กับหน้าชำระเงินของ WooCommerce โดยทางโปรแกรมด้วยการเข้ารหัสเล็กน้อย คุณได้เรียนรู้วิธีสร้างปลั๊กอินแบบกำหนดเองทีละขั้นตอนเพื่อเพิ่มประสิทธิภาพการชำระเงิน
นอกจากนี้ หากคุณต้องการ ปรับแต่งหน้าการชำระเงิน และก้าวไปสู่ระดับถัดไป เราขอแนะนำให้คุณดูคำแนะนำทีละขั้นตอนนี้
คุณเคยลองวิธีนี้หรือไม่? คุณคิดหาวิธีปรับปรุงได้หรือไม่? กรุณาแบ่งปันประสบการณ์ของคุณกับเราในส่วนความคิดเห็นด้านล่าง!
หากคุณต้องการปรับปรุงการแปลงของคุณใน WooCommerce เราขอแนะนำให้คุณดูคำแนะนำเหล่านี้:
- ปุ่มซื้อด่วนที่ดีที่สุดสำหรับ WooCommerce
- วิธีเพิ่มประสิทธิภาพการชำระเงินใน WooCommerce
- จะแก้ไขหน้าร้านค้าใน WooCommerce ผ่านการเข้ารหัสได้อย่างไร?