File "class-wc-tracks.php"

Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/includes/tracks/class-wc-tracks.php
File size: 2.76 B
MIME-type: text/x-php
Charset: utf-8

Download   Open   Edit   Advanced Editor   Back

<?php

class WC_Tracks
{
    const PREFIX = 'wcadmin_';
    public static function get_products_count()
    {
        $product_counts = WC_Tracker::get_product_counts();
        return $product_counts['total'];
    }
    public static function get_blog_details($user_id)
    {
        $blog_details = get_transient('wc_tracks_blog_details');
        if (false === $blog_details) {
            $blog_details = array('url' => home_url(), 'blog_lang' => get_user_locale($user_id), 'blog_id' => class_exists('Jetpack_Options') ? Jetpack_Options::get_option('id') : null, 'products_count' => self::get_products_count(), 'wc_version' => WC()->version);
            set_transient('wc_tracks_blog_details', $blog_details, DAY_IN_SECONDS);
        }
        return $blog_details;
    }
    public static function get_server_details()
    {
        $data = array();
        $data['_via_ua'] = isset($_SERVER['HTTP_USER_AGENT']) ? wc_clean(wp_unslash($_SERVER['HTTP_USER_AGENT'])) : '';
        $data['_via_ip'] = isset($_SERVER['REMOTE_ADDR']) ? wc_clean(wp_unslash($_SERVER['REMOTE_ADDR'])) : '';
        $data['_lg'] = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? wc_clean(wp_unslash($_SERVER['HTTP_ACCEPT_LANGUAGE'])) : '';
        $data['_dr'] = isset($_SERVER['HTTP_REFERER']) ? wc_clean(wp_unslash($_SERVER['HTTP_REFERER'])) : '';
        $uri = isset($_SERVER['REQUEST_URI']) ? wc_clean(wp_unslash($_SERVER['REQUEST_URI'])) : '';
        $host = isset($_SERVER['HTTP_HOST']) ? wc_clean(wp_unslash($_SERVER['HTTP_HOST'])) : '';
        $data['_dl'] = isset($_SERVER['REQUEST_SCHEME']) ? wc_clean(wp_unslash($_SERVER['REQUEST_SCHEME'])) . '://' . $host . $uri : '';
        return $data;
    }
    public static function record_event($event_name, $properties = array())
    {
        if (!WC_Site_Tracking::is_tracking_enabled()) {
            return false;
        }
        $user = wp_get_current_user();
        if ($user instanceof WP_User && 'wptests_capabilities' === $user->cap_key) {
            return false;
        }
        $prefixed_event_name = self::PREFIX . $event_name;
        $data = array('_en' => $prefixed_event_name, '_ts' => WC_Tracks_Client::build_timestamp());
        $server_details = self::get_server_details();
        $identity = WC_Tracks_Client::get_identity($user->ID);
        $blog_details = self::get_blog_details($user->ID);
        $filtered_properties = apply_filters('woocommerce_tracks_event_properties', $properties, $prefixed_event_name);
        unset($filtered_properties['_ui']);
        unset($filtered_properties['_ut']);
        $event_obj = new WC_Tracks_Event(array_merge($data, $server_details, $identity, $blog_details, $filtered_properties));
        if (is_wp_error($event_obj->error)) {
            return $event_obj->error;
        }
        return $event_obj->record();
    }
}