# subscription/1.4.1/includes/Admin/Settings.php

Subscriptions for WooCommerce with Stripe Recurring Payments, version 1.4.1. 75 lines.

- Page: https://pluginprobe.com/plugins/subscription/1.4.1/code/includes/Admin/Settings.php
- Raw: https://pluginprobe.com/plugins/subscription/1.4.1/raw/includes/Admin/Settings.php
- Modified: 2025-05-13T14:25:28+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/subscription/1.4.1/code/includes/Admin/Settings.php#L10-L20`.

```php
<?php

namespace SpringDevs\Subscription\Admin;

/**
 * Class Settings
 *
 * @package SpringDevs\Subscription\Admin
 */
class Settings {

	/**
	 * Initialize the class.
	 */
	public function __construct() {
		add_action( 'admin_menu', array( $this, 'admin_menu' ), 30 );
		add_action( 'admin_init', array( $this, 'register_settings' ) );
		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_wc_admin_styles' ) );
	}

	/**
	 * Register submenu on `Subscriptions` menu.
	 *
	 * @return void
	 */
	public function admin_menu() {
		$post_type_link = 'edit.php?post_type=subscrpt_order';

		add_submenu_page( 
			$post_type_link, 
			__( 'WP Subscription Settings', 'wp_subscription' ),
			__( 'Settings', 'wp_subscription' ), 
			'manage_options', 
			'edit.php?post_type=wp_subscription_settings',
			array( $this, 'settings_content' ),
			40
		);
	}

	/**
	 * Register settings options.
	 **/
	public function register_settings() {
		register_setting( 'wp_subscription_settings', 'wp_subscription_renewal_process' );
		register_setting( 'wp_subscription_settings', 'wp_subscription_manual_renew_cart_notice' );
		register_setting( 'wp_subscription_settings', 'wp_subscription_active_role' );
		register_setting( 'wp_subscription_settings', 'wp_subscription_unactive_role' );
		register_setting( 'wp_subscription_settings', 'wp_subscription_stripe_auto_renew' );
		register_setting( 'wp_subscription_settings', 'wp_subscription_auto_renewal_toggle' );

		do_action( 'subscrpt_register_settings', 'subscrpt_settings' );
	}

	/**
	 * Settings HTML.
	 */
	public function settings_content() {
		include 'views/settings.php';
	}

	/**
	 * Enqueue WooCommerce admin styles for settings page.
	 */
	public function enqueue_wc_admin_styles( $hook ) {
		// Only load on our settings page
		if ( isset( $_GET['post_type'] ) && strpos( $_GET['post_type'], 'subscrpt_order' ) !== false ) {
			// WooCommerce admin styles
			wp_enqueue_style( 'woocommerce_admin_styles', WC()->plugin_url() . '/assets/css/admin.css', array(), WC_VERSION );
			// Optional: WooCommerce enhanced select2
			wp_enqueue_style( 'woocommerce_admin_select2', WC()->plugin_url() . '/assets/css/select2.css', array(), WC_VERSION );
			wp_enqueue_script( 'select2' );
		}
	}
}

```
