'. esc_html__('Note: ', 'aesirx-analytics') . '' . esc_html__('Please set Permalink Settings in WP so it is NOT set as plain.', 'aesirx-analytics') .'

') ); }, 'aesirx_analytics_freemium_plugin' ); add_settings_field( 'aesirx_analytics_storage', esc_html__('AesirX First-Party Server', 'aesirx-analytics'), function () { $manifest = json_decode( file_get_contents(plugin_dir_path(__DIR__) . 'assets-manifest.json', true) ); if ($manifest->entrypoints->plugin->assets) { foreach ($manifest->entrypoints->plugin->assets->js as $js) { wp_enqueue_script('aesrix_bi' . md5($js), plugins_url($js, __DIR__), false, '1.0', true); } } }, 'aesirx_analytics_freemium_plugin', 'aesirx_analytics_settings' ); }); add_action('admin_menu', function () { add_menu_page( 'AesirX BI Dashboard', 'AesirX Analytics', 'manage_options', 'aesirx-bi-dashboard', function () { ?>
get_bloginfo('name'), 'domain' => $domain]]; $origin = wp_parse_url( home_url(), PHP_URL_SCHEME ) . '://' . wp_parse_url( home_url(), PHP_URL_HOST ); $endpoint = $origin; $manifest = json_decode( file_get_contents(plugin_dir_path(__DIR__) . 'assets-manifest.json', true) ); if ($manifest->entrypoints->bi->assets) { foreach ($manifest->entrypoints->bi->assets->js as $js) { wp_enqueue_script('aesrix_bi' . md5($js), plugins_url($js, __DIR__), false, '1.0', true); } } $jwt = ''; $cmp_link = aesirx_analytics_freemium_plugin_check_consent_active() ? admin_url( 'admin.php?page=aesirx-consent-management-plugin' ) : ''; wp_register_script( 'aesrix_bi_window', '', array(), '1.0', false ); wp_enqueue_script('aesrix_bi_window'); wp_add_inline_script( 'aesrix_bi_window', 'window.env = {}; window.env.REACT_APP_BI_ENDPOINT_URL = "' . esc_url($endpoint) . '"; window.env.REACT_APP_DATA_STREAM = JSON.stringify(' . wp_json_encode($streams) . '); window.env.REACT_APP_CMP_LINK = "' . esc_url( $cmp_link ) . '"; window.env.PUBLIC_URL= "' . esc_url(plugin_dir_url(__DIR__)) . '"; ' . htmlspecialchars($jwt, ENT_NOQUOTES), ); } }); /** * Custom escape function for Aesirx Analytics. * Escapes HTML attributes in a string using a specified list of allowed HTML elements and attributes. * * @param string $string The input string to escape HTML attributes from. * @return string The escaped HTML string. */ function aesirx_analytics_freemium_escape_html() { $allowed_html = array( 'input' => array( 'type' => array(), 'id' => array(), 'name' => array(), 'value' => array(), 'class' => array(), 'checked' => array(), 'placeholder' => array(), ), 'strong' => array(), 'a' => array( 'href' => array(), 'target' => array(), 'class' => array(), 'style' => array(), ), 'p' => array( 'class' => array(), 'span' => array( 'class' => array(), ), ), 'span' => array( 'class' => array(), ), 'h3' => array(), 'ul' => array( 'class' => array(), ), 'li' => array(), 'br' => array(), 'label' => array( 'for' => array(), 'class' => array(), ), 'img' => array( 'src' => array(), 'class' => array(), 'width' => array(), 'height' => array(), ), 'iframe' => array( 'src' => array(), ), 'div' => array( 'id' => array(), 'class' => array(), ), 'button' => array( 'type' => array(), 'id' => array(), 'name' => array(), 'value' => array(), 'class' => array(), ), ); return $allowed_html; } function aesirx_analytics_add_nonce_menu_item() { ?>