วิธีแสดง “You Save x%” ต่ำกว่าราคาขายสำหรับผลิตภัณฑ์แบบธรรมดาและแบบแปรผันใน WooCommerce

เผยแพร่แล้ว: 2019-04-03

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

วิธีแสดงให้คุณประหยัด % ต่ำกว่าราคาขายสำหรับผลิตภัณฑ์ง่ายๆ

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

display “You Save x%” below sale prices for simple and variable products in WooCommerce - Default simple product page
การแสดงสินค้าทั่วไปลดราคา

การเพิ่มโค้ดด้านล่างลงในไฟล์ functions.php ของธีมลูกของคุณจะแสดง "You Save x%" ใต้ราคาของผลิตภัณฑ์อย่างง่าย เพื่อให้ผู้ใช้ทราบได้ทันทีว่าดีลนี้ดีหรือไม่ดีเพียงใด

 ฟังก์ชัน ts_you_save() {
  
  ผลิตภัณฑ์ $ ทั่วโลก;
  
   if( $product->is_type('simple') || $product->is_type('external') || $product->is_type('grouped') ) {
      
     	$regular_price = get_post_meta( $product->get_id(), '_regular_price', จริง ); 
        $sale_price = get_post_meta( $product->get_id(), '_sale_price', จริง );
     
     	if( !empty($sale_price) ) {
  
              $amount_saved = $regular_price - $sale_price;
              $currency_symbol = get_woocommerce_currency_symbol();

              $percentage = รอบ ( ( ( $regular_price - $sale_price ) / $regular_price ) * 100 );
              ?>
              <p><b>คุณบันทึก: <?php echo number_format($percentage,0, '', '').'%'; ?></b></p>				
              <?php		
        }
   }
}

add_action( 'woocommerce_single_product_summary', 'ts_you_save', 11 );

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

display “You Save x%” below sale prices for simple and variable products in WooCommerce - You Save Percentage Displayed for a Simple Product
แสดง “You Save %” ต่ำกว่าราคาขายของ Simple Product

หากคุณต้องการแสดงจำนวนเงินที่บันทึกไว้พร้อมกับเปอร์เซ็นต์ คุณสามารถแก้ไขข้อมูลโค้ดเดียวกันเพียงเล็กน้อยด้วยวิธีต่อไปนี้:

 ฟังก์ชัน ts_you_save() {
  
  ผลิตภัณฑ์ $ ทั่วโลก;
  
   if( $product->is_type('simple') || $product->is_type('external') || $product->is_type('grouped') ) {
      
     	$regular_price = get_post_meta( $product->get_id(), '_regular_price', จริง ); 
        $sale_price = get_post_meta( $product->get_id(), '_sale_price', จริง );
     
     	if( !empty($sale_price) ) {
  
              $amount_saved = $regular_price - $sale_price;
              $currency_symbol = get_woocommerce_currency_symbol();

              $percentage = รอบ ( ( ( $regular_price - $sale_price ) / $regular_price ) * 100 );
              ?>
              <p><b>คุณบันทึก: <?php echo number_format($amount_saved,2, '.', '')." (". number_format($percentage,0, '', '')."%)" ; ?></b></p>						
              <?php		
        }
   }
}

add_action( 'woocommerce_single_product_summary', 'ts_you_save', 11 );

ฟังก์ชัน number_format เป็นฟังก์ชัน PHP ในตัวที่ยอมรับ 4 อาร์กิวเมนต์:

  1. ตัวเลขหรือในกรณีของเราคือจำนวนเงินและเปอร์เซ็นต์ที่บันทึกไว้ตามลำดับ (เราใช้ฟังก์ชันสองครั้ง)
  2. จำนวนตำแหน่งทศนิยม เราได้ตั้งค่าเป็น 2 สำหรับจำนวนเงินที่บันทึกไว้ และ 0 สำหรับเปอร์เซ็นต์ เนื่องจากเราไม่ต้องการแสดงค่าทศนิยมสำหรับเปอร์เซ็นต์
  3. ตัวคั่นทศนิยมที่คุณต้องการใช้ เราได้ตั้งค่านี้เป็นจุด (.) สำหรับจำนวนเงินที่บันทึกไว้และค่าว่างสำหรับเปอร์เซ็นต์
  4. ตัวคั่นหลักพัน หากจำนวนเงินที่บันทึกไว้เกิน 1,000 คุณสามารถใช้อาร์กิวเมนต์นี้ได้ เราได้ตั้งค่าให้ว่างเปล่าในปัจจุบัน

จำนวนเงินที่บันทึกไว้และเปอร์เซ็นต์จะแสดงด้านล่างราคา:

display “You Save x%” below sale prices for simple and variable products in WooCommerce - You Save Amount and Percentage Displayed for a Simple Product
แสดง “You Save %” ด้วยจำนวนเงินที่ต่ำกว่าราคาขายของ Simple Product

วิธีแสดงให้คุณประหยัด % ต่ำกว่าราคาขายสำหรับสินค้าผันแปร

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

display “You Save x%” below sale prices for simple and variable products in WooCommerce - Variable Product with Variation Selected
การเลือกรูปแบบต่างๆ ของสินค้าที่ลดราคาซึ่งมีราคาแตกต่างกันตามรูปแบบที่แตกต่างกัน

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

ข้อมูลโค้ดต่อไปนี้ที่คุณจะเพิ่มในไฟล์ footer.php มีฟังก์ชันที่ทริกเกอร์เมื่อมีการเปลี่ยนแปลงรูปแบบ ในกรณีของเรา สิ่งนี้จะเกิดขึ้นเมื่อมีการเลือกหรือเปลี่ยนแปลงรูปแบบขนาดโดยใช้ดรอปดาวน์ขนาด ฟังก์ชันนี้จับรหัสรูปแบบเฉพาะและส่งไปที่ functions.php ผ่านการโทร ajax

 <script>
