Cách thêm mức giảm tối đa cho các mã giảm giá trong Woocommerce năm 2024

Cách thêm mức giảm tối đa cho các mã giảm giá trong Woocommerce

Cách thêm mức giảm tối đa cho các mã giảm giá trong Woocommerce như nào? Trong môi trường cạnh tranh khốc liệt của thị trường thương mại điện tử hiện nay, việc sử dụng các chương trình giảm giá hay còn gọi là mã ưu đãi là một cách hiệu quả để thu hút và giữ chân khách hàng. Trong Woocommerce, một trong những nền tảng thương mại điện tử phổ biến nhất, bạn có thể dễ dàng thêm mã giảm giá cho sản phẩm của mình. Tuy nhiên, để tối ưu hóa chiến lược giảm giá, việc thêm mức giảm tối đa cho mã giảm giá là rất quan trọng. Dưới đây là cách bạn có thể thực hiện điều này:

Cách thêm mức giảm tối đa cho các mã giảm giá trong Woocommerce

Cách thêm mức giảm tối đa cho các mã giảm giá trong Woocommerce
Cách thêm mức giảm tối đa cho các mã giảm giá trong Woocommerce

Giả sử bạn muốn tạo một mã giảm giá hay còn gọi là mã ưu đãi với 20% giảm giá tối đa là 50k cho khách hàng trong Woocommerce đòi hỏi một chút tinh chỉnh trong mã nguồn. Code dưới đây, còn có thêm chức năng là nhập số lượng sản phẩm trong giỏ hàng tối thiểu để có thể áp dụng được mã giảm giá. Dưới đây là đoạn mã bạn có thể thêm vào file functions.php của chủ đề WordPress của mình:

[vip]
// Thêm mức giảm tối đa và số lượng sản phẩm tối thiểu cho mã giảm giá trong Woocommerce
//Code này được vuacode.com phát triển lại của levantoan.com

// Bài viết gốc: https://levantoan.com/cach-them-muc-giam-toi-da-cho-ma-giam-gia-trong-woocommerce

// Anh em nhớ đăng kí và ủng hộ Vua Code nhé. 

add_action( 'woocommerce_coupon_options', 'vuacode_max_discount_woocommerce_coupon_options', 10, 2 );

function vuacode_max_discount_woocommerce_coupon_options( $coupon_id, $coupon ){

    // Lấy giá trị mức giảm tối đa từ cơ sở dữ liệu

    $max_discount = get_post_meta( $coupon_id, '_max_discount', true );

    $min_product_quantity = get_post_meta( $coupon_id, '_min_product_quantity', true );

    

    // Hiển thị trường nhập giá trị mức giảm tối đa trên giao diện quản lý mã giảm giá

    woocommerce_wp_text_input( array(

        'id' => 'max_discount',

        'label' => __( 'Mức giảm tối đa', 'vuacode' ),

        'placeholder' => esc_attr__( 'Nhập số tiền giảm tối đa', 'vuacode' ),

        'description' => __( 'Mức giảm tối đa mà mã giảm giá này có thể giảm.', 'vuacode' ),

        'type' => 'number',

        'desc_tip' => true,

        'class' => 'short',

        'custom_attributes' => array(

            'step' => 1,

            'min' => 0,

        ),

        'value' => $max_discount ? $max_discount : '',

    ) );




    // Hiển thị trường nhập số lượng sản phẩm tối thiểu để áp dụng mã giảm tối đa

    woocommerce_wp_text_input( array(

        'id' => 'min_product_quantity',

        'label' => __( 'Số lượng sản phẩm trong giỏ hàng tối thiểu là bao nhiêu để áp dụng mã giảm tối đa', 'vuacode' ),

        'placeholder' => esc_attr__( 'Nhập số lượng sản phẩm tối thiểu', 'vuacode' ),

        'description' => __( 'Số lượng sản phẩm tối thiểu cần trong giỏ hàng để áp dụng mã giảm giá.', 'vuacode' ),

        'type' => 'number',

        'desc_tip' => true,

        'class' => 'short',

        'custom_attributes' => array(

            'step' => 1,

            'min' => 1,

        ),

        'value' => $min_product_quantity ? $min_product_quantity : '',

    ) );

}




add_action( 'woocommerce_coupon_options_save', 'vuacode_max_discount_woocommerce_coupon_options_save', 10, 2 );

function vuacode_max_discount_woocommerce_coupon_options_save( $coupon_id, $coupon ) {

    // Lưu giá trị mức giảm tối đa vào cơ sở dữ liệu khi người dùng lưu thay đổi

    update_post_meta( $coupon_id, '_max_discount', wc_format_decimal( $_POST['max_discount'] ) );

    update_post_meta( $coupon_id, '_min_product_quantity', wc_format_decimal( $_POST['min_product_quantity'] ) );

}




