특정 범주에 대한 결제 수단을 비활성화하는 방법
게시 됨: 2020-09-01WooCommerce 스토어를 운영 중이고 장바구니에 있는 제품 카테고리를 기반으로 특정 카테고리 또는 여러 지불 방법에 대한 지불 방법을 비활성화하는 방법을 알고 싶습니까? 제품 카테고리에 중점을 둔 솔루션을 찾고 있지만 약간의 변경으로 제품 자체의 배송 등급도 변경할 수 있는 경우 이 문서에서는 이를 달성하는 방법을 안내합니다.
특정 범주에 대한 결제 수단 비활성화
이 접근 방식이 유용한 좋은 예는 WooCommerce 매장 소유자가 고가 제품만 포함하는 카테고리를 갖고 고객이 신용 카드를 사용하는 대신 은행 송금으로 결제하기를 원하는 경우입니다. 이것은 카테고리에 대한 지불 방법을 비활성화해야 할 수 있는 많은 상황의 한 예일 뿐입니다.
기술에 정통하지 않은 경우 프리미엄 플러그인을 선택하여 작업을 수행할 수 있습니다. 예를 들어 WooCommerce 조건부 결제 플러그인은 결제 방법을 활성화하거나 비활성화하는 조건을 만드는 데 도움이 됩니다. 코드 사용에 능숙하지 않다면 이것이 고려해야 할 최고의 프리미엄 솔루션이 될 것입니다.
또한 이 플러그인을 사용하면 장바구니 합계, 청구 국가, 사용자 역할 등을 무제한 조건으로 만들고 사용할 수 있는 결제 게이트웨이와 표시하지 않을 항목을 정의할 수 있습니다.
그러나 이 간단한 자습서에서는 PHP 코드 조각을 사용하여 특정 범주에 대한 결제 수단을 비활성화하는 방법을 보여 드리겠습니다.
PHP 코드 조각을 사용하여 특정 범주에 대한 결제 수단을 비활성화하는 단계
따라야 할 간단한 단계는 다음과 같습니다.
- WordPress 사이트에 로그인하고 관리자로 대시보드 에 액세스합니다.
- 대시보드 메뉴에서 모양 메뉴 > 테마 편집기 메뉴 를 클릭합니다. 테마 편집기 페이지가 열리면 특정 범주에 대한 지불 방법을 비활성화하는 기능을 추가할 테마 기능 파일을 찾으십시오.
- 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 반환; }
- 이것이 결과일 것이다
이 코드가 작동하려면 WooCommerce 스토어에 있는 올바른 카테고리 ID를 추가해야 합니다.
카테고리 ID 사용이 마음에 들지 않으면 WooCommerce 스토어에서 카테고리 슬러그를 사용할 수도 있습니다. 나중에 참조할 수 있도록 이해하기 쉽기 때문에 사용하도록 선택할 수 있습니다.
카테고리 슬러그를 사용하여 특정 카테고리에 대한 결제 방법을 비활성화하는 단계
- WordPress 사이트에 로그인하고 관리자로 대시보드 에 액세스합니다.
- 대시보드 메뉴에서 모양 메뉴 > 테마 편집기 메뉴 를 클릭합니다. 테마 편집기 페이지가 열리면 특정 범주에 대한 지불 방법을 비활성화하는 기능을 추가할 테마 기능 파일을 찾으십시오.
- 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' );
- 이것이 결과일 것이다
올바른 카테고리 슬러그를 추가하고 비활성화하려는 지불 게이트웨이를 정의해야 함을 기억하십시오. 예를 들어 'cod'를 사용하여 착불 배송을 나타냅니다.
지정된 범주가 장바구니에 있을 때 지불 게이트웨이 식별자를 비활성화하려는 항목으로 변경해야 한다는 점에 유의하는 것이 중요합니다.
- 은행 송금(bacs)
- 수표(수표)
- 대금 상환(대금 상환)
- 페이팔(PayPal)
그러나 기본 지불 게이트웨이 중 하나를 사용하지 않는 경우에도 지불 게이트웨이 ID를 찾는 쉬운 방법이 있으므로 걱정하지 마십시오. 지불 게이트웨이 설정 페이지로 이동하여 이 작업을 수행할 수 있으며 거기에서 ID를 찾을 수 있습니다.
예를 들어 설정 페이지의 Cash on Delivery 옵션의 경우 URL은 wp-admin/admin.php?page=wc-settings&tab=checkout§ion=cod입니다.
결론
이 게시물에서는 두 가지 방법을 사용하여 특정 범주에 대한 결제 수단을 비활성화하는 방법을 배웠습니다. 나중에 쉽게 참조할 수 있도록 제품 카테고리 ID 또는 카테고리 슬러그를 사용하여 정의할 수 있습니다. 이 기능을 추가하려면 WooCommerce 스토어에 있는 카테고리 ID 또는 슬러그를 사용하는 것을 잊지 마십시오.
유사한 기사
- WRAC WooCommerce 체크아웃 플러그인 후 리디렉션
- WooCommerce Shop 페이지에서 장바구니에 추가 버튼 텍스트를 변경하는 방법
- 다운로드 메뉴를 제거하는 방법 내 계정 페이지 WooCommerce
- WooCommerce로 디지털 제품을 판매하는 방법
- 기본 제품 정렬 WooCommerce를 제거하는 방법
- WooCommerce에서 제품에 GTIN 번호를 추가하는 방법
- 더 나은 사용자 경험을 위해 WooCommerce 카테고리를 정렬하는 방법
- WooCommerce의 쇼핑 페이지에서 모든 제품을 숨기는 방법
- WooCommerce 쿠폰 코드 필드를 숨기는 방법
- WooCommerce 제품 페이지에서 수량 필드 숨기기 또는 제거
- 카테고리별로 WooCommerce 제품을 표시하는 방법
- 제품 이미지를 추가하는 방법 WooCommerce 결제 페이지