<?php
/**
 * Plugin Name: اسپارک ایمیل ادیتور
 * Plugin URI: https://wpnovin.com
 * Description: با استفاده از ابزار ساخت ایمیل با قابلیت کشیدن و رها کردن، ایمیل‌های تراکنشی فوق‌العاده‌ای ایجاد کنید.
 * Version: 1.0.11
 * Author: نوین وردپرس
 * Slug: email-editor-plus-pro
 * Text Domain: email-editor-plus
 * Domain Path: /i18n/languages/
 * Author URI: https://wpnovin.com
 * License: GPLv2 or later
 * License URI: http://www.gnu.org/licenses/gpl-2.0.html
 * Contributors: emaileditorplus
 * Requires at least: 4.9.0
 * WC requires at least: 6.6
 * WC tested up to: 9.7
 */

use Automattic\WooCommerce\Utilities\FeaturesUtil;
use EDPW\Core\Helpers\Plugin;
use EDPW\Core\Router;
use EDPW\Core\Setup;
use EDPW\Pro\Router as ProRouter;

defined( 'ABSPATH' ) || exit;

add_action( 'before_woocommerce_init', function () {
	if ( class_exists( FeaturesUtil::class ) ) {
		FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__ );
	}
} );

/**
 * Plugin constants
 */
defined( 'EDPW_PLUGIN_NAME' ) or define( 'EDPW_PLUGIN_NAME', 'Spark Email Editor' );
defined( 'EDPW_PLUGIN_VERSION' ) or define( 'EDPW_PLUGIN_VERSION', '1.0.11' );
defined( 'EDPW_MINIMUM_PHP_VERSION' ) or define( 'EDPW_MINIMUM_PHP_VERSION', '7.4.0' );
defined( 'EDPW_MINIMUM_WP_VERSION' ) or define( 'EDPW_MINIMUM_WP_VERSION', '4.9' );
defined( 'EDPW_MINIMUM_WC_VERSION' ) or define( 'EDPW_MINIMUM_WC_VERSION', '6.6' );
defined( 'EDPW_PLUGIN_SLUG' ) or define( 'EDPW_PLUGIN_SLUG', 'email-editor-plus-pro' );
defined( 'EDPW_PLUGIN_PATH' ) or define( 'EDPW_PLUGIN_PATH', __DIR__ . '/' );
defined( 'EDPW_PLUGIN_URL' ) or define( 'EDPW_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
defined( 'EDPW_PLUGIN_FILE' ) or define( 'EDPW_PLUGIN_FILE', __FILE__ );
defined( 'EDPW_PLUGIN_PREFIX' ) or define( 'EDPW_PLUGIN_PREFIX', 'edpw' );
defined( 'EDPW_BASE_FILE' ) or define( 'EDPW_BASE_FILE', plugin_basename( __FILE__ ) );
defined( 'EDPW_PLUGIN_LANGUAGE' ) or define( 'EDPW_PLUGIN_LANGUAGE', get_locale() );
if ( ! file_exists( __DIR__ . '/vendor/autoload.php' ) ) {
	return;
}
if ( ! class_exists( 'EDPW\Core\Helpers\Plugin' ) ) {
// Autoload the vendor
	require __DIR__ . '/vendor/autoload.php';
}
if ( ! class_exists( 'EDPW\Pro\Router' ) ) {
	return;
}
//Init the router
if ( class_exists( Router::class ) ) {
	Setup::init(); // init setup
	if ( Plugin::checkDependencies() ) {
		Router::init();
		ProRouter::init();
		do_action( 'edpw_spark_editor_loaded' );
		$add_on_list = apply_filters( 'edpw_add_on_init', [] );
		foreach ( $add_on_list as $app_path ) {
			if ( file_exists( $app_path ) ) {
				include $app_path;
			}
		}
	}
}
