oont-contents/plugins/jetpack-boost/app/lib/class-analytics.php
2025-02-08 15:10:23 +01:00

76 lines
1.7 KiB
PHP

<?php
/**
* Simple wrapper for Tracks library
*
* @package automattic/jetpack-boost
*/
namespace Automattic\Jetpack_Boost\Lib;
use Automattic\Jetpack\Connection\Manager;
use Automattic\Jetpack\Tracking;
use Jetpack_Options;
use Jetpack_Tracks_Client;
/**
* Class Analytics
*/
class Analytics {
/**
* Initialize tracking.
*/
public function init() {
$tracks = self::get_tracking();
// For tracking events via js/ajax.
add_action( 'admin_enqueue_scripts', array( $tracks, 'enqueue_tracks_scripts' ) );
}
/**
* Get the tracking and manager objects for Boost.
*/
public static function get_tracking() {
return new Tracking( 'jetpack_boost', new Manager( 'jetpack-boost' ) );
}
/**
* Record a user event.
*
* @param string $slug The event slug.
* @param array $data Optional event data.
*/
public static function record_user_event( $slug, $data = array() ) {
if ( ! isset( $data['boost_version'] ) && defined( 'JETPACK_BOOST_VERSION' ) ) {
$data['boost_version'] = JETPACK_BOOST_VERSION;
}
return self::get_tracking()->record_user_event( $slug, $data );
}
public static function init_tracks_scripts() {
$tracks = self::get_tracking();
$tracks::register_tracks_functions_scripts();
wp_enqueue_script( 'jp-tracks' );
}
public static function get_tracking_data() {
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
$user = wp_get_current_user();
$user_data = array(
'userid' => $user->ID,
'username' => $user->user_login,
);
$blog_id = get_current_blog_id();
} else {
$user_data = Jetpack_Tracks_Client::get_connected_user_tracks_identity();
$blog_id = Jetpack_Options::get_option( 'id', 0 );
}
return array(
'userData' => $user_data,
'blogId' => $blog_id,
);
}
}