add_filter( 'woocommerce_coupon_get_discount_amount', 'vuacode_max_discount_woocommerce_coupon_get_discount_amount', 20, 5 );

function vuacode_max_discount_woocommerce_coupon_get_discount_amount( $discount, $discounting_amount, $cart_item, $single, $coupon ) {

    // Lấy giá trị mức giảm tối đa từ cơ sở dữ liệu

    $max_discount = get_post_meta( $coupon->get_id(), '_max_discount', true );

    $min_product_quantity = get_post_meta( $coupon->get_id(), '_min_product_quantity', true );




    if ( $cart_item['quantity'] >= $min_product_quantity && is_numeric($max_discount) && ! is_null( $cart_item ) && WC()->cart->subtotal_ex_tax ) {

        if ( wc_prices_include_tax() ) {

            $discount_percent = ( wc_get_price_including_tax( $cart_item['data'] ) * $cart_item['quantity'] ) / WC()->cart->subtotal;

        } else {

            $discount_percent = ( wc_get_price_excluding_tax( $cart_item['data'] ) * $cart_item['quantity'] ) / WC()->cart->subtotal_ex_tax;

        }

        $_discount = ( $max_discount * $discount_percent );

        $discount = min( $_discount, $discount );

    } else {

        // Nếu số lượng sản phẩm không đủ, đặt giá trị giảm giá là 0

        $discount = 0;

    }

    return $discount;

}
[/vip]
Để hiểu rõ hơn về mã này, Vua Code sẽ giúp bạn hiểu rõ hơn một xíu nhé. Đoạn mã này được thiết kế để mở rộng tính năng mã giảm giá trong WooCommerce bằng cách thêm hai trường mới: mức giảm tối đa và số lượng sản phẩm tối thiểu cần có trong giỏ hàng để áp dụng mã giảm giá này. Dưới đây là một bản mô tả chi tiết và giải thích về từng phần trong đoạn mã:
  • Thêm trường mức giảm tối đa và số lượng sản phẩm tối thiểu:
– Dòng đầu tiên khai báo một hàm để thêm các trường này vào trang quản lý mã giảm giá trong WooCommerce.
– Sử dụng hàm woocommerce_wp_text_input để tạo các trường nhập liệu với các thuộc tính như id, nhãn, mô tả, loại và giá trị mặc định.
  • Lưu trữ giá trị khi người dùng lưu thay đổi:
– Hàm thứ hai được kích hoạt khi người dùng lưu thay đổi trên trang quản lý mã giảm giá.
– Sử dụng update_post_meta để lưu các giá trị mới của mức giảm tối đa và số lượng sản phẩm tối thiểu vào cơ sở dữ liệu.
  • Áp dụng mức giảm tối đa:
– Hàm cuối cùng được gọi mỗi khi tính toán giá trị giảm giá cho một mục trong giỏ hàng.
– Nó kiểm tra nếu số lượng sản phẩm trong giỏ hàng đạt hoặc vượt qua mức quy định và xác định mức giảm giá tương ứng.
– Sử dụng các phương pháp wc_get_price_including_tax và wc_get_price_excluding_tax để tính toán tỷ lệ phần trăm giảm giá dựa trên giá trị sản phẩm.
Cuối cùng, giảm giá được giới hạn không vượt quá mức giảm tối đa được đặt.
Thông qua việc thêm các tính năng này, người quản trị cửa hàng có thể linh hoạt hơn trong việc quản lý các chính sách giảm giá và điều kiện áp dụng cho khách hàng của mình trong WooCommerce.
Sau khi thêm mã giảm giá vào, bạn chỉ cần nhập số tiền tối đa có thể giảm vào mục “Mức giảm tối đa” trong tab “Chung”.
Hiển thị phần số lượng tối thiểu trong giỏ hàng để áp dụng mã giảm giá
Hiển thị phần số lượng tối thiểu trong giỏ hàng để áp dụng mã giảm giá
Ví dụ khi Vua Code nhập số lượng tối thiểu trong giỏ hàng để áp dụng mã giảm giá là 5. Thì sẽ như ảnh dưới đây
Cách thêm mức giảm tối đa cho các mã giảm giá trong Woocommerce
Khi nhập số lượng tối thiểu trong giỏ hàng để áp dụng mã giảm giá là 5.  Các bạn áp dụng mã giảm giá nhưng số lượng trong giỏ hàng dưới 5  thì sẽ như dưới
Cách thêm mức giảm tối đa cho các mã giảm giá trong Woocommerce

 

Khi bạn đạt đủ số lượng thì sẽ áp dụng được mã giảm giá, và giá này sẽ là giá được giảm tối đa.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

PhoneZalo