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'] : []; wp_enqueue_script( $handle, FLUENT_BOARDS_PLUGIN_URL . 'assets/crm-contact-app3.js', $dependencies, FLUENT_BOARDS_PLUGIN_VERSION, true ); wp_enqueue_style( $handle, FLUENT_BOARDS_PLUGIN_URL . 'assets/admin/crm-contact-app3.css', [], FLUENT_BOARDS_PLUGIN_VERSION ); 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_url' => admin_url('admin.php'), 'render_in' => is_admin() ? 'admin' : 'front', 'advanced_modules' => fluent_boards_get_pref_settings(), ] ); } 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, ]; } }