Creare nuovo gateway di pagamento

In questa breve guida vedremo come creare un nuovo Gateway di pagamento e come renderlo disponibile all’utente finale.

Creazione della classe per il nuovo gateway

In questa porzione di codice è possibile trovare un esempio di gateway:

namespace MPHB\Payments\Gateways;

if ( !defined( 'ABSPATH' ) ) {
	exit;
}

class BankTransferGateway extends Gateway {

	protected function setupProperties(){
		parent::setupProperties();
		$this->showOptions	 = true;
		$this->adminTitle	 = __( 'Bank Transfer', 'motopress-hotel-booking' );
	}

	protected function initDefaultOptions(){
		$defaults = array(
			'title'			 => __( 'Bank Transfer', 'motopress-hotel-booking' ),
			'description'	 => '',
			'enabled'		 => true,
		);
		return array_merge( parent::initDefaultOptions(), $defaults );
	}

	protected function initId(){
		return 'banktransfer';
	}

        public function processPayment(\MPHB\Entities\Booking $booking, \MPHB\Entities\Payment $payment) {
            
// setting booking status pending
            $payment->setStatus('mphb-p-pending');
            $terms_and_conditions_id = MPHB()->settings()->pages()->getTermsAndConditionsPageId();
            $terms_and_conditions_url = MPHB()->settings()->pages()->getUrl($terms_and_conditions_id);
            $redirectUrl = MPHB()->settings()->pages()->getBookingConfirmPageUrl();
            
           // sending emails to customer and admin
            MPHB()->emails()->getEmail('customer-bank-transfer')->trigger($booking, array('payment' => $payment));
            MPHB()->emails()->getEmail('admin-bank-transfer')->trigger($booking, array('payment' => $payment));

            wp_redirect( $redirectUrl );
            return false;
        }

}

$bank_transfer_gateway = new BankTransferGateway();
//MPHB()->gatewayManager()->addGateway($bank_transfer_gateway);
add_action('mphb_init_gateways', array($bank_transfer_gateway, 'register'));
Ultimo aggiornamento il Maggio 11, 2020

Questo articolo è stato utile?

Articoli correlati