Your IP : 216.73.217.154


Current Path : /home/ereika83/www/wp-content/plugins/learndash-stripe/
Upload File :
Current File : /home/ereika83/www/wp-content/plugins/learndash-stripe/learndash-stripe.php

<?php
/**
 * Plugin Name: LearnDash LMS - Stripe Integration
 * Plugin URI:
 * Description:	Integrate Stripe payment gateway with LearnDash.
 * Version: 1.9.3
 * Author: LearnDash
 * Author URI: http://www.learndash.com/
 * Text Domain: learndash-stripe
 * Domain Path: languages
 */

// Exit if accessed directly
if ( ! defined( 'ABSPATH' ) ) {
	exit();
}

// Check if class name already exists
if ( ! class_exists( 'LearnDash_Stripe' ) ) :

/**
* Main class
*
* @since  0.1
*/
final class LearnDash_Stripe {

	/**
	 * The one and only true LearnDash_Stripe instance
	 *
	 * @since 0.1
	 * @access private
	 * @var object $instance
	 */
	private static $instance;

	/**
	 * Instantiate the main class
	 *
	 * This function instantiates the class, initialize all functions and return the object.
	 *
	 * @since 0.1
	 * @return object The one and only true LearnDash_Stripe instance.
	 */
	public static function instance() {

		if ( ! isset( self::$instance ) && ( ! self::$instance instanceof LearnDash_Stripe ) ) {

			self::$instance = new LearnDash_Stripe();
			self::$instance->setup_constants();

			add_action( 'plugins_loaded', array( self::$instance, 'load_textdomain' ) );

			self::$instance->check_dependency();

			add_action( 'plugins_loaded', function() {
			    if ( LearnDash_Dependency_Check_LD_Stripe::get_instance()->check_dependency_results() ) {
					self::$instance->includes();
			    }
			} );

		}

		return self::$instance;
	}

	/**
	 * Function for setting up constants
	 *
	 * This function is used to set up constants used throughout the plugin.
	 *
	 * @since 0.1
	 */
	public function setup_constants() {

		// Plugin version
		if ( ! defined( 'LEARNDASH_STRIPE_VERSION' ) ) {
			define( 'LEARNDASH_STRIPE_VERSION', '1.9.3' );
		}

		// Plugin file
		if ( ! defined( 'LEARNDASH_STRIPE_FILE' ) ) {
			define( 'LEARNDASH_STRIPE_FILE', __FILE__ );
		}

		// Plugin folder path
		if ( ! defined( 'LEARNDASH_STRIPE_PLUGIN_PATH' ) ) {
			define( 'LEARNDASH_STRIPE_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
		}

		// Plugin folder URL
		if ( ! defined( 'LEARNDASH_STRIPE_PLUGIN_URL' ) ) {
			define( 'LEARNDASH_STRIPE_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
		}
	}

	/**
	 * Load text domain used for translation
	 *
	 * This function loads mo and po files used to translate text strings used throughout the
	 * plugin.
	 *
	 * @since 0.1
	 */
	public function load_textdomain() {

		// Set filter for plugin language directory
		$lang_dir = dirname( plugin_basename( LEARNDASH_STRIPE_FILE ) ) . '/languages/';
		$lang_dir = apply_filters( 'learndash_stripe_languages_directory', $lang_dir );

		// Load plugin translation file
		load_plugin_textdomain( 'learndash-stripe', false, $lang_dir );

		// include translation/update class
		include LEARNDASH_STRIPE_PLUGIN_PATH . 'includes/class-translations-ld-stripe.php';
	}

	/**
	 * Check and set dependencies
	 *
	 * @return void
	 */
	public function check_dependency()
	{
	    include LEARNDASH_STRIPE_PLUGIN_PATH . 'includes/class-dependency-check.php';

	    LearnDash_Dependency_Check_LD_Stripe::get_instance()->set_dependencies(
	        array(
	            'sfwd-lms/sfwd_lms.php' => array(
	                'label'       => '<a href="https://learndash.com">LearnDash LMS</a>',
	                'class'       => 'SFWD_LMS',
	                'min_version' => '3.0.0',
	            ),
	        )
	    );

	    LearnDash_Dependency_Check_LD_Stripe::get_instance()->set_message(
	        __( 'LearnDash LMS - Stripe Integration Add-on requires the following plugin(s) to be active:', 'learndash-stripe' )
	    );
	}

	/**
	 * Includes all necessary PHP files
	 *
	 * This function is responsible for including all necessary PHP files.
	 *
	 * @since  0.1
	 */
	public function includes() {
		$options = get_option( 'learndash_stripe_settings', array() );

		if ( is_admin() ) {
			include LEARNDASH_STRIPE_PLUGIN_PATH . '/includes/admin/settings/class-settings.php';
			include LEARNDASH_STRIPE_PLUGIN_PATH . '/includes/admin/settings/class-settings-section-stripe.php';
		}

		include LEARNDASH_STRIPE_PLUGIN_PATH . '/includes/class-update.php';
		include LEARNDASH_STRIPE_PLUGIN_PATH . '/includes/class-stripe-integration-base.php';

		if ( isset( $options['integration_type'] ) && $options['integration_type'] === 'legacy_checkout' ) {
			include LEARNDASH_STRIPE_PLUGIN_PATH . '/includes/class-stripe-legacy-checkout-integration.php';
		} else {
			include LEARNDASH_STRIPE_PLUGIN_PATH . '/includes/class-stripe-checkout-integration.php';
		}
	}
}

endif; // End if class exists check

/**
 * The main function for returning instance
 *
 * @since 0.1
 * @return object The one and only true instance.
 */
function learndash_stripe() {
	return LearnDash_Stripe::instance();
}

// Run plugin
learndash_stripe();