WooCommerce 결제 게이트웨이를 만드는 방법
게시 됨: 2021-04-26사용자 지정 결제 옵션을 허용하는 WooCommerce 결제 게이트웨이를 생성하시겠습니까? 이 튜토리얼에서는 고객이 이 맞춤형 WooCommerce 결제 게이트웨이를 통해 결제할 수 있도록 WooCommerce에서 결제 게이트웨이를 생성하는 방법을 간략하게 보여드리고자 합니다.
나만의 맞춤형 결제 게이트웨이를 만들 수 있습니다. 이를 달성하는 2가지 방법이 있습니다. 플러그인 또는 사용자 정의 코드를 사용할 수 있습니다.
그러나 플러그인으로 인해 사이트가 부풀어 오릅니다. 이것이 우리가 사용자 정의 코드 스니펫을 사용하는 이유입니다.
초보자가 이 방법을 사용할 수 있도록 각 단계에 대해 자세히 설명합니다.
WooCommerce 결제 게이트웨이를 만드는 방법
이 게시물에서는 새 결제 게이트웨이를 추가하는 플러그인을 만듭니다. 즉, 이 작업을 수행하려면 프로그래밍 기술이 필요합니다.
WooCommerce 클래스를 확장합니다. WooCommerce는 지불 게이트웨이 또는 이메일 클래스와 같은 몇 가지 핵심 클래스를 제공합니다.
이러한 클래스를 확장하여 고유한 기능을 추가할 수 있으므로 개발 시간이 절약됩니다. 또한 플러그인이 표준 방식으로 작동하는지 확인합니다.
WC_Payment_Gateway 클래스
WC_Payment_Gateway 클래스는 이것을 확장하여 주문 총액 또는 감사 페이지 URL을 가져오는 기능과 같은 지불 방법에 특정한 구조와 기능을 제공합니다.
이 클래스를 확장하면 구조의 이점을 얻을 수 있습니다. 제목과 설명을 가져오고 결제 페이지에 표시하는 것을 포함하여 일부 기능을 처리합니다.
WooCommerce의 모든 지불 게이트웨이는 WC_Payment_Gateway 클래스를 확장하여 시작한다는 점에 유의하는 것이 중요합니다.
따라야 할 단계는 다음과 같습니다.
1. WooCommerce가 활성화되어 있는지 확인
WooCommerce 클래스를 확장할 예정이므로 활성 상태인지 확인해야 합니다.
// Make sure WooCommerce is active if ( ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) return;
2. 자녀 클래스 구축
이렇게 하려면 먼저 이것을 초기화 함수로 래핑하고 기본 우선 순위보다 나중에 plugins_loaded에 연결해야 합니다.
WooCommerce가 활성 상태인지 확인한 후 WooCommerce 코어 다음에 클래스를 로드합니다. 이렇게 하면 치명적인 오류에 대한 2차 검사가 됩니다.
또한 WC_Payment_Gateway 클래스를 사용할 수 있도록 합니다. o 클래스를 확장하려면 다음 형식을 따릅니다.
클래스 My_Child_Class 확장 The_Parent_Class { }
플러그인에서 다음과 같이 표시됩니다.
/** * Offline Payment Gateway * @class WC_Gateway_Offline * @extends WC_Payment_Gateway * @version 1.0.0 * @package WooCommerce/Classes/Payment * @author Njengah */ add_action( 'plugins_loaded', 'wc_offline_gateway_init', 11 ); function wc_offline_gateway_init() { class WC_Gateway_Offline extends WC_Payment_Gateway { // You plugin code starts here } // end \WC_Gateway_Offline class }
3. 게이트웨이 구축
외부 클래스가 있으므로 __construct() 함수를 빌드해야 합니다. 이렇게 하면 클래스에 포함해야 하는 변수가 보장됩니다.
필요한 변수는 다음과 같습니다.
- $this->id
- $this->icon
- $this->has_fields = true 또는 false(bool)
- $this->method_title
- $this->method_description
변수가 설정된 후 생성자는 몇 가지 다른 함수가 필요합니다.
양식 필드는 init_form_fields() 함수에서 설정됩니다. 이 기능은 게이트웨이 활성화 및 제목 추가와 같은 모든 설정 필드를 추가합니다.
$this->init_form_fields(); $this->init_settings();
4. 양식 필드 초기화
이 섹션에서는 init_form_fields() 함수를 만들어 지불 게이트웨이에 대한 양식 필드를 설정합니다.
이 함수는 부모 클래스에서 아무 작업도 수행하지 않지만 재정의하지 않으면 치명적인 오류가 없는지 확인합니다.
그러나 우리는 자식 클래스에서 일부 기능을 제공할 것입니다.
포함해야 하는 기본 필드는 활성화된 제목 및 설명입니다.
/** * Initialize Gateway Settings Form Fields */ public function init_form_fields() { $this->form_fields = apply_filters( 'wc_offline_form_fields', array( 'enabled' => array( 'title' => __( 'Enable/Disable', 'wc-gateway-offline' ), 'type' => 'checkbox', 'label' => __( 'Enable Offline Payment', 'wc-gateway-offline' ), 'default' => 'yes' ), 'title' => array( 'title' => __( 'Title', 'wc-gateway-offline' ), 'type' => 'text', 'description' => __( 'This controls the title for the payment method the customer sees during checkout.', 'wc-gateway-offline' ), 'default' => __( 'Offline Payment', 'wc-gateway-offline' ), 'desc_tip' => true, ), 'description' => array( 'title' => __( 'Description', 'wc-gateway-offline' ), 'type' => 'textarea', 'description' => __( 'Payment method description that the customer will see on your checkout.', 'wc-gateway-offline' ), 'default' => __( 'Please remit payment to Store Name upon pickup or delivery.', 'wc-gateway-offline' ), 'desc_tip' => true, ), 'instructions' => array( 'title' => __( 'Instructions', 'wc-gateway-offline' ), 'type' => 'textarea', 'description' => __( 'Instructions that will be added to the thank you page and emails.', 'wc-gateway-offline' ), 'default' => '', 'desc_tip' => true, ), ) ); }
5. 결제 처리
이것은 지불 게이트웨이를 생성할 때 가장 중요한 섹션입니다. WooCommerce에 어떤 상태가 있어야 하고 고객이 사용한 후 어디로 가는지 알려주는 주문 처리를 처리하는 기능을 추가해야 합니다.
public function process_payment( $order_id ) { $order = wc_get_order( $order_id ); // Mark as on-hold (we're awaiting the payment) $order->update_status( 'on-hold', __( 'Awaiting offline payment', 'wc-gateway-offline' ) ); // Reduce stock levels $order->reduce_order_stock(); // Remove cart WC()->cart->empty_cart(); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => $this->get_return_url( $order ) ); }
6. 주문 접수 및 이메일에 지불 게이트웨이 정보 추가
추가한 게이트웨이에서 결제를 완료하려면 추가 지침이 필요합니다. 이러한 지침이 Thankyou_page() 및 email_instructions() 스텁 메서드를 사용하여 감사 페이지와 주문 이메일 모두에 표시되도록 해야 합니다.
/** * Output for the order received page. */ public function thankyou_page() { if ( $this->instructions ) { echo wpautop( wptexturize( $this->instructions ) ); } } /** * Add content to the WC emails. * * @access public * @param WC_Order $order * @param bool $sent_to_admin * @param bool $plain_text */ public function email_instructions( $order, $sent_to_admin, $plain_text = false ) { if ( $this->instructions && ! $sent_to_admin && 'offline' === $order->payment_method && $order->has_status( 'on-hold' ) ) { echo wpautop( wptexturize( $this->instructions ) ) . PHP_EOL; } }
7. WooCommerce 결제 게이트웨이에 추가
마지막 단계는 WooCommerce > 설정 > 결제에서 결제 게이트웨이를 사용할 수 있는지 확인하는 것입니다.
사용 가능한 모든 게이트웨이의 배열을 제공하는 woocommerce_payment_gateways 필터를 사용합니다. 즉, 이 어레이에 게이트웨이를 추가한 다음 게이트웨이가 추가된 어레이를 반환합니다.
function wc_offline_add_to_gateways( $gateways ) { $gateways[] = 'WC_Gateway_Offline'; return $gateways; } add_filter( 'woocommerce_payment_gateways', 'wc_offline_add_to_gateways' );
결론
사용자 지정 결제 게이트웨이를 추가하기만 하면 됩니다. "수표" 게이트웨이의 기능을 간단히 복제했습니다.
지불 프로세서와 통합하는 경우 지불 프로세서로부터 정보 게시 및 수신을 통합해야 한다는 점에 유의해야 합니다.
이 프로세스가 너무 복잡하면 자격을 갖춘 개발자를 고용할 수 있습니다. 이렇게 하면 사이트가 손상되지 않습니다.
유사한 기사
- 체크아웃 후 WooCommerce 리디렉션: 맞춤 감사 페이지로 리디렉션
- 로그아웃 후 WooCommerce 리디렉션 [궁극적인 가이드]
- WooCommerce 제품 페이지를 사용자 정의하는 방법
- WooCommerce에서 최소 지출로 무료 배송을 설정하는 방법
- WooCommerce 결제 게이트웨이 아이콘을 변경하는 방법
- WooCommerce Bitcoin Checkout을 설정하는 방법
- WooCommerce 인보이스 결제 페이지를 추가하는 방법
- URL을 기반으로 활성 탐색 클래스를 추가하는 방법
- WooCommerce와 Stripe를 통합하는 방법
- 결제 버튼 WooCommerce를 제거하는 방법
- 무료로 Mpesa WooCommerce 결제를 보내는 방법
- WooCommerce 결제 페이지에서 PayPal 아이콘을 숨기는 방법
- 바닥글에 WooCommerce 결제 아이콘을 추가하는 방법 [HTML]
- WooCommerce 결제 페이지에서 PayPal 아이콘을 변경하는 방법
- WooCommerce에서 쇼핑 페이지에 검색을 추가하는 방법
- WooCommerce에서 위시리스트를 추가하는 방법
- 사용자가 WordPress에 로그인했는지 확인하는 방법
- 결제에서 WooCommerce 결제 옵션을 제거하는 방법
- WooCommerce에서 로그아웃 시 장바구니를 지우는 방법
- 체크아웃 끝점을 변경하는 방법 WooCommerce