order_service = $order_service; } /** * Register the gateway classes so that they can be used by WooCommerce * * @param string[] $gateways * @return string[] */ public function register_gateway_classes( $gateways ): array { $this->logger->log_debug( 'Hook executed', __FUNCTION__, __CLASS__ ); if ( ! in_array( Sequra_Payment_Gateway::class, $gateways, true ) ) { $gateways[] = Sequra_Payment_Gateway::class; } return $gateways; } /** * Register the payment gateway block so that it can be used by Gutenberg */ public function register_gateway_gutenberg_block(): void { $this->logger->log_debug( 'Hook executed', __FUNCTION__, __CLASS__ ); add_action( 'woocommerce_blocks_payment_method_type_registration', array( $this, 'register_gateway_gutenberg_block_class' ) ); } /** * Register the payment gateway block class */ public function register_gateway_gutenberg_block_class( PaymentMethodRegistry $payment_method_registry ): void { $this->logger->log_debug( 'Hook executed', __FUNCTION__, __CLASS__ ); $payment_method_registry->register( ServiceRegister::getService( Sequra_Payment_Gateway_Block_Support::class ) ); } /** * Append text after the thank you message on the order received page */ public function order_received_text( string $text, mixed $order ): string { $this->logger->log_debug( 'Hook executed', __FUNCTION__, __CLASS__ ); $notices = wc_print_notices( true ); return $notices . $text; } /** * Set the proper payment method description in the order */ public function order_get_payment_method_title( string $value, mixed $order ): string { $this->logger->log_debug( 'Hook executed', __FUNCTION__, __CLASS__ ); $sequra_payment_method = $order instanceof WC_Order ? $this->order_service->get_payment_method_title( $order ) : null; return empty( $sequra_payment_method ) ? $value : $sequra_payment_method; } }