| Server IP : 3.93.235.159 / Your IP : 216.73.216.140 Web Server : Apache System : Linux ip-172-26-0-169 5.10.0-46-cloud-amd64 #1 SMP Debian 5.10.262-1 (2026-07-31) x86_64 User : bitnami ( 1000) PHP Version : 8.2.9 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/pojo-accessibility/modules/analytics/rest/ |
Upload File : |
<?php
namespace EA11y\Modules\Analytics\Rest;
use EA11y\Classes\Logger;
use EA11y\Modules\Analytics\Classes\Route_Base;
use EA11y\Modules\Analytics\Database\Analytics_Entry;
use EA11y\Modules\Analytics\Database\Analytics_Table;
use EA11y\Modules\Settings\Classes\Settings;
use Throwable;
use WP_REST_Request;
use WP_REST_Response;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class Events extends Route_Base {
protected $auth = false;
public string $path = 'events';
public function get_methods(): array {
return [ 'POST' ];
}
public function get_name(): string {
return 'events';
}
/**
* @param WP_REST_Request $request
* @return WP_REST_Response
*/
public function POST( WP_REST_Request $request ): WP_REST_Response {
try {
$raw_data = $request->get_body();
$events = json_decode( $raw_data, true );
foreach ( $events as $item ) {
if ( Analytics_Entry::validate_item( $item['event'] ) ) {
$value = array_key_exists( 'value', $item ) ? sanitize_text_field( $item['value'] ) : null;
$analytics_entry = new Analytics_Entry([
'data' => [
Analytics_Table::EVENT => $item['event'],
Analytics_Table::VALUE => $value,
],
]);
$analytics_entry->create();
}
}
} catch ( Throwable $t ) {
Logger::info( $t->getMessage() );
}
return new WP_REST_Response( null, 204 );
}
}