WooCommerce Code Reference

class-wc-theme-tracking.php

Source code

<?php
/**
 * WooCommerce Theme Tracking
 *
 * @package WooCommerce\Tracks
 */

defined( 'ABSPATH' ) || exit;

/**
 * This class adds actions to track usage of themes on a WooCommerce store.
 */
class WC_Theme_Tracking {

	/**
	 * Init tracking.
	 */
	public function init() {
		$this->track_initial_theme();
		add_action( 'switch_theme', array( $this, 'track_activated_theme' ) );
	}

	/**
	 * Tracks the sites current theme the first time this code is run, and will only be run once.
	 */
	public function track_initial_theme() {
		$has_been_initially_tracked = get_option( 'wc_has_tracked_default_theme' );

		if ( $has_been_initially_tracked ) {
			return;
		}

		$this->track_activated_theme();
		add_option( 'wc_has_tracked_default_theme', 1 );
	}

	/**
	 * Send a Tracks event when a theme is activated so that we can track active block themes.
	 */
	public function track_activated_theme() {
		$is_block_theme = false;
		$theme_object = wp_get_theme();

		if ( function_exists( 'wc_current_theme_is_fse_theme' ) ) {
			$is_block_theme = wc_current_theme_is_fse_theme();
		}

		$properties = array(
			'block_theme'   => $is_block_theme,
			'theme_name'    => $theme_object->get( 'Name' ),
			'theme_version' => $theme_object->get( 'Version' ),
		);

		WC_Tracks::record_event( 'activated_theme', $properties );
	}
}