one-click-accessibility/modules/analytics/rest/events.php
VasylD 38bdaef8b6
[APP-1107] Add dashboard for analytics (#204)
* [APP-1108][APP-1109][APP-1110] Add analytics backend logic

* [APP-1108][APP-1109][APP-1110] Add analytics backend logic

* Add nonce to the widget settings

* Update routes and DB table

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* Fix comments

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1107] Add dashboard for analytics

* [APP-1201] add accessibility rules

* [APP-1107] fixed API endpoint

* [APP-1107] fixed API endpoint

* [APP-1107] fixed API endpoint

* [APP-1107] add check for is_active

* update to the latest

* update to the latest

* update to the latest

* fix bugs, add changes

* fix bugs, add changes

* fix bugs, add changes

* fix bugs, add changes
2025-03-17 12:26:52 +02:00

54 lines
1.3 KiB
PHP

<?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 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 );
}
}