registerToContactSection(); (new DeepIntegration())->init(); $this->registerAutomationFunnels(); add_filter('fluent_crm_asset_listed_slugs', function ($lists) { $lists[] = 'fluent-boards'; return $lists; }); } public function registerToContactSection() { add_action('fluent_crm/global_app_boot_loaded', function () { $this->enqueueCrmContactApp3(); }); } /** * Enqueue the FluentCRM contact app bundle. * * @return void */ protected function enqueueCrmContactApp3() { $app = App::getInstance(); $assets = $app['url.assets']; $slug = $app->config->get('app.slug'); $handle = $slug . '_in_crm_contact_app3'; $dependencies = wp_script_is('fluentcrm_admin_app_boot', 'registered') || wp_script_is('fluentcrm_admin_app_boot', 'enqueued') ? ['fluentcrm_admin_app_boot'] : []; Vite::injectViteClient(); Vite::enqueueScript( $handle, 'admin/crm-contact-app3/app.js', $dependencies, FLUENT_BOARDS_PLUGIN_VERSION, true ); wp_localize_script( $handle, 'fluentBoardsCrmContactApp', [ 'slug' => $slug, 'nonce' => wp_create_nonce($slug), 'rest' => $this->getRestInfo($app), 'ajaxurl' => admin_url('admin-ajax.php'), 'asset_url' => $assets, 'trans' => TransStrings::getStrings(), 'base_url' => fluent_boards_page_url(), 'admin_app_url' => admin_url('admin.php?page=fluent-boards#/'), 'admin_url' => admin_url('admin.php'), 'render_in' => is_admin() ? 'admin' : 'front', 'has_pro' => defined('FLUENT_BOARDS_PRO_VERSION'), 'advanced_modules' => fluent_boards_get_pref_settings(), 'features' => fluent_boards_get_features_config(), ] ); } public function registerAutomationFunnels() { // new ContactAddedBoardTrigger(); new ContactAddedTaskTrigger(); new StageChangedTrigger(); new TaskCreateAction(); } protected function getRestInfo($app) { $ns = $app->config->get('app.rest_namespace'); $ver = $app->config->get('app.rest_version'); return [ 'base_url' => esc_url_raw(rest_url()), 'url' => rest_url($ns . '/' . $ver), 'nonce' => wp_create_nonce('wp_rest'), 'namespace' => $ns, 'version' => $ver, ]; } }