특정 범주에 대한 결제 수단을 비활성화하는 방법

게시 됨: 2020-09-01

WooCommerce 특정 카테고리의 결제 수단 비활성화 WooCommerce 스토어를 운영 중이고 장바구니에 있는 제품 카테고리를 기반으로 특정 카테고리 또는 여러 지불 방법에 대한 지불 방법을 비활성화하는 방법을 알고 싶습니까? 제품 카테고리에 중점을 둔 솔루션을 찾고 있지만 약간의 변경으로 제품 자체의 배송 등급도 변경할 수 있는 경우 이 문서에서는 이를 달성하는 방법을 안내합니다.

특정 범주에 대한 결제 수단 비활성화

이 접근 방식이 유용한 좋은 예는 WooCommerce 매장 소유자가 고가 제품만 포함하는 카테고리를 갖고 고객이 신용 카드를 사용하는 대신 은행 송금으로 결제하기를 원하는 경우입니다. 이것은 카테고리에 대한 지불 방법을 비활성화해야 할 수 있는 많은 상황의 한 예일 뿐입니다.

기술에 정통하지 않은 경우 프리미엄 플러그인을 선택하여 작업을 수행할 수 있습니다. 예를 들어 WooCommerce 조건부 결제 플러그인은 결제 방법을 활성화하거나 비활성화하는 조건을 만드는 데 도움이 됩니다. 코드 사용에 능숙하지 않다면 이것이 고려해야 할 최고의 프리미엄 솔루션이 될 것입니다.

또한 이 플러그인을 사용하면 장바구니 합계, 청구 국가, 사용자 역할 등을 무제한 조건으로 만들고 사용할 수 있는 결제 게이트웨이와 표시하지 않을 항목을 정의할 수 있습니다.

WooCommerce 조건부 결제 플러그인

그러나 이 간단한 자습서에서는 PHP 코드 조각을 사용하여 특정 범주에 대한 결제 수단을 비활성화하는 방법을 보여 드리겠습니다.

PHP 코드 조각을 사용하여 특정 범주에 대한 결제 수단을 비활성화하는 단계

따라야 할 간단한 단계는 다음과 같습니다.

  1. WordPress 사이트에 로그인하고 관리자로 대시보드 에 액세스합니다.
  2. 대시보드 메뉴에서 모양 메뉴 > 테마 편집기 메뉴 를 클릭합니다. 테마 편집기 페이지가 열리면 특정 범주에 대한 지불 방법을 비활성화하는 기능을 추가할 테마 기능 파일을 찾으십시오.
  3. php 파일 에 다음 코드를 추가 합니다.
 /**
 * @snippet 특정 카테고리에 대한 결제 수단 비활성화
*/


add_filter( 'woocommerce_available_payment_gateways', 'njengah_unset_gateway_by_category' );


기능 njengah_unset_gateway_by_category( $available_gateways ) {

    if ( is_admin() ) $available_gateways를 반환합니다.

    if ( ! is_checkout() ) $available_gateways를 반환합니다.

    $unset = 거짓;

    $category_ids = 배열( 8, 37 );

    foreach ( WC()->cart->get_cart_contents() as $key => $values ​​) {

        $terms = get_the_terms( $values['product_id'], 'product_cat' );   

        foreach ( $terms as $term ) {       

            if ( in_array( $term->term_id, $category_ids ) ) {

                $unset = 사실;

                부서지다;

            }

        }

    }

    if ( $unset == true ) unset( $available_gateways['cheque'] );

    $available_gateways 반환;

}
  1. 이것이 결과일 것이다 특정 카테고리에 대한 결제 수단 비활성화

이 코드가 작동하려면 WooCommerce 스토어에 있는 올바른 카테고리 ID를 추가해야 합니다.

카테고리 ID 사용이 마음에 들지 않으면 WooCommerce 스토어에서 카테고리 슬러그를 사용할 수도 있습니다. 나중에 참조할 수 있도록 이해하기 쉽기 때문에 사용하도록 선택할 수 있습니다.

카테고리 슬러그를 사용하여 특정 카테고리에 대한 결제 방법을 비활성화하는 단계

  1. WordPress 사이트에 로그인하고 관리자로 대시보드 에 액세스합니다.
  2. 대시보드 메뉴에서 모양 메뉴 > 테마 편집기 메뉴 를 클릭합니다. 테마 편집기 페이지가 열리면 특정 범주에 대한 지불 방법을 비활성화하는 기능을 추가할 테마 기능 파일을 찾으십시오.
  3. php 파일 에 다음 코드를 추가 합니다.
 /**

 * @snippet 카테고리에 따라 지불 게이트웨이를 비활성화합니다.

*/

기능 njengah_disable_payment_gateway_category( $gateways ) {

// 지불 게이트웨이를 비활성화할 카테고리

$category_slugs = array( '액세서리', '다른 카테고리' );

$category_ids = get_terms( array( '분류' => 'product_cat', 'slug' => $category_slugs, '필드' => 'ids' ) );


// 주어진 카테고리에 대한 각 장바구니 항목을 확인합니다.

foreach ( WC()->cart->get_cart() as $item ) {

$product = $item['데이터'];

if ( $product && array_intersect( $category_ids, $product->get_category_ids() ) ) {

unset( $gateways['cod'] ); // 제품에 카테고리 중 하나가 있는 경우 결제 게이트웨이 'cod' 비활성화

부서지다;

}

}

$gateways 반환;

}

add_filter( 'woocommerce_available_payment_gateways', 'njengah_disable_payment_gateway_category' );
  1. 이것이 결과일 것이다 특정 카테고리에 대한 결제 수단 비활성화

올바른 카테고리 슬러그를 추가하고 비활성화하려는 지불 게이트웨이를 정의해야 함을 기억하십시오. 예를 들어 'cod'를 사용하여 착불 배송을 나타냅니다.

지정된 범주가 장바구니에 있을 때 지불 게이트웨이 식별자를 비활성화하려는 항목으로 변경해야 한다는 점에 유의하는 것이 중요합니다.

  • 은행 송금(bacs)
  • 수표(수표)
  • 대금 상환(대금 상환)
  • 페이팔(PayPal)

그러나 기본 지불 게이트웨이 중 하나를 사용하지 않는 경우에도 지불 게이트웨이 ID를 찾는 쉬운 방법이 있으므로 걱정하지 마십시오. 지불 게이트웨이 설정 페이지로 이동하여 이 작업을 수행할 수 있으며 거기에서 ID를 찾을 수 있습니다.

예를 들어 설정 페이지의 Cash on Delivery 옵션의 경우 URL은 wp-admin/admin.php?page=wc-settings&tab=checkout&section=cod입니다.

결론

이 게시물에서는 두 가지 방법을 사용하여 특정 범주에 대한 결제 수단을 비활성화하는 방법을 배웠습니다. 나중에 쉽게 참조할 수 있도록 제품 카테고리 ID 또는 카테고리 슬러그를 사용하여 정의할 수 있습니다. 이 기능을 추가하려면 WooCommerce 스토어에 있는 카테고리 ID 또는 슬러그를 사용하는 것을 잊지 마십시오.

유사한 기사