วิธีเพิ่มวิธีการจัดส่งแบบกำหนดเองใน WooCommerce
เผยแพร่แล้ว: 2020-09-01หากคุณคุ้นเคยกับ WooCommerce คุณจะรู้ว่ามันเป็นโซลูชันอีคอมเมิร์ซฟรีที่ยอดเยี่ยม พร้อมชุดคุณสมบัติที่มีประโยชน์อย่างเหลือเชื่อ สิ่งที่โดดเด่นคือ WooCommerce ได้รับการพัฒนาโดยคำนึงถึงความสามารถในการขยาย คล้ายกับโมดูลของ WordPress
อย่างไรก็ตาม หากคุณต้องการอะไรเพิ่มเติมจาก WooCommerce คุณมักจะพบว่า WooCommerce ไม่ได้ให้ทุกสิ่งที่คุณต้องการ ตัวอย่างเช่น หากคุณต้องการเพิ่มวิธีการจัดส่งแบบกำหนดเอง อย่างไรก็ตาม ไม่ต้องกังวลเหมือนในบทช่วยสอนสั้นๆ นี้ คุณจะได้เรียนรู้วิธีสร้างวิธีการจัดส่งอย่างง่ายสำหรับ WooCommerce ซึ่งจะคำนวณต้นทุนในการจัดส่ง
นอกจากนี้ คุณจะได้เรียนรู้วิธีเพิ่มข้อจำกัดบางอย่างให้กับปลั๊กอินของเรา เพื่อให้วิธีการจัดส่งสามารถใช้ได้ในบางประเทศ
กฎการจัดส่งแบบกำหนดเองสำหรับวิธีการจัดส่ง
ในส่วนนี้ เราจะสร้างกฎการจัดส่งแบบกำหนดเองสำหรับวิธีการจัดส่งที่เราจะใช้เพื่อสร้างรหัส เราจะกำหนดวิธีการจัดส่งที่จะคำนวณต้นทุนและสถานที่ที่สามารถจัดส่งได้ ซึ่งหมายความว่าต้นทุนจะถูกกำหนดโดยน้ำหนักและโซนที่เราจำเป็นต้องจัดส่งไป
สำหรับตัวอย่างนี้ เราจะจัดส่งไปยังสหรัฐอเมริกา แคนาดา เยอรมนี สหราชอาณาจักร อิตาลี สเปน และเคนยา เคนยาจะเป็นโซน 0 ของเราในราคา $10, อิตาลีโซน 1 ราคา $30, สเปนโซน 2 ในราคา $50, โซนสหราชอาณาจักร 2 ราคา $50, สหรัฐอเมริกา และโซน 3 ของแคนาดาในราคา $70
สำหรับน้ำหนัก เราจะกำหนดราคาดังนี้: 0 - 10 กก. ฟรี, 11 - 30 กก. สำหรับ $5, 31-50 กก. สำหรับ 10 USD และ 51-100 กก. สำหรับ 20 USD
คุณอาจพร้อมที่จะเริ่มเขียนโค้ดแล้ว แต่ยังไม่ใช่ตอนนี้! ก่อนอื่น คุณต้องเรียนรู้เกี่ยวกับ WooCommerce Shipping API เมื่อคุณต้องการสร้างวิธีการจัดส่งแบบกำหนดเอง คุณต้องขยายคลาสจากคลาสนามธรรมของ WooCommerce WC_Shipping_Method มีคุณลักษณะที่กำหนดไว้บางประการ ได้แก่ :
-
$id
: ID (slug, keyword) ของการจัดส่งของเราซึ่งจำเป็น -
$number
: นี่คือรหัสจำนวนเต็ม -
$method_title
: ชื่อการจัดส่งของเราที่แสดงในส่วนผู้ดูแลระบบ -
$method_description
: คำอธิบายสั้นๆ เกี่ยวกับการจัดส่งของเราที่แสดงในส่วนผู้ดูแลระบบ (ไม่บังคับ) -
$enabled
: String Boolean "ใช่" หรือ "ไม่ใช่" ซึ่งจะให้ข้อมูลว่าการจัดส่งของเราเปิดใช้งานอยู่หรือไม่ และสามารถใช้ได้หรือไม่ -
$title
: ใช้เพื่อแสดงชื่อการจัดส่งของเราบนไซต์ของเรา -
$availability
: สิ่งนี้กำหนดว่าสามารถจัดส่งได้หรือไม่ -
$countries
: อาร์เรย์ของประเทศที่เปิดใช้งานวิธีนี้ ค่าดีฟอลต์คืออาร์เรย์ว่าง -
$tax_status
: ค่าเริ่มต้นต้องเสียภาษี หากสินค้าต้องเสียภาษี จะมีการเรียกเก็บภาษี -
$fee
: ค่าเริ่มต้นคือ 0 -
$minimum_fee
: ค่าธรรมเนียมขั้นต่ำสำหรับวิธีการและค่าเริ่มต้นเป็นโมฆะ -
$has_settings
: กำหนดว่าเมธอดนี้มีการตั้งค่าใดๆ หรือไม่ ค่าเริ่มต้นเป็นจริง -
$supports
: อาร์เรย์ที่มีคุณสมบัติที่วิธีนี้รองรับ ค่าดีฟอลต์คืออาร์เรย์ว่าง -
$rates
: อาร์เรย์ของอัตราและต้องเติมข้อมูลนี้เพื่อลงทะเบียนค่าจัดส่ง ค่าดีฟอลต์คืออาร์เรย์ว่าง
วิธีการที่กำหนดไว้ใน WC_Shipping_Method คือ:
-
is_taxable()
: ส่งคืนไม่ว่าเราต้องคำนวณภาษีจากอัตราค่าจัดส่งหรือไม่ -
add_rate( $args = array() )
: สิ่งนี้จะผลักดันอัตราค่าจัดส่งที่กำหนดไว้ในพารามิเตอร์ $args ลงในแอตทริบิวต์ $rates -
has_settings()
: ส่งคืนค่าแอตทริบิวต์ $has_settings -
is_available()
: การส่งคืนสินค้าหากมีการส่งสินค้า และมีการตั้งค่าประเทศในแอตทริบิวต์ $countries และแอตทริบิวต์ $availability ถูกตั้งค่าเป็นค่า รวมทั้ง เฉพาะ หรือไม่รวม จะส่งคืนค่าจริงหรือเท็จ หากประเทศนั้นพร้อมสำหรับการจัดส่ง . -
get_title()
: ส่งคืนชื่อการจัดส่งนี้ -
get_fee( $fee, $total )
: ส่งคืนค่าค่าธรรมเนียมสำหรับการจัดส่งนี้โดยพิจารณาจาก $fee ที่แยกวิเคราะห์และ $total -
supports( $feature )
: ส่งคืนหากวิธีการจัดส่งนี้รองรับคุณสมบัติหรือไม่
เนื่องจากคลาส WC_Shipping_Method ขยายคลาส WC_Settings_API จึงมีแอตทริบิวต์และวิธีการอื่นๆ ซึ่งฉันจะไม่อธิบายที่นี่เพื่อจุดประสงค์ที่เรียบง่าย
นอกจากนี้ ยังต้องกำหนดวิธีการอื่นๆ เพื่อให้การจัดส่งสามารถรับหรือตั้งค่าและคำนวณต้นทุนจริงของการจัดส่งได้ วิธีการเหล่านี้ระบุไว้ที่นี่:
-
init()
: สร้างฟิลด์แบบฟอร์มและการตั้งค่า อย่างไรก็ตาม มันสามารถตั้งชื่อต่างกันได้ ตราบใดที่เราใช้เมธอดที่อยู่ภายในและเรียกมันในเมธอด __constructor -
calculate_shipping( $package )
: วิธีนี้ใช้ในการคำนวณต้นทุนสำหรับการจัดส่งนี้ และแพ็คเกจคืออาร์เรย์ที่มีสินค้าที่จะจัดส่ง
ฉันต้องการให้ความสำคัญกับวิธีการคำนวณ_การจัดส่ง สำหรับตัวอย่าง เราจะใช้วิธีนี้และเพิ่มลงในวิธี add_rate วิธีนี้จะยอมรับอาร์เรย์ที่มีตัวเลือกต่างๆ เช่น:
-
id
: นี่คือ ID ของอัตรา -
label
: นี่คือป้ายสำหรับอัตรา -
cost
: จำนวนเงินที่จัดส่ง -
taxes
: ยอมรับอาร์เรย์ของภาษีหรือไม่มีเลย ดังนั้น WooCommerce จึงคำนวณภาษี หากไม่ต้องการให้รับภาษีก็รับเท็จได้ -
calc_tax
: ยอมรับ per_order หรือ per_item หากคุณใช้ per_item คุณจะต้องระบุอาร์เรย์ของค่าใช้จ่าย
เราจะใช้ตัวกรอง WordPress เพื่อรับอาร์เรย์ที่เพิ่มวิธีการจัดส่งของเราในอาร์เรย์ของวิธีที่ลงทะเบียนโดยส่งชื่อคลาสของเราโดยใช้ตัวกรอง WordPress ที่กำหนดไว้ในปลั๊กอิน WooCommerce ตัวกรองเรียกว่า woocommerce_shipping_methods
ด้วยสิ่งนี้บนโต๊ะ ให้เราเข้าไปในส่วนการเขียนโค้ดของบทช่วยสอนสั้นๆ นี้ เพื่อที่คุณจะได้เข้าใจแนวคิดทั้งหมดในตัวอย่าง PHP ที่ฉันจะแชร์
ก) ขั้นตอนในการสร้างคลาสการขนส่งใหม่
ในส่วนนี้ เราจะสร้างวิธีการจัดส่งของเราเป็นปลั๊กอินใหม่ที่ขยาย WooCommerce
- ขั้นแรก คุณต้องเปิด wp-content > plugins และสร้างโฟลเดอร์ใหม่ สำหรับสิ่งนี้ ฉันจะใช้ชื่อ njengah -shipping
- จากนั้น คุณต้องสร้างไฟล์ที่มีชื่อเดียวกันว่า njengah –shipping.php
- ในไฟล์นี้ ให้เพิ่มรหัสต่อไปนี้:
<?php /** * ชื่อปลั๊กอิน: Njengah Shipping * URI ของปลั๊กอิน: https://njengah.com/plugins/ * คำอธิบาย: * เวอร์ชัน: 1.0.0 * ผู้แต่ง: Joe Njenga * URI ผู้แต่ง: https://njengah.com ส */ ถ้า ( ! กำหนด ( 'WPINC' ) ) { ตาย; } /* * ตรวจสอบว่า WooCommerce เปิดใช้งานอยู่หรือไม่ */ if (in_array('woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option('active_plugins' ) ) ) ) { ฟังก์ชัน njengahplus_shipping_method () { ถ้า ( ! class_exists ( 'NjengahPlus_Shipping_Method' ) ) { คลาส NjengahPlus_Shipping_Method ขยาย WC_Shipping_Method { /** * ตัวสร้างสำหรับคลาสการจัดส่งของคุณ * * @เข้าถึงสาธารณะ * @return เป็นโมฆะ */ ฟังก์ชั่นสาธารณะ __construct () { $this->id = 'njengahplus'; $this->method_title = __( 'NjengahPlus Shipping', 'njengahplus' ); $this->method_description = __( 'วิธีการจัดส่งแบบกำหนดเองสำหรับ NjengahPlus', 'njengahplus' ); $this->init(); $this->enabled = isset( $this->settings['enabled'] ) ? $this->settings['enabled'] : 'ใช่'; $this->title = isset( $this->settings['title'] ) ? $this->settings['title'] : __( 'NjengahShipping', 'njengahplus' ); } /** * เริ่มการตั้งค่าของคุณ * * @เข้าถึงสาธารณะ * @return เป็นโมฆะ */ ฟังก์ชัน init() { // โหลดการตั้งค่า API $this->init_form_fields(); $this->init_settings(); // บันทึกการตั้งค่าในผู้ดูแลระบบหากคุณกำหนดไว้ add_action( 'woocommerce_update_options_shipping_' . $this->id, array( $this, 'process_admin_options' ) ); } /** * กำหนดฟิลด์การตั้งค่าสำหรับการจัดส่งนี้ * @return เป็นโมฆะ */ ฟังก์ชัน init_form_fields () { // เราจะเพิ่มการตั้งค่าของเราที่นี่ } /** * ฟังก์ชันนี้ใช้เพื่อคำนวณค่าจัดส่ง ภายในฟังก์ชันนี้ เราสามารถตรวจสอบน้ำหนัก ขนาด และพารามิเตอร์อื่นๆ ได้ * * @เข้าถึงสาธารณะ * @param ผสม $package @กลับมาเป็นโมฆะ */ ฟังก์ชันสาธารณะคำนวณ _shipping( $package ) { // เราจะเพิ่มราคา อัตรา และตรรกะในที่นี้ } } } } add_action( 'woocommerce_shipping_init', 'njengahplus_shipping_method' ); ฟังก์ชัน add_njengahplus_shipping_method( $methods ) { $methods[] = 'NjengahPlus_Shipping_Method'; ส่งคืนวิธี $; } add_filter( 'woocommerce_shipping_methods', 'add_njengahplus_shipping_method' ); }
มันทำงานอย่างไร
- ก่อนอื่นเราตรวจสอบว่ามีการกำหนด WPINC คงที่หรือไม่ หากไม่ได้กำหนดไว้ แสดงว่ามีคนพยายามเข้าถึงไฟล์นี้โดยตรงหรือจากตำแหน่ง ซึ่งไม่ใช่ WordPress
- จากนั้นเราต้องตรวจสอบว่า WooCommerce ทำงานอยู่หรือไม่ เรากำลังตรวจสอบว่า woocommerce.php อยู่ในอาร์เรย์ของปลั๊กอินที่ใช้งานอยู่ซึ่งบันทึกไว้ในฐานข้อมูลภายใต้ตัวเลือก active_plugins หรือไม่
- woocommerce_shipping_init เป็นการดำเนินการหลักสำหรับ WooCommerce Shipping ซึ่งรวมถึงคลาสการจัดส่งทั้งหมดก่อนที่จะสร้างอินสแตนซ์ การใช้การกระทำนี้จะช่วยให้แน่ใจว่าวิธีการจัดส่งของเราจะถูกรวมไว้หลังจากที่ WooCommerce ได้รับการเริ่มต้นและอยู่ในตำแหน่งที่เหมาะสมสำหรับ WooCommerce ที่จะใช้
- เมธอด __construct จะตั้งค่าแอตทริบิวต์ทั่วไปบางส่วน และบางส่วนสามารถเขียนทับได้ง่ายหลังจากโหลดการตั้งค่าจากฐานข้อมูลในเมธอด init
- วิธีอื่นๆ จะเว้นว่างไว้เพราะเราจะกำหนดในภายหลังในบทช่วยสอน
จากนั้นคุณต้องเปิดใช้งานปลั๊กอินโดยใช้ขั้นตอนที่แสดงด้านล่าง:
- ลงชื่อเข้าใช้ไซต์ WordPress และเข้าถึง แดชบอร์ด ในฐานะผู้ดูแลระบบ
- จากเมนู Dashboard ให้คลิกที่ Plugins และเปิดใช้งาน Njengah shipping ดังที่แสดงด้านล่าง:
- หลังจากเปิดใช้งานปลั๊กอินแล้ว ให้ไปที่ WooCommerce > Settings คลิกที่แท็บ WooCommerce จากนั้นคลิกที่ NjengahPlus shipping คุณควรจะเห็นสิ่งนี้:
b) การตั้งค่าความพร้อมใช้งานของประเทศ
วิธีการจัดส่งที่เราสร้างขึ้นจะใช้ได้เฉพาะในรายชื่อประเทศที่กำหนดไว้ก่อนหน้านี้เท่านั้น
- เพิ่มสิ่งนี้ในวิธีการ __construct :
<?php //... $this->method_description = __( 'วิธีการจัดส่งแบบกำหนดเองสำหรับ NjengahPlus', 'njengahplus' ); // ความพร้อมใช้งาน & ประเทศ $this->availability = 'รวม'; $this->ประเทศ = array( 'US', // สหรัฐอเมริกา 'CA', // แคนาดา 'DE', // เยอรมนี 'GB', // สหราชอาณาจักร 'IT', // อิตาลี 'ES', // สเปน 'HR' // เคนยา ); $this->init(); //...
รหัสทำงานอย่างไร
แอตทริบิวต์ความพร้อมจำหน่ายสินค้าถูกตั้งค่าเป็น "รวม" เพื่อให้การจัดส่งนี้มีให้สำหรับประเทศในแอตทริบิวต์ประเทศเท่านั้น
WooCommerce จะตรวจสอบว่าประเทศที่จัดส่งรวมอยู่ในประเทศแอตทริบิวต์หรือไม่
การสร้างการตั้งค่า
คุณต้องคัดลอกโค้ดนี้และเติมวิธีการของเราใน init_form_fields:
<?php ฟังก์ชัน init_form_fields () { $this->form_fields = array( 'เปิดใช้งาน' => อาร์เรย์ ( 'title' => __( 'เปิดใช้งาน', 'njengahplus' ), 'type' => 'ช่องทำเครื่องหมาย', 'description' => __( 'เปิดใช้งานการจัดส่งนี้', 'njengahplus' ), 'ค่าเริ่มต้น' => 'ใช่' ), 'title' => อาร์เรย์ ( 'title' => __( 'ชื่อ', 'njengahplus' ), 'type' => 'ข้อความ', 'description' => __( 'ชื่อที่จะแสดงบนเว็บไซต์', 'njengahplus' ), 'default' => __( 'NjengahPlus Shipping', 'njengahplus' ) ), ); }
หากต้องการตรวจสอบผลลัพธ์ ให้ทำตามขั้นตอนเหล่านี้:
- ลงชื่อเข้าใช้ไซต์ WordPress ของคุณและเข้าถึง แดชบอร์ด ในฐานะผู้ดูแลระบบจากเมนูแดชบอร์ด คลิกที่ WooCommerce > Settings
- คลิกที่แท็บ Shipping และคลิกที่ NjengahPlus Shipping ตามที่แสดงด้านล่าง:
- เปิดใช้งานช่องทำเครื่องหมายและบันทึกการเปลี่ยนแปลง
เราสามารถกำหนดวิธีการจัดส่งให้จัดส่งได้ไม่เกิน 100 กก. จากนั้นเราจะอนุญาตให้แก้ไขในการตั้งค่าหากกฎนั้นเปลี่ยนแปลงในไม่ช้า หลังจากตั้งค่านี้แล้ว รหัสการตั้งค่า จะมีลักษณะดังนี้:
<?php ฟังก์ชัน init_form_fields () { $this->form_fields = array( 'เปิดใช้งาน' => อาร์เรย์ ( 'title' => __( 'เปิดใช้งาน', 'njengahplus' ), 'type' => 'ช่องทำเครื่องหมาย', 'description' => __( 'เปิดใช้งานการจัดส่งนี้', 'njengahplus' ), 'ค่าเริ่มต้น' => 'ใช่' ), 'title' => อาร์เรย์ ( 'title' => __( 'ชื่อ', 'njengahplus' ), 'type' => 'ข้อความ', 'description' => __( 'ชื่อที่จะแสดงบนเว็บไซต์', 'njengahplus' ), 'default' => __( 'NjengahPlus Shipping', 'njengahplus' ) ), 'น้ำหนัก' => อาร์เรย์ ( 'title' => __( 'น้ำหนัก (กก.)', 'njengahplus' ), 'type' => 'ตัวเลข', 'description' => __( 'น้ำหนักสูงสุดที่อนุญาต', 'njengahplus' ), 'ค่าเริ่มต้น' => 100 ), ); }
ในโค้ดด้านบน ตอนนี้เราได้ตั้งค่าน้ำหนักสูงสุดภายใต้การตั้งค่า นี่คือผลลัพธ์:
ค) การคำนวณค่าขนส่ง
ในการคำนวณต้นทุนการจัดส่ง เราจะอัปเดตวิธีการคำนวณ_shipping ทีละขั้นตอนเพื่อให้คุณเข้าใจแต่ละขั้นตอน
- อันดับแรก เราต้องคิด ต้นทุนตามน้ำหนัก ในการดำเนินการนี้ เพียงเพิ่มโค้ดนี้ลงในเมธอด calc_shipping:
<?php //... ฟังก์ชันสาธารณะคำนวณ _shipping( $package ) { น้ำหนัก $ = 0; ต้นทุน $ = 0; $country = $package["destination"]["country"]; $country = $package["destination"]["ประเทศ"]; foreach ( $package['contents'] เป็น $item_id => $values ) { $_product = $values['data']; $weight = $weight + $_product->get_weight() * $values['ปริมาณ']; } $weight = wc_get_weight( น้ำหนัก $, 'กก.' ); ถ้า ( น้ำหนัก $ <= 10 ) { ต้นทุน $ = 0; } elseif( น้ำหนัก $ <= 30 ) { ต้นทุน $ = 5; } elseif( น้ำหนัก $ <= 50 ) { ต้นทุน $ = 10; } อื่น { ต้นทุน $ = 20; } }
- จากโค้ดข้างต้น เรามีต้นทุนตามน้ำหนักของรถเข็น เราต้องคำนวณต้นทุนสำหรับประเทศที่จัดส่งที่เลือก เมื่อต้องการทำสิ่งนี้ให้เพิ่มรหัสนี้:
<?php ฟังก์ชันสาธารณะคำนวณ _shipping( $package ) { $countryZones = อาร์เรย์ ( 'HR' => 0, 'สหรัฐฯ' => 3, 'GB' => 2, 'CA' => 3, 'อีเอส' => 2, 'เด' => 1, 'ไอที' => 1 ); $โซนราคา = อาร์เรย์ ( 0 => 10, 1 => 30, 2 => 50, 3 => 70 ); $zoneFromCountry = $countryZones[ $ประเทศ ]; $priceFromZone = $zone ราคา[ $zoneFromCountry ]; $cost += $priceFromZone; }
- เราได้คำนวณต้นทุนตามน้ำหนักรวม และเราได้บวกต้นทุนตามประเทศที่จัดส่งด้วย ขั้นตอนสุดท้ายคือการเพิ่มรหัสนี้เพื่อลงทะเบียนอัตรา
รหัสทำงานอย่างไร
ในตัวอย่างแรกในส่วนนี้ เราได้กำหนดตัวแปรเริ่มต้นสองสามตัว: $weight
, $cost
และ $country
เพื่อให้ได้ผลรวม เราได้รับน้ำหนักรวมโดยการวนซ้ำรถเข็นและเพิ่มน้ำหนักสำหรับแต่ละผลิตภัณฑ์ในรถเข็นไปยังตัวแปร $weight
หลังจากที่ได้น้ำหนักรวมแล้ว เราใช้ function wc_get_weight
เพื่อแปลงน้ำหนักเป็นกิโลกรัม เนื่องจากเป็นหน่วยวัด ซึ่งวิธีการจัดส่งของเราได้กำหนดขีดจำกัดไว้ สุดท้ายคือตั้งขีดจำกัดไว้ที่ 100 กก.
ในตัวอย่างที่สอง อาร์เรย์ $countryZones
จะเก็บโซนสำหรับแต่ละประเทศ และอาร์เรย์ที่สอง $zonePrices
จะถือราคาสำหรับแต่ละโซน
นี่จะเป็นผลลัพธ์สำหรับโซนอิตาลี 1:
นี่จะเป็น ผลลัพธ์สำหรับโซนสเปน 2:
นี่จะเป็นผลลัพธ์สำหรับโซนแคนาดา:
หากคุณประสบปัญหาในการนำโค้ดนี้ไปใช้ นี่คือโค้ดแบบเต็ม:
<?php ฟังก์ชันสาธารณะคำนวณ _shipping( $package ) { น้ำหนัก $ = 0; ต้นทุน $ = 0; $country = $package["destination"]["country"]; $country = $package["destination"]["ประเทศ"]; foreach ( $package['contents'] เป็น $item_id => $values ) { $_product = $values['data']; $weight = $weight + $_product->get_weight() * $values['ปริมาณ']; } $weight = wc_get_weight( น้ำหนัก $, 'กก.' ); ถ้า ( น้ำหนัก $ <= 10 ) { ต้นทุน $ = 0; } elseif( น้ำหนัก $ <= 30 ) { ต้นทุน $ = 5; } elseif( น้ำหนัก $ <= 50 ) { ต้นทุน $ = 10; } อื่น { ต้นทุน $ = 20; } $countryZones = อาร์เรย์ ( 'HR' => 0, 'สหรัฐฯ' => 3, 'GB' => 2, 'CA' => 3, 'อีเอส' => 2, 'เด' => 1, 'ไอที' => 1 ); $โซนราคา = อาร์เรย์ ( 0 => 10, 1 => 30, 2 => 50, 3 => 70 ); $zoneFromCountry = $countryZones[ $ประเทศ ]; $priceFromZone = $zone ราคา[ $zoneFromCountry ]; $cost += $priceFromZone; อัตรา $ = อาร์เรย์ ( 'id' => $this->id, 'label' => $this->title, 'ต้นทุน' => $cost ); $นี้->add_rate( $อัตรา); }
บทสรุป
ในโพสต์นี้ เราได้สร้างปลั๊กอินที่กำหนดเองเพื่อเพิ่มวิธีการจัดส่งแบบกำหนดเองใน WooCommerce นอกจากนี้ ฉันได้แชร์ WooCommerce Shipping API กับคุณ ซึ่งช่วยให้คุณสร้างวิธีการจัดส่งด้วยขั้นตอนง่ายๆ นอกจากนี้ ยังสามารถตั้งค่าข้อจำกัดและความพร้อมใช้งานภายในวิธีการจัดส่งเมื่อคำนวณความพร้อมจำหน่ายสินค้าหรือต้นทุนของวิธีการจัดส่ง อย่างไรก็ตาม สามารถตั้งค่านอกวิธีการจัดส่งได้โดยใช้การกระทำของ WooCommerce ฉันหวังว่าบทช่วยสอนนี้จะเป็นวิธีแก้ปัญหาสำหรับการเพิ่มวิธีการจัดส่งแบบกำหนดเองใน WooCommerce
บทความที่คล้ายกัน
- วิธีเพิ่มหมายเลข GTIN บนผลิตภัณฑ์ใน WooCommerce
- วิธีการลบได้ถูกเพิ่มไปยังข้อความรถเข็นของคุณ WooCommerce
- วิธีเพิ่มความน่าเชื่อถือหรือโลโก้ที่ปลอดภัยในหน้าชำระเงินของ WooCommerce
- ออกจากระบบ WooCommerce โดยไม่มีการยืนยัน : วิธีลบ "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบ"
- วิธีการเปลี่ยนเส้นทางหน้า WordPress โดยไม่มีปลั๊กอิน?
- วิธีเพิ่มรูปสินค้าหน้าชำระเงิน WooCommerce
- วิธีตั้งค่าผลิตภัณฑ์เด่นใน WooCommerce
- วิธีซ่อนฟิลด์รหัสคูปอง WooCommerce
- วิธีแสดงผลิตภัณฑ์ WooCommerce ตามหมวดหมู่
- วิธีซ่อนสินค้าทั้งหมดจากหน้าร้านค้าใน WooCommerce
- วิธีจัดเรียงหมวดหมู่ WooCommerce เพื่อประสบการณ์ผู้ใช้ที่ดีขึ้น
- วิธีการขายสินค้าดิจิทัลด้วย WooCommerce
- วิธีการเปลี่ยนประกาศ 'ใส่ในรถเข็น' ของ WooCommerce
- วิธีปิดการใช้งานวิธีการชำระเงินสำหรับหมวดหมู่เฉพาะ
- 30+ ปลั๊กอิน WooCommerce ที่ดีที่สุดสำหรับร้านค้าของคุณ (ส่วนใหญ่ฟรี)
- วิธีเปลี่ยนชื่อข้อความสถานะคำสั่งซื้อใน WooCommerce
- 23 ปลั๊กอิน WooCommerce ที่ดีที่สุดสำหรับการปรับแต่งหน้าชำระเงิน
- วิธีลบการเรียงลำดับผลิตภัณฑ์เริ่มต้น WooCommerce
- วิธีตรวจสอบว่าปลั๊กอินมีการใช้งานใน WordPress หรือไม่ [ 3 วิธี ]