<?php
if ( is_admin() && ! class_exists( 'Plugin_Settings' ) ) {
	class Plugin_Settings {
		private $whatsapp_settings_options;

		public function __construct() {
			add_action( 'admin_menu', array( $this, 'add_settings_page' ) );
			add_action( 'admin_init', array( $this, 'settings_page_init' ) );
		}

		public function add_settings_page() {
			add_options_page(
				'BW Survey Settings',
				'BW Survey',
				'manage_options',
				'bw-survey-settings',
				array( $this, 'create_admin_page' )
			);
		}

		public function create_admin_page() {
			$this->whatsapp_settings_options = get_option( 'bw_survey_whatsapp' ); ?>

			<div class="wrap">
				<h2>Plugin Settings</h2>
				<p></p>
				<?php settings_errors(); ?>

				<form method="post" action="options.php">
					<?php
						settings_fields( 'plugin_settings_option_group' );
						do_settings_sections( 'plugin-settings-admin' );
						submit_button();
					?>
				</form>
			</div>
		<?php }

		public function settings_page_init() {
			register_setting(
				'plugin_settings_option_group',
				'bw_survey_whatsapp',
				array( $this, 'sanitize_settings' )
			);

			add_settings_section(
				'plugin_settings_setting_section',
				'WhatsApp API Settings',
				array( $this, 'settings_section_info' ),
				'plugin-settings-admin'
			);

			add_settings_field(
				'access_token',
				'Access Token',
				array( $this, 'access_token_callback' ),
				'plugin-settings-admin',
				'plugin_settings_setting_section'
			);

			add_settings_field(
				'phone_number_id',
				'Phone Number ID',
				array( $this, 'phone_number_id_callback' ),
				'plugin-settings-admin',
				'plugin_settings_setting_section'
			);
		}

		public function sanitize_settings($input) {
			$sanitary_values = array();
			if ( isset( $input['access_token'] ) ) {
				$sanitary_values['access_token'] = sanitize_text_field( $input['access_token'] );
			}

			if ( isset( $input['phone_number_id'] ) ) {
				$sanitary_values['phone_number_id'] = sanitize_text_field( $input['phone_number_id'] );
			}

			return $sanitary_values;
		}

		public function settings_section_info() {
			
		}

		public function access_token_callback() {
			printf(
				'<input class="regular-text" type="text" name="bw_survey_whatsapp[access_token]" id="access_token" value="%s">',
				isset( $this->whatsapp_settings_options['access_token'] ) ? esc_attr( $this->whatsapp_settings_options['access_token']) : ''
			);
		}

		public function phone_number_id_callback() {
			printf(
				'<input class="regular-text" type="text" name="bw_survey_whatsapp[phone_number_id]" id="phone_number_id" value="%s">',
				isset( $this->whatsapp_settings_options['phone_number_id'] ) ? esc_attr( $this->whatsapp_settings_options['phone_number_id']) : ''
			);
		}

	}
	$plugin_settings = new Plugin_Settings();
}
