File: /home/deshuvsd/www/wp-content/plugins/ultimate-elementor/classes/class-uael-analytics.php
<?php
/**
* UAEL Analytics.
*
* @package UAEL
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
if ( ! class_exists( 'UAEL_Analytics' ) ) {
/**
* Class UAEL_Analytics
*
* Handles analytics-related functionality for the Ultimate Addons for Elementor plugin.
*
* @since 1.39.3
*/
class UAEL_Analytics {
/**
* UAEL Analytics constructor.
*
* Initializing UAEL Analytics.
*
* @since 1.39.3
* @access public
*/
public function __construct() {
// BSF Analytics Tracker.
if ( ! class_exists( 'BSF_Analytics_Loader' ) ) {
require_once UAEL_DIR . 'admin/bsf-analytics/class-bsf-analytics-loader.php';
}
$bsf_analytics = BSF_Analytics_Loader::get_instance();
$bsf_analytics->set_entity(
array(
'uae' => array(
'product_name' => 'Ultimate Addons for Elementor Pro',
'path' => UAEL_DIR . 'admin/bsf-analytics',
'author' => 'Ultimate Addons for Elementor',
'time_to_display' => '+24 hours',
'deactivation_survey' => array(
array(
'id' => 'deactivation-survey-ultimate-elementor', // 'deactivation-survey-<your-plugin-slug>'
'popup_logo' => UAEL_URL . 'assets/images/settings/logo.svg',
'plugin_slug' => 'ultimate-elementor', // <your-plugin-slug>
'plugin_version' => UAEL_VER,
'popup_title' => 'Quick Feedback',
'support_url' => 'https://ultimateelementor.com/contact/',
'popup_description' => 'If you have a moment, please share why you are deactivating Ultimate Addons for Elementor Pro:',
'show_on_screens' => array( 'plugins' ),
),
),
'hide_optin_checkbox' => true,
),
)
);
add_filter( 'bsf_core_stats', array( $this, 'add_uae_analytics_data' ) );
}
/**
* Migrates analytics tracking option from 'bsf_analytics_optin' to 'uae_analytics_optin'.
*
* Checks if the old analytics tracking option ('bsf_analytics_optin') is set to 'yes'
* and if the new option ('uae_analytics_optin') is not already set.
* If so, updates the new tracking option to 'yes' to maintain user consent during migration.
*
* @since 1.39.8
* @access public
*
* @return void
*/
public function maybe_migrate_analytics_tracking() {
$old_tracking = get_option( 'bsf_analytics_optin', false );
$new_tracking = get_option( 'uae_analytics_optin', false );
if ( 'yes' === $old_tracking && false === $new_tracking ) {
update_option( 'uae_analytics_optin', 'yes' );
$time = get_option( 'bsf_analytics_installed_time' );
update_option( 'bsf_analytics_installed_time', $time );
}
}
/**
* Callback function to add specific analytics data.
*
* @param array $stats_data existing stats_data.
* @since 1.39.3
* @return array
*/
public function add_uae_analytics_data( $stats_data ) {
$stats_data['plugin_data']['uae'] = array(
'free_version' => ( defined( 'HFE_VER' ) ? HFE_VER : '' ),
'pro_version' => UAEL_VER,
'site_language' => get_locale(),
'elementor_version' => ( defined( 'ELEMENTOR_VERSION' ) ? ELEMENTOR_VERSION : '' ),
'elementor_pro_version' => ( defined( 'ELEMENTOR_PRO_VERSION' ) ? ELEMENTOR_PRO_VERSION : '' ),
'onboarding_triggered' => ( 'yes' === get_option( 'uaepro_onboarding_triggered' ) ) ? 'yes' : 'no',
);
$fetch_elementor_data = $this->uael_get_widgets_usage();
foreach ( $fetch_elementor_data as $key => $value ) {
$stats_data['plugin_data']['uae']['numeric_values'][ $key ] = $value;
}
return $stats_data;
}
/**
* Fetch Elementor data.
*/
private function uael_get_widgets_usage() {
$get_widgets = get_option( 'uaepro_widgets_usage_data_option', array() );
return $get_widgets;
}
}
}
new UAEL_Analytics();