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',