/**
* Creates custom payment gateway.
*
* @see https://wpcodebook.com/custom-woocommerce-payment-gateway/
*/
add_action( 'plugins_loaded', function () {
if (
! class_exists( 'WC_Payment_Gateway' ) ||
class_exists( 'WPCodebook_WC_Payment_Gateway' )
) {
return;
}
/**
* WPCodebook_WC_Payment_Gateway class.
*
* @see https://woocommerce.github.io/code-reference/classes/WC-Payment-Gateway.html
*/
class WPCodebook_WC_Payment_Gateway extends WC_Payment_Gateway {
/**
* Constructor.
*/
function __construct() {
$this->id = 'wpcodebook_gateway';
$this->method_title = esc_html__( 'My Payment Gateway' ); // Back-end title
$this->method_description = esc_html__( 'My payment gateway.' ); // Back-end description
$this->title = esc_html__( 'My Payment Gateway' ); // Front-end title
}
/**
* Process payment.
*/
function process_payment( $order_id ) {
return array(
'result' => 'success',
'redirect' => $this->get_return_url( wc_get_order( $order_id ) ),
);
}
}
/**
* Loads the gateway.
*
* @see https://github.com/woocommerce/woocommerce/blob/9.3.3/plugins/woocommerce/includes/class-wc-payment-gateways.php#L94
*/
add_filter( 'woocommerce_payment_gateways', function ( $gateways ) {
$gateways[] = 'WPCodebook_WC_Payment_Gateway';
return $gateways;
} );
} );