วิธีเพิ่มวิธีการจัดส่งแบบกำหนดเองใน 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 วิธี ]
