<?php
/*
Plugin Name: Awesome SSL
Plugin URI: 
Description: The easiest way to add SSL to your website!
Author: EJS London
Author URI: https://www.ejslondon.com
Version: 1.0.0
*/

if ( ! function_exists( 'as_fs' ) ) {
    // Create a helper function for easy SDK access.
    function as_fs() {
        global $as_fs;

        if ( ! isset( $as_fs ) ) {
            // Include Freemius SDK.
            require_once dirname(__FILE__) . '/freemius/start.php';

            $as_fs = fs_dynamic_init( array(
                'id'                  => '8260',
                'slug'                => 'awesome-ssl',
                'type'                => 'plugin',
                'public_key'          => 'pk_9aae64d2fa9b981a50a28c0d32271',
                'is_premium'          => false,
                'has_addons'          => false,
                'has_paid_plans'      => false,
                'menu'                => array(
                    'slug'           => 'awesome-ssl',
                    'support'        => false,
                ),
            ) );
        }

        return $as_fs;
    }

    // Init Freemius.
    as_fs();
    // Signal that SDK was initiated.
    do_action( 'as_fs_loaded' );
}
class SSL {
	private $ssl_options;

	public function __construct() {
		add_action( 'admin_menu', array( $this, 'ssl_add_plugin_page' ) );
		add_action( 'admin_init', array( $this, 'ssl_page_init' ) );
	}

	public function ssl_add_plugin_page() {
		add_menu_page(
			'Awesome SSL', // page_title
			'SSL', // menu_title
			'manage_options', // capability
			'awesome-ssl', // menu_slug
			array( $this, 'ssl_create_admin_page' ), // function
			'dashicons-lock', // icon_url
			2 // position
		);
	}

	public function ssl_create_admin_page() {
		$this->ssl_options = get_option( 'ssl_option_name' ); ?>
		
		<div class="wrap">
		<h2>SSL</h2>
			<p></p>
			<?php settings_errors(); ?>

			<form method="post" action="options.php">
				<?php
					settings_fields( 'ssl_option_group' );
					do_settings_sections( 'ssl-admin' );
					submit_button();
				?>
			</form>
		</div>
	<?php }

	public function ssl_page_init() {
		register_setting(
			'ssl_option_group', // option_group
			'ssl_option_name', // option_name
			array( $this, 'ssl_sanitize' ) // sanitize_callback
		);

		add_settings_section(
			'ssl_setting_section', // id
			'Settings', // title
			array( $this, 'ssl_section_info' ), // callback
			'ssl-admin' // page
		);
		add_settings_field(
			'enable_ssl_on_this_website_0', // id
			'Enable SSL On This Website', // title
			array( $this, 'enable_ssl_on_this_website_0_callback' ), // callback
			'ssl-admin', // page
			'ssl_setting_section' // section
		);

		add_settings_field(
			'enable_secure_connection_by_default_1', // id
			'Enable Secure Connection By Default', // title
			array( $this, 'enable_secure_connection_by_default_1_callback' ), // callback
			'ssl-admin', // page
			'ssl_setting_section' // section
		);

		add_settings_field(
			'force_site_to_run_through_https_on_all_pages_2', // id
			'Force Site To Run Through HTTPS On ALL Pages', // title
			array( $this, 'force_site_to_run_through_https_on_all_pages_2_callback' ), // callback
			'ssl-admin', // page
			'ssl_setting_section' // section
		);
	}

	public function ssl_sanitize($input) {
		$sanitary_values = array();
		if ( isset( $input['enable_ssl_on_this_website_0'] ) ) {
			$sanitary_values['enable_ssl_on_this_website_0'] = $input['enable_ssl_on_this_website_0'];
		}

		if ( isset( $input['enable_secure_connection_by_default_1'] ) ) {
			$sanitary_values['enable_secure_connection_by_default_1'] = $input['enable_secure_connection_by_default_1'];
		}

		if ( isset( $input['force_site_to_run_through_https_on_all_pages_2'] ) ) {
			$sanitary_values['force_site_to_run_through_https_on_all_pages_2'] = $input['force_site_to_run_through_https_on_all_pages_2'];
		}

		return $sanitary_values;
	}

	public function ssl_section_info() {
		
	}

	public function enable_ssl_on_this_website_0_callback() {
		printf(
			'<input type="checkbox" name="ssl_option_name[enable_ssl_on_this_website_0]" id="enable_ssl_on_this_website_0" value="enable_ssl_on_this_website_0" disabled %s> <label for"enable_ssl_on_this_website_0">SSL is <strong>Enabled</strong> On This Site</label> <checked>',
			( isset( $this->ssl_options['enable_ssl_on_this_website_0'] ) && $this->ssl_options['enable_ssl_on_this_website_0'] === 'enable_ssl_on_this_website_0' ) ? 'checked' : ''
		);
	}

	public function enable_secure_connection_by_default_1_callback() {
		printf(
			'<input type="checkbox" name="ssl_option_name[enable_secure_connection_by_default_1]" id="enable_secure_connection_by_default_1" value="enable_secure_connection_by_default_1" %s>',
			( isset( $this->ssl_options['enable_secure_connection_by_default_1'] ) && $this->ssl_options['enable_secure_connection_by_default_1'] === 'enable_secure_connection_by_default_1' ) ? 'checked' : ''
		);
	}

	public function force_site_to_run_through_https_on_all_pages_2_callback() {
		printf(
			'<input type="checkbox" name="ssl_option_name[force_site_to_run_through_https_on_all_pages_2]" id="force_site_to_run_through_https_on_all_pages_2" value="force_site_to_run_through_https_on_all_pages_2" %s>',
			( isset( $this->ssl_options['force_site_to_run_through_https_on_all_pages_2'] ) && $this->ssl_options['force_site_to_run_through_https_on_all_pages_2'] === 'force_site_to_run_through_https_on_all_pages_2' ) ? 'checked' : ''
		);
	}

}
if ( is_admin() )
	$ssl = new SSL();

/* 
 * Retrieve this value with:
 * $ssl_options = get_option( 'ssl_option_name' ); // Array of All Options
 * $enable_ssl_on_this_website_0 = $ssl_options['enable_ssl_on_this_website_0']; // Enable SSL On This Website
 * $enable_secure_connection_by_default_1 = $ssl_options['enable_secure_connection_by_default_1']; // Enable Secure Connection By Default
 * $force_site_to_run_through_https_on_all_pages_2 = $ssl_options['force_site_to_run_through_https_on_all_pages_2']; // Force Site To Run Through HTTPS On ALL Pages
 */