init(); do_action( 'woocommerce_advanced_shipping_validation_init' ); } /** * Instance. * * An global instance of the class. Used to retrieve the instance * to use on other files/plugins/themes. * * @since 1.0.0 * * @return object Instance of the class. */ public static function instance() { if ( is_null( self::$instance ) ) : self::$instance = new self(); endif; return self::$instance; } /** * Init. * * Initialize plugin parts. * * @since 1.0.0 */ public function init() { /** * Require matching conditions hooks. */ require_once plugin_dir_path( __FILE__ ) . '/includes/class-wcasv-match-conditions.php'; $this->matcher = new WCASV_Match_Conditions(); /** * Post Type class */ require_once plugin_dir_path( __FILE__ ) . 'includes/class-wcasv-post-type.php'; $this->post_type = new WCASV_Post_Type(); // AJAX if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) : /** * Load ajax methods */ require_once plugin_dir_path( __FILE__ ) . '/includes/class-wcasv-ajax.php'; $this->ajax = new WCASV_Ajax(); endif; // Admin if ( is_admin() && ! defined( 'DOING_AJAX' ) ) : /** * Admin class. */ require_once plugin_dir_path( __FILE__ ) . '/includes/admin/class-wcasv-admin.php'; $this->admin = new WCASV_Admin(); require_once plugin_dir_path( __FILE__ ) . '/includes/admin/admin-functions.php'; endif; // Include functions require_once plugin_dir_path( __FILE__ ) . 'includes/wcasv-validation-functions.php'; // Load textdomain $this->load_textdomain(); } /** * Textdomain. * * Load the textdomain based on WP language. * * @since 1.0.0 */ public function load_textdomain() { $locale = apply_filters( 'plugin_locale', get_locale(), 'woocommerce-advanced-shipping-validation' ); // Load textdomain load_textdomain( 'woocommerce-advanced-shipping-validation', WP_LANG_DIR . '/woocommerce-advanced-shipping-validation/woocommerce-advanced-shipping-validation-' . $locale . '.mo' ); load_plugin_textdomain( 'woocommerce-advanced-shipping-validation', false, basename( dirname( __FILE__ ) ) . '/languages' ); } } /** * The main function responsible for returning the Woocommerce_Advanced_Shipping_Validation object. * * Use this function like you would a global variable, except without needing to declare the global. * * Example: method_name(); ?> * * @since 1.0.0 * * @return object Woocommerce_Advanced_Shipping_Validation class object. */ if ( ! function_exists( 'Woocommerce_Advanced_Shipping_Validation' ) ) : function Woocommerce_Advanced_Shipping_Validation() { return Woocommerce_Advanced_Shipping_Validation::instance(); } endif; Woocommerce_Advanced_Shipping_Validation();