allow_gateways = apply_filters( 'jet-form-builder/allow-gateways', false ); $this->maybe_enable_gateways(); /** * Compatibility & Integrations */ Woocommerce::register(); Jet_Engine::register(); Active_Campaign::register(); Elementor::register(); Jet_Appointment::register(); Jet_Booking::register(); new Deprecated(); $this->admin_bar = \Jet_Admin_Bar::get_instance(); $this->msg_router = new Form_Messages\Msg_Router(); $this->post_type = new Post_Type(); $this->blocks = new Blocks\Manager(); $this->actions = new Actions\Manager(); $this->form = new Form_Manager(); $this->form_handler = new Form_Handler(); $this->captcha = new Forms_Captcha(); $this->addons_manager = new AddonsManager(); $this->regexp = new Regexp_Tools(); /** * Modules & components */ Dev_Mode\Manager::instance(); File_Upload::instance(); Validation::instance(); Render_State::instance(); new Dynamic_Value(); new Switch_Page_On_Change(); /** * REST API */ ( new Migrations\Rest_Api\Controller() )->rest_api_init(); ( new Blocks\Conditional_Block\Rest_Api\Rest_Api_Controller() )->rest_api_init(); ( new Blocks\Ssr_Validation\Rest_Controller() )->rest_api_init(); if ( is_admin() ) { Preset_Manager::instance(); $this->editor = new Admin\Editor(); Pages_Manager::instance()->set_up(); new Form_Actions_Manager(); new PatternsManager(); } else { $this->form_handler->call_form(); } } public function init_framework() { require $this->plugin_dir( 'framework/loader.php' ); $this->framework = new CX_Loader( array( $this->plugin_dir( 'framework/vue-ui/cherry-x-vue-ui.php' ), $this->plugin_dir( 'framework/admin-bar/jet-admin-bar.php' ), ) ); } public function maybe_enable_gateways() { Tab_Handler_Manager::instance()->tab( 'payments-gateways' )->save_global_options(); $gateways = Tab_Handler_Manager::instance()->tab( 'payments-gateways' )->get_global_options(); if ( isset( $gateways['enable_test_mode'] ) ) { add_filter( 'jet-form-builder/gateways/paypal/sandbox-mode', function () use ( $gateways ) { return $gateways['enable_test_mode']; } ); } if ( isset( $gateways['use_gateways'] ) ) { $this->allow_gateways = $gateways['use_gateways']; } Gateway_Manager::instance()->set_up(); } /** * Loads the translation files. * * @return void * @since 1.0.0 * @access public */ public function init_lang() { load_plugin_textdomain( 'jet-form-builder', false, dirname( plugin_basename( JET_FORM_BUILDER__FILE__ ) ) . '/languages' ); } /** * Returns url to file or dir inside plugin folder * * @param string $path Path inside plugin dir. * * @return string */ public function plugin_url( string $path = '' ): string { $path = str_replace( '{min}', Tools::get_suffix(), $path ); return JET_FORM_BUILDER_URL . $path; } public function plugin_dir( string $path = '' ): string { return JET_FORM_BUILDER_PATH . $path; } /** * Returns plugin version */ public function get_version(): string { return JET_FORM_BUILDER_VERSION; } /** * Plugin constructor. */ private function __construct() { $this->register_autoloader(); $this->init_lang(); add_action( 'after_setup_theme', function () { do_action( 'jet-form-builder/before-init' ); $this->init_components(); do_action( 'jet-form-builder/after-init' ); }, 0 ); $this->init_framework(); Wp_Cli_Manager::register(); } } Plugin::instance();