jQuery (เอกสาร). พร้อม (ฟังก์ชั่น ($) {
             
  $('input.variation_id').change( ฟังก์ชั่น(){
    	
    if( '' != $('input.variation_id').val() ) {
                     
        	        var var_id = $('input.variation_id').val(); // รหัสรูปแบบที่คุณเลือก
      $.ajax({
        URL: "https://<your_woocommerce_site_url>/wp-admin/admin-ajax.php",
        		        ข้อมูล: {'action':'ts_calc_percentage_saved','vari_id': var_id} ,
        		        ความสำเร็จ: ฟังก์ชั่น (ข้อมูล) {

              ถ้า (ข้อมูล>0)
          {
            $( ".woocommerce-variation-price" ).append( "<p>คุณบันทึก: "+data+"%</p>");
          }
        		         },
        		        ข้อผิดพลาด: ฟังก์ชัน (errorThrown){
           			        console.log (errorThrown);
        		         }
    		        });                       
          }
   });
});
</script>

คุณต้องแทนที่ <your_woocommerce_site_url> ด้วย URL พื้นฐานของเว็บไซต์ WooCommerce ของคุณ

ข้อมูลโค้ดต่อไปนี้ที่คุณจะเพิ่มในไฟล์ functions.php มีฟังก์ชัน ts_calc_percentage_saved ที่ดึงราคาปกติและราคาลดของผลิตภัณฑ์ตามรหัสรูปแบบ คำนวณเปอร์เซ็นต์และส่งคืนฟังก์ชัน ajax ในส่วนท้าย ไฟล์.php

 //นี่คือวิธีที่คุณขอฟังก์ชันที่เรียกโดย ajax ใน WordPress
add_action("wp_ajax_ts_calc_percentage_saved", "ts_calc_percentage_saved");

//ฟังก์ชันด้านล่างถูกเรียกผ่านสคริปต์ ajax ใน footer.php
ฟังก์ชัน ts_calc_percentage_saved(){
          // $_REQUEST มีข้อมูลทั้งหมดที่ส่งผ่าน ajax
   		ถ้า ( isset($_REQUEST) ) {
       		        $เปอร์เซ็นต์=0;
     			$variation_id = sanitize_text_field($_REQUEST['vari_id']); $variation_id = ฆ่าเชื้อข้อความ_ฟิลด์($_REQUEST['vari_id']);
                        $variable_product = wc_get_product($variation_id);
                        $regular_price = $variable_product->get_regular_price();
                        $sale_price = $variable_product->get_sale_price();
     
       			if( !empty($sale_price) ) {
  
                             $amount_saved = $regular_price - $sale_price;
                             $currency_symbol = get_woocommerce_currency_symbol();

                             $percentage = รอบ ( ( ( $regular_price - $sale_price ) / $regular_price ) * 100 );
     			}
     			ตาย($%);
   		}
}

ฟังก์ชัน sanitize_text_field() เป็นฟังก์ชัน WordPress ที่ช่วยล้างข้อมูลที่เราได้รับจากฝั่งไคลเอ็นต์

ดังนั้น ตอนนี้คุณจะเห็น "คุณบันทึก" พร้อมกับเปอร์เซ็นต์ของจำนวนเงินที่บันทึกไว้ ต่ำกว่าราคาของรูปแบบ

display “You Save x%” below sale prices for simple and variable products in WooCommerce - Variable Product with You Save Percentage Displayed below the Variation Price
แสดง “คุณประหยัด %” ใต้ราคารูปแบบเมื่อเลือกรูปแบบจากเมนูดร็อปดาวน์

คุณสามารถจัดรูปแบบสิ่งนี้ได้ตามต้องการภายในฟังก์ชัน ajax โดยเพิ่ม HTML และ CSS ภายในฟังก์ชันผนวกในบรรทัดนี้:

$( “.woocommerce-variation-price” ).append( “<p>คุณบันทึก: “+data+”%</p>”);

แสดงคุณประหยัด % ใต้ชื่อผลิตภัณฑ์แทนที่จะอยู่เหนือปุ่ม Add to Cart สำหรับสินค้าแบบแปรผัน

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

ควรเพิ่มโค้ดชิ้นนี้ลงในไฟล์ functions.php ของธีมลูกของคุณ นอกเหนือจากข้อมูลโค้ดที่กล่าวถึงข้างต้น (ในไฟล์ footer.php และ functions.php)

 //โค้ดด้านล่างคือเปลี่ยนราคา

ฟังก์ชัน ts_shuffle_variable_product_elements(){
    ถ้า ( is_product() ) {
        โพสต์ $ ทั่วโลก;
        $product = wc_get_product( $post->ID );
        if ( $product->is_type( 'variable' ) ) {
            remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation', 10 );
            add_action( 'woocommerce_before_variations_form', 'woocommerce_single_variation', 20 );

            remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
            add_action( 'woocommerce_before_variations_form', 'woocommerce_template_single_title', 10 );

            remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
            add_action( 'woocommerce_before_variations_form', 'woocommerce_template_single_excerpt', 30 );
        }
    }
}
add_action( 'woocommerce_before_single_product', 'ts_shuffle_variable_product_elements' );

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

display “You Save x%” below sale prices for simple and variable products in WooCommerce - Variable Product with Variation Price and You Save Percentage Displayed below the Product Title
กำลังแสดงราคารูปแบบต่างๆ และ "คุณประหยัดได้ %" ใต้ชื่อผลิตภัณฑ์เมื่อเลือกรูปแบบจากเมนูแบบเลื่อนลง