Ví dụ đơn giản bạn muốn tạo mã giảm giá 20% tối đa 50k cho khách hàng thì làm thế nào? vấn đề này Woo không có sẵn mà bạn cần thêm 1 đoạn code nhỏ bên dưới vào wp-content/themes/{your-theme}/functions.php là được nhé
/* * Cách thêm mức giảm tối đa cho mã giảm giá trong Woocommerce * Maximum discount with coupon code in Woocommerce * Fixed & Update by levantoan.com */ add_action( 'woocommerce_coupon_options', 'devvn_max_discount_woocommerce_coupon_options', 10, 2 ); function devvn_max_discount_woocommerce_coupon_options( $coupon_id, $coupon ){ // max discount per coupons $max_discount = get_post_meta( $coupon_id, '_max_discount', true ); woocommerce_wp_text_input( array( 'id' => 'max_discount', 'label' => __( 'Mức giảm tối đa', 'devvn' ), 'placeholder' => esc_attr__( 'Nhập số tiền giảm tối đa', 'devvn' ), 'description' => __( 'Mức giảm tối đa mà mã giảm giá này có thể giảm.', 'devvn' ), 'type' => 'number', 'desc_tip' => true, 'class' => 'short', 'custom_attributes' => array( 'step' => 1, 'min' => 0, ), 'value' => $max_discount ? $max_discount : '', ) ); } add_action( 'woocommerce_coupon_options_save', 'devvn_max_discount_woocommerce_coupon_options_save', 10, 2 ); function devvn_max_discount_woocommerce_coupon_options_save( $coupon_id, $coupon ) { update_post_meta( $coupon_id, '_max_discount', wc_format_decimal( $_POST['max_discount'] ) ); } add_filter( 'woocommerce_coupon_get_discount_amount', 'devvn_max_discount_woocommerce_coupon_get_discount_amount', 20, 5 ); function devvn_max_discount_woocommerce_coupon_get_discount_amount( $discount, $discounting_amount, $cart_item, $single, $coupon ) { $max_discount = get_post_meta( $coupon->get_id(), '_max_discount', true ); if ( is_numeric($max_discount) && ! is_null( $cart_item ) && WC()->cart->subtotal_ex_tax ) { $cart_item_qty = is_null( $cart_item ) ? 1 : $cart_item['quantity']; if ( wc_prices_include_tax() ) { $discount_percent = ( wc_get_price_including_tax( $cart_item['data'] ) * $cart_item_qty ) / WC()->cart->subtotal; } else { $discount_percent = ( wc_get_price_excluding_tax( $cart_item['data'] ) * $cart_item_qty ) / WC()->cart->subtotal_ex_tax; } $_discount = ( $max_discount * $discount_percent ); $discount = min( $_discount, $discount ); } return $discount; }
Sau khi add code xong trong mục thêm mã giảm giá > tab Chung sẽ có thêm mục “Mức giảm tối đa” bạn chỉ cần nhập số tiền tối đa có thể giảm vào đó là xong
Mong là code trên giúp ích cho bạn
Để duy trì blog nên mình có làm aff cho 1 số bên hosting. Nhưng dù aff mình cũng chọn 1 số nhà cung cấp uy tín về chất lượng và support nên các bạn cứ yên tâm nhé.
Nếu có mua hosting mà có trong list dưới đây các bạn click vào link trước khi mua để ủng hộ mình nhé. Mình cảm ơn nhiều
- Azdigi: Giá rẻ thì dùng gói Pro Gold Hosting còn chất lượng hơn thì em khuyên dùng Business Hosting. Có điều kiện thì lên VPS nhé
- Tino hosting
- iNet
- Nước ngoài thì Vultr
- Bình luận