'. 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() {
?>