diff --git a/modules/ppcp-settings/src/SettingsModule.php b/modules/ppcp-settings/src/SettingsModule.php index 3533c2394..e2d556b19 100644 --- a/modules/ppcp-settings/src/SettingsModule.php +++ b/modules/ppcp-settings/src/SettingsModule.php @@ -94,11 +94,12 @@ class SettingsModule implements ServiceModule, ExecutableModule { add_action( 'woocommerce_paypal_payments_gateway_admin_options_wrapper', - static function () : void { + function () : void { global $hide_save_button; $hide_save_button = true; - echo '
'; + $this->render_header(); + $this->render_content(); } ); @@ -112,4 +113,24 @@ class SettingsModule implements ServiceModule, ExecutableModule { return true; } + + /** + * Outputs the settings page header (title and back-link). + * + * @return void + */ + protected function render_header() : void { + echo '

' . esc_html__( 'PayPal', 'woocommerce-paypal-payments' ); + wc_back_link( __( 'Return to payments', 'woocommerce-paypal-payments' ), admin_url( 'admin.php?page=wc-settings&tab=checkout' ) ); + echo '

'; + } + + /** + * Renders the container for the React app. + * + * @return void + */ + protected function render_content() : void { + echo '
'; + } } diff --git a/modules/ppcp-wc-gateway/src/WCGatewayModule.php b/modules/ppcp-wc-gateway/src/WCGatewayModule.php index 7dcf4544f..d31d072ae 100644 --- a/modules/ppcp-wc-gateway/src/WCGatewayModule.php +++ b/modules/ppcp-wc-gateway/src/WCGatewayModule.php @@ -94,20 +94,22 @@ class WCGatewayModule implements ServiceModule, ExtendingModule, ExecutableModul $this->register_wc_tasks( $c ); $this->register_void_button( $c ); - add_action( - 'woocommerce_sections_checkout', - function() use ( $c ) { - $header_renderer = $c->get( 'wcgateway.settings.header-renderer' ); - assert( $header_renderer instanceof HeaderRenderer ); + if ( ! $c->get( 'wcgateway.settings.admin-settings-enabled' ) ) { + add_action( + 'woocommerce_sections_checkout', + function () use ( $c ) { + $header_renderer = $c->get( 'wcgateway.settings.header-renderer' ); + assert( $header_renderer instanceof HeaderRenderer ); - $section_renderer = $c->get( 'wcgateway.settings.sections-renderer' ); - assert( $section_renderer instanceof SectionsRenderer ); + $section_renderer = $c->get( 'wcgateway.settings.sections-renderer' ); + assert( $section_renderer instanceof SectionsRenderer ); - // phpcs:ignore WordPress.Security.EscapeOutput - echo $header_renderer->render() . $section_renderer->render(); - }, - 20 - ); + // phpcs:ignore WordPress.Security.EscapeOutput + echo $header_renderer->render() . $section_renderer->render(); + }, + 20 + ); + } add_action( 'woocommerce_paypal_payments_order_captured',