WooCommerce에서 다양한 결제 수단에 대한 요금 또는 할인을 추가하는 방법

게시 됨: 2019-03-26

전자상거래 웹사이트에서 체크아웃하는 동안 선택한 각 결제 방법에 서비스 요금이나 할인이 적용되는 경우가 종종 있습니다. 또한 착불 서비스 요금이 대체 결제 수단보다 높다는 점도 주목할 만하다. 이는 선불 가능성을 높이기 위한 것입니다. 선불은 고객이 지불하지 않을 위험을 줄이는 것뿐만 아니라 비즈니스의 현금 흐름을 보장하는 데 도움이 됩니다. 결제수단과 관련된 수수료가 없는 경우 착불결제가 아닌 다른 결제수단으로 결제 시 할인혜택이 제공될 수 있습니다.

또한 실행하려는 계획이나 판촉에 따라 특정 지불 방법에 대해 할인을 추가할 수 있습니다. 할인은 일반적으로 고객에게 매력적이며 매출 증대에 도움이 됩니다. 이 게시물에서는 WooCommerce에서 다양한 결제 방법에 대해 요금 또는 할인을 추가하고 결과적으로 동일한 혜택을 얻을 수 있는 다양한 방법을 보여줍니다.

코드 조각을 통해 다른 지불 방법에 대한 백분율 할인 추가

하위 테마의 functions.php 파일에 코드 조각을 추가하여 이를 달성할 수 있습니다.

아래 코드는 WooCommerce 결제 페이지에서 PayPal을 결제 수단으로 선택한 경우 총 금액에 할인을 추가합니다. $percent에 값을 할당하여 원하는 지불 방법에 적용할 할인 비율을 지정할 수 있습니다. WooCommerce의 기본 결제 방법은 은행 직접 이체(bacs), 수표 결제(수표), 배달 대금 상환(cod) 및 PayPal(페이팔)이며, 해당 ID는 괄호 안에 언급되어 있습니다.

 add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 );

기능 ts_add_discount( $cart_object ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) 반환;

    // 결제 수단(예: cod, bacs, check 또는 paypal)을 언급합니다.
    $payment_method = '페이팔';

    // 적용할 백분율
    $퍼센트 = 2; // 2%

    $cart_total = $cart_object->subtotal_ex_tax;
    
    $chosen_payment_method = WC()->세션->get('chosen_payment_method'); //선택한 결제 수단 가져오기

    if( $payment_method == $chosen_payment_method ){
        
                   $label_text = __( "페이팔 할인" );
        
                   // 백분율 계산
                   $discount = number_format(($cart_total / 100) * $퍼센트, 2);
        
                   // 할인 추가
                   $cart_object->add_fee( $label_text, -$discount, false );
    }
}

add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' );

함수 ts_refresh_payment_method(){
    // 제이쿼리
    ?>
    <스크립트 유형="텍스트/자바스크립트">
        (함수($){
            $( 'form.checkout' ).on( '변경', '입력[이름^="결제방법"]', function() {
                $('body').trigger('update_checkout');
            });
        })(제이쿼리);
    </스크립트>
    <?php
}

여기에 두 가지 기능이 필요합니다. 하나는 적절한 할인 또는 수수료를 추가하는 작업을 수행하고 다른 하나는 javascript를 사용하는 사용자의 지불 방법 선택 변경 사항을 탭으로 유지하는 것입니다. woocommerce_cart_calculate_feeswoocommerce_review_order_before_payment 후크는 이 두 기능을 각각 추가하는 데 사용됩니다.

Direct Bank Transfer, Cheque, Cash-on-Delivery 및 PayPal에 대한 지불 방법의 값은 각각 bacs , check , codpaypal 입니다. add_fee() 함수는 WooCommerce의 WC_Cart 클래스의 내장 메서드입니다.

그러면 소계에서 할인 금액이 차감되어 합계가 표시됩니다.

Discount percentage applied - add charges or discounts for different payment methods in WooCommerce

약간의 수정으로 동일한 코드 스니펫에서 여러 지불 방법에 대한 할인을 언급할 수 있습니다.

 add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 );

