LLMS_Tracker
LifterLMS telemetry tracking data.
Contents
Source Source
File: includes/class.llms.tracker.php
class LLMS_Tracker { /** * URL endpoint where we'll receive the data */ const API_URL = 'https://lifterlms.com/llms-api/tracking'; /** * Initialize. * * @since 3.0.0 * * @return void */ public static function init() { add_action( 'llms_send_tracking_data', array( __CLASS__, 'send_data' ) ); } /** * Retrieve a timestamp of the last time the tracks sent data home * * @since 3.0.0 * * @return int a timestamp */ private static function get_last_send_time() { return apply_filters( 'llms_tracker_get_last_send_time', get_option( 'llms_tracker_last_send_time', 0 ) ); } /** * Send data home * * @since 3.0.0 * @since 7.4.0 Fix return type. * * @param bool $force Force send regardless or the last send time. * @return array|WP_Error|void */ public static function send_data( $force = false ) { // Don't trigger during AJAX Requests. if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { return; } // Allow forcing of the send despite the interval. if ( ! $force && ! apply_filters( 'llms_tracker_force_send', false ) ) { // Only send data once a week. $last_send = self::get_last_send_time(); if ( $last_send && $last_send > apply_filters( 'llms_tracker_send_interval', strtotime( '-1 week' ) ) ) { return; } } // Record a last send time. update_option( 'llms_tracker_last_send_time', time() ); $r = wp_remote_post( self::API_URL, array( 'body' => array( 'data' => json_encode( LLMS_Data::get_data( 'tracker' ) ), ), 'cookies' => array(), 'headers' => array( 'user-agent' => 'LifterLMS_Tracker/' . md5( esc_url( home_url( '/' ) ) ) . ';', ), 'method' => 'POST', 'redirection' => 5, 'timeout' => 60, ) ); if ( ! is_wp_error( $r ) ) { return json_decode( $r['body'], true ); } else { return $r; } } }
Expand full source code Collapse full source code View on GitHub
Methods Methods
- get_last_send_time — Retrieve a timestamp of the last time the tracks sent data home
- init — Initialize.
- send_data — Send data home
Changelog Changelog
Version | Description |
---|---|
3.0.0 | Introduced. |