วิธีอัพเดทราคาสินค้าแบบเป็นโปรแกรมใน WooCommerce

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

คุณต้องการเรียนรู้วิธี อัปเดตราคาผลิตภัณฑ์โดยทางโปรแกรมใน WooCommerce หรือไม่? ในคู่มือนี้ เราจะแสดงวิธีเปลี่ยนราคาใน WooCommerce โดยไม่ต้องใช้ปลั๊กอินหรือติดตั้งเครื่องมือพิเศษใดๆ

หากคุณใช้อย่างชาญฉลาด ส่วนลดสามารถช่วยปรับปรุงอัตราการแปลงและเพิ่มยอดขายได้ มีหลายวิธีในการใช้ส่วนลดกับร้านค้าอีคอมเมิร์ซของคุณ ตัวอย่างเช่น คุณสามารถใช้คูปอง WooCommerce โดยทางโปรแกรม

อย่างไรก็ตาม คุณสามารถ อัปเดตราคาสินค้าได้โดยไม่ต้องใช้คูปอง ตัวอย่างเช่น คุณสามารถมอบส่วนลดพิเศษให้กับผู้ใช้ที่สมัครรับจดหมายข่าวของคุณ หรือผู้ที่ใช้จ่ายมากกว่า $100 ในร้านค้าของคุณ

ในคู่มือนี้ คุณจะได้เรียนรู้การเปลี่ยนแปลงราคาเมื่อลูกค้าเพิ่มสินค้าลงในรถเข็นโดยไม่ต้องใช้คูปองใดๆ และโดยการเข้าถึงออบเจกต์ตะกร้าสินค้าของ WooCommerce โดยตรง เราจะมาดูตัวอย่างและใช้ตรรกะบางอย่างในการอัปเดตราคา เป้าหมายคือคุณเข้าใจตรรกะ เพื่อให้คุณสามารถปรับแต่งสคริปต์และนำไปใช้กับร้านค้าของคุณได้

วิธีอัพเดทราคาสินค้าแบบเป็นโปรแกรมใน WooCommerce

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

  1. อัพเดทราคาสินค้าเมื่อเลือกช่องทำเครื่องหมาย
    1. เพิ่มช่องทำเครื่องหมายลงในหน้าผลิตภัณฑ์
    2. อัพเดทราคาเมื่อผู้ใช้เพิ่มสินค้าลงในรถเข็น
    3. คำนวณราคารวมของรถเข็นใหม่
  2. แก้ไขราคาสินค้าตามบทบาทของผู้ใช้
  3. อัพเดทราคาสินค้าตามอนุกรมวิธานสินค้า

โปรดทราบว่าเราจะใช้ WooCommerce hooks หลายอัน ดังนั้นควรอ่านคู่มือนี้หากคุณไม่คุ้นเคยกับมัน

ก่อนที่เราจะเริ่มต้น...

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

หมายเหตุ : หากต้องการใช้สคริปต์เหล่านี้ ให้คัดลอกและวางลงในไฟล์ functions.php ของธีมย่อย อย่างไรก็ตาม พึงระลึกไว้เสมอว่าสิ่งเหล่านี้มีไว้สำหรับการสอนเท่านั้น ดังนั้นให้ปรับแต่งมันก่อนที่จะนำไปผลิตจริง

1) อัพเดทราคาสินค้าเมื่อเลือกช่องทำเครื่องหมาย

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

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( ( $ราคา ) );
}
}
}

ฟังก์ชันนี้ช่วยให้แน่ใจว่าเราจะอัปเดตราคาเมื่อผลิตภัณฑ์ตรงกับตรรกะตามเงื่อนไขของเราเท่านั้น (ที่ผู้ใช้เลือกช่องทำเครื่องหมายบรรจุภัณฑ์เพิ่มเติม) ด้วยวิธีนี้ เราป้องกันข้อผิดพลาดที่อาจเกิดขึ้นทั้งหมดเมื่อคำนวณราคารวมของรถเข็น อัปเดตราคาผลิตภัณฑ์โดยทางโปรแกรมใน WooCommerce - ค่าธรรมเนียมเพิ่มเติม

ราคาสินค้าเพิ่มขึ้น 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 มอบความเป็นไปได้ไม่รู้จบให้กับคุณ ดังนั้นเราขอแนะนำให้คุณลองเล่นและปรับแต่งสคริปต์

หากคุณมีคำถามใด ๆ เกี่ยวกับสคริปต์ แจ้งให้เราทราบในความคิดเห็นด้านล่าง เรายินดีที่จะช่วยเหลือคุณ

สุดท้าย หากคุณต้องการปรับปรุงขั้นตอนการชำระเงิน ดูคำแนะนำของเราเพื่อเพิ่มประสิทธิภาพการชำระเงิน