기능 ts_add_discount( $cart_object ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) 반환;
  
    $label_text=__("");
    
    $퍼센트=0;

    // 결제 수단(예: cod, bacs, check 또는 paypal)을 언급합니다.


    $cart_total = $cart_object->subtotal_ex_tax;
    
    $chosen_payment_method = WC()->세션->get('chosen_payment_method'); //선택한 결제 수단 가져오기

    if( $chosen_payment_method == "페이팔" ){

               $label_text = __( "페이팔 할인" );

               // 적용할 백분율
               $퍼센트 = 2; // 2%
        
    }

    else if( $chosen_payment_method == "bacs"){
               $label_text = __( "직접 은행 송금 할인" );

               // 적용할 백분율
               $퍼센트 = 3; // 삼%
  
    }

    else if( $chosen_payment_method == "수표"){
               $label_text = __( "수표 결제 할인" );

               // 적용할 백분율
               $퍼센트 = 2; // 2%
    }

    또 다른 {
               $label_text = __( "택배 착불 할인" );

               // 적용할 백분율
               $퍼센트 = 0; // 0%

    }

     // 백분율 계산
        $discount = number_format(($cart_total / 100) * $퍼센트, 2);
        
    // 할인 추가
        $cart_object->add_fee( $label_text, -$discount, false );
    
}

add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' );
함수 ts_refresh_payment_method(){
    // 제이쿼리
    ?>
    <스크립트 유형="텍스트/자바스크립트">
        (함수($){
            $( 'form.checkout' ).on( '변경', '입력[이름^="결제방법"]', function() {
                $('body').trigger('update_checkout');
            });
        })(제이쿼리);
    </스크립트>
    <?php
}

코드 조각을 통해 다양한 결제 방법에 대한 고정 할인 금액 추가

백분율 대신 금액을 언급하고 싶다고 가정합니다. 백분율을 계산하는 단계를 제거하고 각 지불 방법을 기반으로 입력으로 할인 금액을 수락하여 동일한 스니펫을 다시 사용할 수 있습니다.

 add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 );

기능 ts_add_discount( $cart_object ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) 반환;
  
    $label_text=__("");
    $discount_amount=0;

    // 결제 수단(예: cod, bacs, check 또는 paypal)을 언급합니다.


    $cart_total = $cart_object->subtotal_ex_tax;
    $chosen_payment_method = WC()->세션->get('chosen_payment_method'); //선택한 결제 수단 가져오기

    if( $chosen_payment_method == "페이팔" ){

              $label_text = __( "페이팔 할인" );

              // 적용할 할인 금액
              $discount_amount = 200; 
        
    }

    else if( $chosen_payment_method == "bacs"){
              
              $label_text = __( "직접 은행 송금 할인" );

              // 적용할 할인 금액
              $discount_amount = 150; 
  
    }

    else if( $chosen_payment_method == "수표"){
       
             $label_text = __( "수표 결제 할인" );
    
             // 적용할 할인 금액
             $discount_amount = 100; 

    }

    또 다른 {
      
             $label_text = __( "택배 착불 할인" );
    
             // 적용할 할인 금액
             $discount_amount = 0; 
    }

        
    // 할인 추가
       $cart_object->add_fee( $label_text, -$discount_amount, false );
    
}

add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' );
함수 ts_refresh_payment_method(){
    // 제이쿼리
    ?>
    <스크립트 유형="텍스트/자바스크립트">
        (함수($){
            $( 'form.checkout' ).on( '변경', '입력[이름^="결제방법"]', function() {
                $('body').trigger('update_checkout');
            });
        })(제이쿼리);
    </스크립트>
    <?php
}

Discount amount applied - add charges or discounts for different payment methods in WooCommerce

서비스 요금을 추가하려면 add_fee 함수의 인수 중 하나의 부호를 "-"에서 "+"로 변경하거나 양수를 의미하는 부호를 전혀 사용하지 않아야 합니다.

 add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 );

기능 ts_add_discount( $cart_object ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) 반환;
  
$label_text=__("");

$service_charge=0;

    // 결제 수단(예: cod, bacs, check 또는 paypal)을 언급합니다.


    $cart_total = $cart_object->subtotal_ex_tax;

    $chosen_payment_method = WC()->세션->get('chosen_payment_method'); //선택한 결제 수단 가져오기

    if( $chosen_payment_method == "페이팔" ){

                  $label_text = __( "페이팔 서비스 요금" );

                  // 적용할 서비스 요금
                  $service_charge=200;
        
     }

    else if( $chosen_payment_method == "bacs"){
                  $label_text = __( "직접 은행 송금 서비스 수수료" );

                  // 적용할 서비스 요금
                  $service_charge=100;
  
    }

    else if( $chosen_payment_method == "수표"){
                  $label_text = __( "수표 결제 서비스 요금" );
    
                  // 적용할 서비스 요금
                  $service_charge=150;
    }

    또 다른 {
                  $label_text = __( "착불배송비" );
    
                  // 적용할 서비스 요금
                  $service_charge=250;
    }

        
     // 서비스 차지 추가
        $cart_object->add_fee( $label_text, $service_charge, false );
    
}

add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' );

함수 ts_refresh_payment_method(){
    // 제이쿼리
    ?>
    <스크립트 유형="텍스트/자바스크립트">
        (함수($){
            $( 'form.checkout' ).on( '변경', '입력[이름^="결제방법"]', function() {
                $('body').trigger('update_checkout');
            });
        })(제이쿼리);
    </스크립트>
    <?php
}

