<?php
defined('ABSPATH') || exit;
class WC_Extensions_Tracking
{
public function init()
{
add_action('load-woocommerce_page_wc-addons', array($this, 'track_extensions_page'));
add_action('woocommerce_helper_connect_start', array($this, 'track_helper_connection_start'));
add_action('woocommerce_helper_denied', array($this, 'track_helper_connection_cancelled'));
add_action('woocommerce_helper_connected', array($this, 'track_helper_connection_complete'));
add_action('woocommerce_helper_disconnected', array($this, 'track_helper_disconnected'));
add_action('woocommerce_helper_subscriptions_refresh', array($this, 'track_helper_subscriptions_refresh'));
add_action('woocommerce_addon_installed', array($this, 'track_addon_install'), 10, 2);
}
public function track_extensions_page()
{
$properties = array('section' => empty($_REQUEST['section']) ? '_featured' : wc_clean(wp_unslash($_REQUEST['section'])));
$event = 'extensions_view';
if ('helper' === $properties['section']) {
$event = 'subscriptions_view';
}
if (!empty($_REQUEST['search'])) {
$event = 'extensions_view_search';
$properties['search_term'] = wc_clean(wp_unslash($_REQUEST['search']));
}
WC_Tracks::record_event($event, $properties);
}
public function track_helper_connection_start()
{
WC_Tracks::record_event('extensions_subscriptions_connect');
}
public function track_helper_connection_cancelled()
{
WC_Tracks::record_event('extensions_subscriptions_cancelled');
}
public function track_helper_connection_complete()
{
WC_Tracks::record_event('extensions_subscriptions_connected');
}
public function track_helper_disconnected()
{
WC_Tracks::record_event('extensions_subscriptions_disconnect');
}
public function track_helper_subscriptions_refresh()
{
WC_Tracks::record_event('extensions_subscriptions_update');
}
public function track_addon_install($addon_id, $section)
{
$properties = array('context' => 'extensions', 'section' => $section);
if ('woocommerce-payments' === $addon_id) {
WC_Tracks::record_event('woocommerce_payments_install', $properties);
}
}
}