วิธีเสนอส่วนลดตามปริมาณใน WooCommerce
เผยแพร่แล้ว: 2020-01-27โดยทั่วไป ในฐานะเจ้าของร้านค้า บางครั้งคุณอาจต้องการเสนอส่วนลดหากลูกค้าซื้อผลิตภัณฑ์เฉพาะมากกว่าหนึ่งปริมาณ นี่อาจเป็นการเพิ่มยอดขายหรือทำให้สต๊อกส่วนเกินเสร็จ ในโพสต์นี้ คุณจะได้เรียนรู้วิธีเสนอส่วนลดตามปริมาณใน WooCommerce โดยใช้ทั้งข้อมูลโค้ดและปลั๊กอิน
วิธีเสนอส่วนลดตามปริมาณใน WooCommerce โดยใช้ Code Snippet
มาสำรวจวิธีการใช้ข้อมูลโค้ดเพื่อทำสิ่งนี้กัน ด้วยข้อมูลโค้ดนี้ เราจะเสนอส่วนลดให้กับลูกค้า 5% หากพวกเขาซื้อผลิตภัณฑ์เดียวกันมากกว่า 2 ปริมาณ
ในการดำเนินการนี้ คุณจะต้องเพิ่มโค้ดด้านล่างลงในไฟล์ functions.php ของธีมลูกของคุณ:
add_filter('woocommerce_add_cart_item_data', 'ts_add_default_price_as_custom', 20, 3 ); ฟังก์ชัน ts_add_default_price_as_custom ( $cart_item_data, $product_id, $variation_id ){ $product_id = $variation_id > 0 ? $variation_id : $product_id; ## ----- ตั้งส่วนลดที่นี่ ----- ## $discount_percentage = 5; // ส่วนลด (5%) // วัตถุ WC_Product $product = wc_get_product($product_id); $price = (ลอย) $product->get_price(); // กำหนดราคาฐานเริ่มต้นของผลิตภัณฑ์เป็นข้อมูลรายการรถเข็นที่กำหนดเอง $cart_item_data['base_price'] = $ราคา; // กำหนดราคาส่วนลดสินค้าเป็นข้อมูลรายการตะกร้าสินค้าเอง $cart_item_data['new_price'] = $price * (100 - $discount_percentage) / 100; // ตั้งค่าเปอร์เซ็นต์เป็นข้อมูลรายการรถเข็นที่กำหนดเอง $cart_item_data['percentage'] = $ส่วนลด_percentage; ส่งคืน $cart_item_data; } // แสดงสินค้าราคาเดิม add_filter('woocommerce_cart_item_price', 'ts_display_cart_items_default_price', 20, 3 ); ฟังก์ชัน ts_display_cart_items_default_price( $product_price, $cart_item, $cart_item_key ){ if( isset($cart_item['base_price']) ) { $product = $cart_item['data']; $product_price = wc_price( wc_get_price_to_display( $product, array( 'price' => $cart_item['base_price'] ) ) ); } ส่งคืน $product_price; } // แสดงชื่อสินค้าพร้อมเปอร์เซ็นต์ส่วนลด add_filter( 'woocommerce_cart_item_name', 'ts_add_percentage_to_item_name', 20, 3 ); ฟังก์ชัน ts_add_percentage_to_item_name( $product_name, $cart_item, $cart_item_key ){ if( isset($cart_item['percentage']) && isset($cart_item['base_price']) ) { if( $cart_item['data']->get_price() != $cart_item['base_price'] ) $product_name .= ' <em>(' . $cart_item['percentage'] . '% discounted)</em>'; } ส่งคืน $product_name; } add_action( 'woocommerce_before_calculate_totals', 'ts_custom_discounted_cart_item_price', 20, 1 ); ฟังก์ชัน ts_custom_discounted_cart_item_price( $cart ) { ถ้า ( is_admin() && ! กำหนด ( 'DOING_AJAX' ) ) กลับ; if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) กลับ; ## ----- กำหนดปริมาณที่นี่ ----- ## $targeted_qty = 2; // ปริมาณเป้าหมาย // วนรอบรายการรถเข็น foreach ( $cart->get_cart() เป็น $cart_item ) { // สำหรับปริมาณสินค้าตั้งแต่ 2 ชิ้นขึ้นไป if( $cart_item['quantity'] >= $targeted_qty && isset($cart_item['new_price']) ){ // ตั้งรายการรถเข็นลดราคา $cart_item['data']->set_price($cart_item['new_price']); $cart_item['data']->set_price($cart_item['new_price']); $cart_item['data']->set_price($cart_item['ใหม่_ราคา']); } } }
รหัสด้านบนจะเพิ่มส่วนลด 5% หากปริมาณของผลิตภัณฑ์สูงกว่า 2 คุณสามารถเปลี่ยนสิ่งนี้เพื่อให้เหมาะกับความต้องการของคุณโดยเปลี่ยนตัวแปร $discount_percentage เพื่อกำหนดส่วนลดที่ต้องการ และ $targeted_qty เพื่อกำหนดปริมาณที่สูงกว่า คุณต้องการใช้ส่วนลด
ตอนนี้ คุณจะสามารถดูราคาส่วนลดได้ หากคุณเพิ่มสินค้าประเภทเดียวกันในรถเข็นของคุณตั้งแต่ 2 ชิ้นขึ้นไป
เราใช้ hooks หลักสี่ตัวในโค้ดด้านบน:
woocommerce_add_cart_item_data : ตะขอตัวกรองนี้ใช้เพื่อเปลี่ยนเนื้อหา / ข้อมูลเมตาของรถเข็น
woocommerce_cart_item_price : ตะขอตัวกรองนี้ใช้เพื่อเปลี่ยนวิธีการแสดงราคาในรถเข็น
woocommerce_cart_item_name : ตะขอตัวกรองนี้สามารถใช้เปลี่ยนชื่อผลิตภัณฑ์ในรถเข็นได้ ในตัวอย่างของเรา เราใช้เพื่อเพิ่มเปอร์เซ็นต์ส่วนลดต่อท้ายชื่อผลิตภัณฑ์
woocommerce_before_calculate_totals : เบ็ดการดำเนินการนี้ใช้เพื่อแทนที่ราคาผลิตภัณฑ์ในรถเข็น
วิธีเสนอส่วนลดตามปริมาณเฉพาะสินค้าที่ไม่ได้ลดราคา:
หากคุณต้องการจำกัดสิ่งนี้ไว้เฉพาะผลิตภัณฑ์ที่ไม่ได้ลดราคา คุณต้องแก้ไขข้อมูลโค้ดด้านบนเพื่อเพิ่มเงื่อนไขภายในฟังก์ชันที่เพิ่มลงใน hook woocommerce_add_cart_item_data:

add_filter('woocommerce_add_cart_item_data', 'ts_add_default_price_as_custom', 20, 3 ); ฟังก์ชัน ts_add_default_price_as_custom ( $cart_item_data, $product_id, $variation_id ){ $product_id = $variation_id > 0 ? $variation_id : $product_id; ## ----- ตั้งส่วนลดที่นี่ ----- ## $discount_percentage = 5; // ส่วนลด (5%) // วัตถุ WC_Product $product = wc_get_product($product_id); // เพิ่มเงื่อนไขที่นี่เพื่อเสนอส่วนลดเฉพาะสินค้าที่ไม่ลดราคา if( ! $product->is_on_sale() ){ $price = (ลอย) $product->get_price(); // กำหนดราคาฐานเริ่มต้นของผลิตภัณฑ์เป็นข้อมูลรายการรถเข็นที่กำหนดเอง $cart_item_data['base_price'] = $ราคา; // กำหนดราคาส่วนลดสินค้าเป็นข้อมูลรายการตะกร้าสินค้าเอง $cart_item_data['new_price'] = $price * (100 - $discount_percentage) / 100; // ตั้งค่าเปอร์เซ็นต์เป็นข้อมูลรายการรถเข็นที่กำหนดเอง $cart_item_data['percentage'] = $ส่วนลด_percentage; } ส่งคืน $cart_item_data; } // แสดงสินค้าราคาเดิม add_filter('woocommerce_cart_item_price', 'ts_display_cart_items_default_price', 20, 3 ); ฟังก์ชัน ts_display_cart_items_default_price( $product_price, $cart_item, $cart_item_key ){ if( isset($cart_item['base_price']) ) { $product = $cart_item['data']; $product_price = wc_price( wc_get_price_to_display( $product, array( 'price' => $cart_item['base_price'] ) ) ); } ส่งคืน $product_price; } // แสดงชื่อสินค้าพร้อมเปอร์เซ็นต์ส่วนลด add_filter( 'woocommerce_cart_item_name', 'ts_add_percentage_to_item_name', 20, 3 ); ฟังก์ชัน ts_add_percentage_to_item_name( $product_name, $cart_item, $cart_item_key ){ if( isset($cart_item['percentage']) && isset($cart_item['base_price']) ) { if( $cart_item['data']->get_price() != $cart_item['base_price'] ) $product_name .= ' <em>(' . $cart_item['percentage'] . '% discounted)</em>'; } ส่งคืน $product_name; } add_action( 'woocommerce_before_calculate_totals', 'ts_custom_discounted_cart_item_price', 20, 1 ); ฟังก์ชัน ts_custom_discounted_cart_item_price( $cart ) { ถ้า ( is_admin() && ! กำหนด ( 'DOING_AJAX' ) ) กลับ; if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) กลับ; ## ----- กำหนดปริมาณที่นี่ ----- ## $targeted_qty = 2; // ปริมาณเป้าหมาย // วนรอบรายการรถเข็น foreach ( $cart->get_cart() เป็น $cart_item ) { // สำหรับปริมาณสินค้าตั้งแต่ 2 ชิ้นขึ้นไป if( $cart_item['quantity'] >= $targeted_qty && isset($cart_item['new_price']) ){ // ตั้งรายการรถเข็นลดราคา $cart_item['data']->set_price($cart_item['new_price']); $cart_item['data']->set_price($cart_item['new_price']); $cart_item['data']->set_price($cart_item['ใหม่_ราคา']); } } }
ด้วยวิธีนี้ คุณสามารถเสนอส่วนลดตามปริมาณโดยใช้ข้อมูลโค้ดสำหรับการไม่ขาย การขาย หรือผลิตภัณฑ์ทั้งหมด เช่น ทั่วทั้งร้าน โดยระบุเงื่อนไขที่เหมาะสมภายในฟังก์ชันที่เพิ่มลงในตัวกรอง hook woocommerce_add_cart_item_data
วิธีเสนอส่วนลดตามปริมาณใน WooCommerce โดยใช้ปลั๊กอิน
หากคุณไม่สะดวกใจที่จะเพิ่มข้อมูลโค้ดลงในไฟล์เว็บไซต์ของคุณ คุณสามารถใช้ปลั๊กอินเพื่อทำสิ่งนี้ได้เช่นกัน:
- กฎส่วนลดสำหรับ WooCommerce : นี่เป็นปลั๊กอินฟรีที่ให้คุณเพิ่มส่วนลดเป็นเปอร์เซ็นต์ ไม่เพียงแต่ตามปริมาณของผลิตภัณฑ์ แต่ยังรวมถึงหากลูกค้าของคุณเกินราคาที่กำหนด คุณยังสามารถเพิ่มส่วนลดเป็นเปอร์เซ็นต์สำหรับสินค้าจำนวนหนึ่งได้ (ไม่จำเป็นต้องเป็นสินค้าเดียวกัน) ปลั๊กอินรุ่น PRO นี้ให้คุณเพิ่มส่วนลดทั้งหมวดหมู่ ข้อเสนอ BOGO (ซื้อหนึ่งแถมหนึ่งฟรี) ส่วนลดราคาคงที่แทนส่วนลดเป็นเปอร์เซ็นต์ และอื่นๆ
- ส่วนลดตามเงื่อนไขสำหรับ WooCommerce: นี่เป็นปลั๊กอินอีกตัวหนึ่งที่นำเสนอฟีเจอร์ที่สำคัญเกือบทั้งหมดในเวอร์ชัน ฟรี คุณสามารถเพิ่มส่วนลดตามปริมาณ จำนวนรายการในรถเข็น สำหรับหมวดหมู่เฉพาะ บนผลิตภัณฑ์เฉพาะ บนคุณสมบัติตัวแปร (เสื้อเชิ้ตสีน้ำเงิน ไซส์กลาง ฯลฯ) สำหรับบทบาทร้านค้าบางอย่างหรือแม้แต่ลูกค้าเฉพาะราย รุ่น PRO มีคุณสมบัติเพิ่มเติมสองสามอย่าง ซึ่งหนึ่งในนั้นคือการเพิ่มผลิตภัณฑ์ลงในตะกร้าฟรีเมื่อซื้อผลิตภัณฑ์บางประเภท
- คูปองอัจฉริยะ: นอกเหนือจากบัตรของขวัญ เครดิตร้านค้า คูปอง URL และข้อจำกัดขั้นสูงแล้ว คุณยังสามารถจำกัดคูปองตามจำนวนผลิตภัณฑ์เฉพาะในรถเข็น (ตัวอย่าง - เสื้อ 10 ตัว) และปริมาณผลิตภัณฑ์รวมของผลิตภัณฑ์หลายรายการใน รถเข็น (ตัวอย่าง – เสื้อ 5 ตัว + กางเกง 2 ตัว + เข็มขัด 3 ตัว)
ด้วยวิธีนี้ คุณอาจใช้ข้อมูลโค้ดหรือปลั๊กอินอย่างใดอย่างหนึ่งเพื่อเสนอส่วนลดให้กับลูกค้าของคุณตามปริมาณของผลิตภัณฑ์