<?php namespace BitApps\WPTelemetry\Telemetry; use BitApps\WPTelemetry\Telemetry\Feedback\Feedback; use BitApps\WPTelemetry\Telemetry\Report\Report; class Telemetry { private static $report; private static $feedback; private static $version = '0.0.1'; public static function getVersion() { return self::$version; } public static function report() { if (!self::$report) { self::$report = new Report(); } return self::$report; } public static function feedback() { if (!self::$feedback) { self::$feedback = new Feedback(); } return self::$feedback; } public static function view($fileName, $args) { load_template(\dirname(\dirname(__DIR__)) . '/src/views/' . $fileName . '.php', false, $args); } public static function sendReport($route, $data, $blocking = false) { $apiUrl = trailingslashit(TelemetryConfig::getServerBaseUrl()) . $route; $headers = [ 'host-user' => md5(esc_url(home_url())), 'Content-Type' => 'application/json', ]; return wp_remote_post( $apiUrl, [ 'method' => 'POST', 'timeout' => 30, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => $blocking, 'headers' => $headers, 'body' => wp_json_encode(array_merge($data, ['wp_telemetry' => self::$version])), 'cookies' => [], ] ); } }