วิธีอัพเดทราคาสินค้าแบบเป็นโปรแกรมใน WooCommerce
เผยแพร่แล้ว: 2020-10-10คุณต้องการเรียนรู้วิธี อัปเดตราคาผลิตภัณฑ์โดยทางโปรแกรมใน WooCommerce หรือไม่? ในคู่มือนี้ เราจะแสดงวิธีเปลี่ยนราคาใน WooCommerce โดยไม่ต้องใช้ปลั๊กอินหรือติดตั้งเครื่องมือพิเศษใดๆ
หากคุณใช้อย่างชาญฉลาด ส่วนลดสามารถช่วยปรับปรุงอัตราการแปลงและเพิ่มยอดขายได้ มีหลายวิธีในการใช้ส่วนลดกับร้านค้าอีคอมเมิร์ซของคุณ ตัวอย่างเช่น คุณสามารถใช้คูปอง WooCommerce โดยทางโปรแกรม
อย่างไรก็ตาม คุณสามารถ อัปเดตราคาสินค้าได้โดยไม่ต้องใช้คูปอง ตัวอย่างเช่น คุณสามารถมอบส่วนลดพิเศษให้กับผู้ใช้ที่สมัครรับจดหมายข่าวของคุณ หรือผู้ที่ใช้จ่ายมากกว่า $100 ในร้านค้าของคุณ
ในคู่มือนี้ คุณจะได้เรียนรู้การเปลี่ยนแปลงราคาเมื่อลูกค้าเพิ่มสินค้าลงในรถเข็นโดยไม่ต้องใช้คูปองใดๆ และโดยการเข้าถึงออบเจกต์ตะกร้าสินค้าของ WooCommerce โดยตรง เราจะมาดูตัวอย่างและใช้ตรรกะบางอย่างในการอัปเดตราคา เป้าหมายคือคุณเข้าใจตรรกะ เพื่อให้คุณสามารถปรับแต่งสคริปต์และนำไปใช้กับร้านค้าของคุณได้
วิธีอัพเดทราคาสินค้าแบบเป็นโปรแกรมใน WooCommerce
ในส่วนนี้ คุณจะได้เรียนรู้ วิธีอัปเดตราคาผลิตภัณฑ์โดยทางโปรแกรมใน WooCommerce เราจะมาดูตัวอย่างต่างๆ เพื่อให้แนวคิดว่าคุณสามารถทำอะไรได้บ้างในร้านค้าของคุณ
- อัพเดทราคาสินค้าเมื่อเลือกช่องทำเครื่องหมาย
- เพิ่มช่องทำเครื่องหมายลงในหน้าผลิตภัณฑ์
- อัพเดทราคาเมื่อผู้ใช้เพิ่มสินค้าลงในรถเข็น
- คำนวณราคารวมของรถเข็นใหม่
- แก้ไขราคาสินค้าตามบทบาทของผู้ใช้
- อัพเดทราคาสินค้าตามอนุกรมวิธานสินค้า
โปรดทราบว่าเราจะใช้ WooCommerce hooks หลายอัน ดังนั้นควรอ่านคู่มือนี้หากคุณไม่คุ้นเคยกับมัน
ก่อนที่เราจะเริ่มต้น...
ก่อนที่เราจะเริ่ม เนื่องจากเราจะทำการแก้ไขไฟล์หลักบางไฟล์ เราขอแนะนำให้คุณติดตั้งธีมลูกบนไซต์ของคุณ หากคุณไม่มีธีมย่อยและไม่ทราบวิธีการติดตั้ง โปรดดูคำแนะนำในการสร้างธีมย่อยหรือรายการปลั๊กอินสำหรับธีมลูกที่ดีที่สุด
หมายเหตุ : หากต้องการใช้สคริปต์เหล่านี้ ให้คัดลอกและวางลงในไฟล์ functions.php
ของธีมย่อย อย่างไรก็ตาม พึงระลึกไว้เสมอว่าสิ่งเหล่านี้มีไว้สำหรับการสอนเท่านั้น ดังนั้นให้ปรับแต่งมันก่อนที่จะนำไปผลิตจริง
1) อัพเดทราคาสินค้าเมื่อเลือกช่องทำเครื่องหมาย
ในสคริปต์ตัวอย่างต่อไปนี้ เราจะ เพิ่มการป้อนข้อมูลในช่องทำเครื่องหมายในแบบฟอร์มตะกร้าสินค้าบนหน้าผลิตภัณฑ์ ด้วยวิธีนี้ เราสามารถใช้ตรรกะที่กำหนดเองและอัปเดตราคาของผลิตภัณฑ์ใดๆ ที่ลูกค้าเพิ่มลงในรถเข็นได้แบบไดนามิกเฉพาะเมื่อเลือกช่องทำเครื่องหมายเท่านั้น
1.1 เพิ่มช่องทำเครื่องหมายลงในหน้าผลิตภัณฑ์
ก่อนที่เราจะอัปเดตราคาผลิตภัณฑ์ WooCommerce โดยทางโปรแกรม ให้ เพิ่มช่องทำเครื่องหมายไปที่หน้าผลิตภัณฑ์ ในการทำเช่นนั้น เพียงคัดลอกและวางสคริปต์ต่อไปนี้:
add_action('woocommerce_after_add_to_cart_button', 'add_check_box_to_product_page', 30 ); ฟังก์ชั่น add_check_box_to_product_page(){ ?> <div> <label for="extra_pack"> <?php _e( 'บรรจุภัณฑ์พิเศษ', 'quadlayers' ); ?> <input type="checkbox" name="extra_pack" value="extra_pack"> </label> </div> <?php }
woocommerce_after_add_to_cart_button
hook ช่วยให้เราสามารถพิมพ์ช่องทำเครื่องหมายได้ทันทีหลังปุ่มดังที่แสดงในภาพด้านบน
1.2 อัพเดทราคาเมื่อผู้ใช้เพิ่มสินค้าลงตะกร้า
อีกทางเลือกหนึ่งที่น่าสนใจคือการ อัพเดทราคาแบบไดนามิกเมื่อลูกค้าเพิ่มสินค้าลงในรถเข็น ดังนั้น ในกรณีนี้ หากต้องการอัปเดตราคาโดยทางโปรแกรมใน WooCommerce เพียงวางสคริปต์นี้ต่อจากอันก่อนหน้า
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 ); ฟังก์ชัน add_cart_item_data( $cart_item_data, $product_id, $variation_id ) { // รับรหัสสินค้าและราคา $product = wc_get_product( $product_id ); $ราคา = $สินค้า->get_price(); // กล่องกาเครื่องหมายแพ็คพิเศษ if( ! ว่างเปล่า( $_POST['extra_pack'] ) ) { $cart_item_data['new_price'] = $ราคา + 15; } ส่งคืน $cart_item_data; }
woocommerce_add_cart_item_data
คือ WooCommerce hook ที่จะให้เราแก้ไขราคาของผลิตภัณฑ์ปัจจุบันได้ นอกจากนี้ เงื่อนไข if()
จะตรวจสอบว่ากล่องกาเครื่องหมายถูกเลือกหรือไม่ และหากมี ให้อัปเดตราคาในบรรทัดต่อไปนี้ ตอนนี้ มาแยกย่อยโค้ดเพื่อให้เข้าใจถึงสิ่งที่แต่ละส่วนทำได้ดีขึ้น
-
extra_pack
คือชื่อของช่องทำเครื่องหมายที่เราสร้างในขั้นตอนที่แล้ว -
$price
คือราคาสินค้าปัจจุบัน เราปรับเปลี่ยนได้ตามต้องการโดยมีเงื่อนไขบางประการ -
$cart_item_data['new_price'] = $price + 15;
คือวิธีที่เราเพิ่มราคาขึ้น $15 เมื่อเงื่อนไขif()
เป็นจริง นี่คือเวลาที่ผู้ใช้เลือกกล่องกาเครื่องหมายบรรจุภัณฑ์เพิ่มเติม โดยการปรับรหัส คุณสามารถเลือกเพิ่มหรือลดราคาได้ตามจำนวนที่คุณต้องการ
1.3 คำนวณราคารวมของรถเข็นใหม่
เนื่องจากเราสามารถเรียก hook woocommerce_add_cart_item_data
ได้หลายครั้งเมื่อโหลดรถเข็น เราจึงต้อง คำนวณยอดรวมและยอดรวมย่อยของรถเข็นใหม่ เพื่อหลีกเลี่ยงผลลัพธ์ที่ไม่ต้องการ เช่น ราคามีการอัปเดตหลายครั้งหรือทุกครั้งที่ผู้ใช้เพิ่มผลิตภัณฑ์ หากต้องการอัปเดตผลิตภัณฑ์ ให้วางโค้ดต่อไปนี้ต่อจากสองโค้ดก่อนหน้า:
add_action( 'woocommerce_before_calculate_totals', 'before_calculate_totals', 10, 1 ); ฟังก์ชั่น before_calculate_totals( $cart_obj ) { if ( is_admin() && ! กำหนด ( 'DOING_AJAX' ) ) { กลับ; } // วนซ้ำในแต่ละรายการรถเข็น foreach( $cart_obj->get_cart() เป็น $key=>$value ) { if( isset( $value['new_price'] ) ) { $ราคา = $value['new_price']; $value['data']->set_price( ( $ราคา ) ); } } }
ฟังก์ชันนี้ช่วยให้แน่ใจว่าเราจะอัปเดตราคาเมื่อผลิตภัณฑ์ตรงกับตรรกะตามเงื่อนไขของเราเท่านั้น (ที่ผู้ใช้เลือกช่องทำเครื่องหมายบรรจุภัณฑ์เพิ่มเติม) ด้วยวิธีนี้ เราป้องกันข้อผิดพลาดที่อาจเกิดขึ้นทั้งหมดเมื่อคำนวณราคารวมของรถเข็น
ราคาสินค้าเพิ่มขึ้น 15
หากทุกอย่างเป็นไปด้วยดีและตะกร้าสินค้าตรงตามเงื่อนไขที่เราตั้งไว้ ฟังก์ชันของเราจะเพิ่มค่าบริการเพิ่มเติม $15 จากราคาเดิมเมื่อผู้ใช้เลือกช่องทำเครื่องหมายในหน้าผลิตภัณฑ์ ก่อนที่จะคลิกปุ่มหยิบใส่ตะกร้า
เพื่อหลีกเลี่ยงการละทิ้งรถเข็นและปรับปรุงประสบการณ์การซื้อ คุณควร แสดงราคาใหม่เสมอก่อนที่ลูกค้าจะเพิ่มสินค้าลงในรถเข็น มิฉะนั้น พวกเขาจะเห็นเฉพาะราคาสุดท้ายในหน้าชำระเงิน
2. แก้ไขราคาสินค้าตามบทบาทของผู้ใช้
ในทำนองเดียวกัน เราสามารถ อัปเดตราคาผลิตภัณฑ์ WooCommerce โดยทางโปรแกรมตามบทบาทของผู้ใช้ ตัวอย่างเช่น คุณสามารถให้ส่วนลดพิเศษแก่ผู้ใช้ที่สมัครหรือลงทะเบียน โดยคัดลอกและวางสคริปต์ต่อไปนี้:
ฟังก์ชัน add_cart_item_data( $cart_item_data, $product_id, $variation_id ) { // รับรหัสสินค้าและราคา $product = wc_get_product( $product_id ); $ราคา = $สินค้า->get_price(); if(// เข้าสู่ระบบ && เป็นบทบาทลูกค้า is_user_logged_in()==true&& wc_current_user_has_role('ลูกค้า' )){ $cart_item_data['new_price'] = $ราคา * 0.8; } ส่งคืน $cart_item_data; } add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 );
อย่างที่คุณเห็น ข้อแตกต่างเพียงอย่างเดียวระหว่างสคริปต์นี้กับสคริปต์ก่อนหน้าในจุดที่ 1.2 คือตัวดำเนินการตรรกะ if()
ที่นี่ เรากำลังตรวจสอบว่าผู้ใช้เข้าสู่ระบบหรือไม่ และมีบทบาทลูกค้าหรือไม่ ซึ่งเรากำหนดให้กับผู้ใช้ที่ลงทะเบียนซึ่งเคยซื้อจากร้านค้าของเรามาก่อน
เมื่อผู้ซื้อปฏิบัติตามเงื่อนไขดังกล่าว เราจะ คูณราคาสินค้าด้วย 0.8 ให้ส่วนลด 20% แน่นอน คุณสามารถแก้ไขบทบาทของผู้ใช้และเปลี่ยนบทบาทให้กับผู้อื่นได้ เช่น สมาชิก ผู้แก้ไข หรือบทบาทอื่นๆ ที่คุณได้ลงทะเบียนไว้บนเว็บไซต์ของคุณ
โปรดทราบว่าเพื่อให้ทำงานได้อย่างถูกต้อง คุณต้องใช้ฟังก์ชัน 'before_calculate_totals'
และขอเกี่ยวเพื่อคำนวณผลรวมรถเข็นใหม่ เพียงใช้การคำนวณราคารวมของสคริปต์ตะกร้าสินค้าที่เราเห็นในขั้นตอนที่ 1.3 ใหม่
3. อัพเดทราคาสินค้าตามอนุกรมวิธานสินค้า
สุดท้าย ใน WooCommerce เราสามารถ อัปเดตราคาผลิตภัณฑ์แบบไดนามิกโดยโปรแกรมตามการจัดหมวดหมู่ผลิตภัณฑ์ ในการทำเช่นนั้น มาดูสคริปต์ต่อไปนี้กัน
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 ); ฟังก์ชัน add_cart_item_data( $cart_item_data, $product_id, $variation_id ) { // รับรหัสสินค้าและราคา $product = wc_get_product( $product_id ); $ราคา = $สินค้า->get_price(); $terms = get_the_terms( $product_id, 'product_cat' ); // ตรงกับหมวดหมู่ ! ใช้ส่วนลด if($terms[0]->name=='Posters'){ $cart_item_data['new_price'] = $ราคา + 20; } ส่งคืน $cart_item_data; }
ในตัวอย่างนี้ เราได้รับหมวดหมู่ของผลิตภัณฑ์ที่เพิ่มลงในรถเข็นโดยใช้ get_the_terms()
ของ WordPress ในตัว ในบรรทัดถัดไป เราใช้เงื่อนไขของเราเพื่อดึงหมวดหมู่ของผลิตภัณฑ์โดยใช้ $terms[0]->name
ด้วยวิธีนี้ หากผลิตภัณฑ์อยู่ในหมวดหมู่ โปสเตอร์ เราจะขึ้นราคาอีก 20 เหรียญ
นี่คือสคริปต์ตัวอย่างที่คุณสามารถนำไปใช้เป็นฐานและแก้ไขเพื่อเปลี่ยนแปลงทั้งการจัดหมวดหมู่และจำนวนเงินที่คุณต้องการเพิ่มหรือหักออกจากราคา
สุดท้ายนี้ จำไว้ว่าคุณต้องใช้ฟังก์ชัน 'before_calculate_totals'
และขอที่เกี่ยวข้องดังที่เราทำในขั้นตอนที่ 1.3
อย่างที่คุณเห็น ความรู้ความชำนาญในการใช้ฟังก์ชันแบบมีเงื่อนไขและ WordPress/WooCommerce จะให้วิธีที่ยืดหยุ่นมากในการอัปเดตราคาผลิตภัณฑ์โดยทางโปรแกรม นี่เป็นเพียงตัวอย่างเล็กๆ น้อยๆ ที่จะให้แนวคิดแก่คุณเกี่ยวกับสิ่งที่เป็นไปได้
อย่างไรก็ตาม ยังมีอีกมากที่คุณสามารถทำได้เพื่อปลดปล่อยความคิดสร้างสรรค์ของคุณและค้นหาวิธีใหม่ๆ ในการแก้ไขราคาสินค้าของคุณ ตัวอย่างเช่น คุณสามารถใช้ส่วนลดกับรหัสผลิตภัณฑ์เฉพาะ ตาม URL ที่ผู้ใช้มาจาก ขึ้นอยู่กับตำแหน่งหรือรหัสของผู้ใช้ เป็นต้น ความเป็นไปได้ไม่มีที่สิ้นสุด ลองเล่นกับสคริปต์และค้นหาแนวทางแก้ไขที่ดีที่สุดสำหรับร้านค้าของคุณ
หมายเหตุสุดท้าย
- สคริปต์ตัวอย่างเหล่านี้ในจุดที่ 1, 2 และ 3 จะไม่ทำงานร่วมกัน คุณจะต้องปรับแต่งตรรกะของคุณให้เป็นอันเดียว หากคุณต้องการใช้หลายฟังก์ชันพร้อมกัน
- คุณอาจต้องรวมฟังก์ชันการตรวจสอบเพิ่มเติมสำหรับตรรกะตามเงื่อนไขที่ซับซ้อนมากขึ้น
- ใช้ฟังก์ชันการคำนวณใหม่เสมอ - ดังที่เห็นในจุดที่ 1.3 - เมื่อทำงานกับวัตถุรถเข็น WooCommerce
- สคริปต์เหล่านี้เป็นสคริปต์ตัวอย่างและมีวัตถุประสงค์เพื่อการสอนเท่านั้น โปรดแก้ไขก่อนนำเข้าสู่การผลิต
บทสรุป
สรุปแล้ว การเรียนรู้วิธี อัปเดตราคาผลิตภัณฑ์โดยทางโปรแกรมใน WooCommerce ช่วยให้คุณมีความยืดหยุ่นได้มาก คุณสามารถให้ส่วนลดแก่ผู้ใช้ที่สมัครรับข้อมูล เพิ่มค่าธรรมเนียมหากลูกค้าต้องการบรรจุภัณฑ์เพิ่มเติมหรือจัดส่งที่รวดเร็ว เป็นต้น และส่วนที่ดีที่สุดคือ คุณไม่จำเป็นต้องติดตั้งปลั๊กอินใดๆ เพื่อดำเนินการดังกล่าว
ในคู่มือนี้ เราได้เห็นตัวอย่างต่างๆ ในการเปลี่ยนแปลงราคาแบบไดนามิกโดยทางโปรแกรม อย่างไรก็ตาม นั่นเป็นเพียงส่วนเล็กๆ ของภูเขาน้ำแข็งเท่านั้น WooCommerce มอบความเป็นไปได้ไม่รู้จบให้กับคุณ ดังนั้นเราขอแนะนำให้คุณลองเล่นและปรับแต่งสคริปต์
หากคุณมีคำถามใด ๆ เกี่ยวกับสคริปต์ แจ้งให้เราทราบในความคิดเห็นด้านล่าง เรายินดีที่จะช่วยเหลือคุณ
สุดท้าย หากคุณต้องการปรับปรุงขั้นตอนการชำระเงิน ดูคำแนะนำของเราเพื่อเพิ่มประสิทธิภาพการชำระเงิน