이러한 방식으로 선택한 결제 방법에 따라 서비스 요금이 적용됩니다.

How to add charges or discounts for different payment methods in WooCommerce - Tyche Softwares

로그인한 사용자에게만 다른 지불 방법에 대한 할인 추가(코드 조각을 통해)

로그인한 사용자에게만 이러한 할인을 제공하려면(이 게시물의 댓글을 통해 요청한 대로) 사용자가 로그인했는지 여부를 확인하는 조건을 추가하기만 하면 됩니다. 이것은 is_user_logged_in() 함수에 의해 수행될 수 있습니다. 아래 코드 스니펫은 로그인한 사용자에 대해서만 특정 결제 방법에 대해 백분율 할인을 추가하는 방법을 보여줍니다.

 add_action( 'woocommerce_cart_calculate_fees','ts_add_discount', 20, 1 );
기능 ts_add_discount( $cart_object ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) 반환;
  
    if (is_user_logged_in()){
            
            // 결제 수단(예: cod, bacs, check 또는 paypal)을 언급합니다.
            $payment_method = '페이팔';
            // 적용할 백분율
            $퍼센트 = 2; // 2%
            $cart_total = $cart_object->subtotal_ex_tax;
    
            $chosen_payment_method = WC()->세션->get('chosen_payment_method'); //선택한 결제 수단 가져오기
            if( $payment_method == $chosen_payment_method ){
        
                   $label_text = __( "페이팔 할인" );
        
                   // 백분율 계산
                   $discount = number_format(($cart_total / 100) * $퍼센트, 2);
        
                   // 할인 추가
                   $cart_object->add_fee( $label_text, -$discount, false );
             }
     }
}

add_action( 'woocommerce_review_order_before_payment', 'ts_refresh_payment_method' );
함수 ts_refresh_payment_method(){
    // 제이쿼리
    ?>
    <스크립트 유형="텍스트/자바스크립트">
        (함수($){
            $( 'form.checkout' ).on( '변경', '입력[이름^="결제방법"]', function() {
                $('body').trigger('update_checkout');
            });
        })(제이쿼리);
    </스크립트>
    <?php
}

요구 사항에 따라 이 게시물의 모든 코드 조각을 사용할 수 있습니다. 로그인한 사용자만 사용하도록 제한하려면 해당 코드 스니펫 내에 조건 -if(is_user_logged_in()) 를 추가하기만 하면 됩니다.

플러그인을 통해 다양한 결제 수단에 대한 요금 또는 할인 추가

코드 스니펫을 추가하고 싶지 않다면 동일한 것을 달성할 수 있는 쉬운 방법이 있습니다. 바로 플러그인입니다! 다양한 기능을 제공하는 무료 플러그인과 유료 플러그인이 있습니다.

  • WooCommerce에 대한 지불 게이트웨이 기반 수수료 및 할인
    수수료, 할인, 세금 등을 추가하고 최소 및 최대 장바구니 금액을 기준으로 설정할 수 있는 무료 플러그인입니다. 할인을 적용한 후 수수료를 반올림할 수도 있습니다. 대시보드를 통해 액세스할 수 있는 사용하기 쉬운 인터페이스로 이 모든 작업을 수행할 수 있습니다.

    Screenshot1 of plugin Payment Gateway based fees and discounts - add charges or discounts for different payment methods in WooCommerceScreenshot2 of plugin Payment Gateway based fees and discounts - add charges or discounts for different payment methods in WooCommerce

  • WooCommerce 결제 수단별 할인(무료)
    이것은 WooCommerce에서 제공하는 기본 지불 방법에 대한 할인을 설정하기 위해 WordPress 대시보드 내부에 간단한 인터페이스를 제공하는 WPCodelibrary의 무료 플러그인입니다. 그러나 서비스 요금이나 수수료를 추가하는 기능은 없습니다. Screenshot of plugin Discount Per Payment Method - add charges or discounts for different payment methods in WooCommerce

  • WooCommerce에 대한 지불 게이트웨이 기반 수수료 및 할인($39)
    당사가 제공하는 이 프리미엄 플러그인에는 국가, 주, 제품 범주 등에 따라 다양한 지불 방법에 대한 할인은 물론 수수료를 추가할 수 있는 전체 기능 세트가 포함되어 있습니다. 이 외에도 수수료에 세금을 적용할 수도 있습니다(배송비 제외 ) 플러그인을 사용합니다. 인터페이스는 간단하고 사용자 친화적이며 개별 제품에 대해 다른 할인 및 수수료를 적용할 수도 있습니다.