verify_capability(); if ( $error ) { return $error; } $enabled_periods = [ 0, 1, 7, 30 ]; $params = $request->get_query_params(); $period = sanitize_text_field( $params['period'] ); if ( ! in_array( $period, $enabled_periods, true ) ) { $this->respond_error_json([ 'message' => esc_html__( 'Bad request.', 'pojo-accessibility' ), 'code' => 400, ]); } try { $date = new DateTime(); $date->modify( "-$period days" )->setTime( 0, 0, 0, 0 ); $date_from = $date->format( 'Y-m-d H:i:s' ); $result = [ 'dates' => Analytics_Entry::get_data_dates_grouped( $date_from ), 'elements' => Analytics_Entry::get_data_events_grouped( $date_from ), ]; return $this->respond_success_json( $result ); } catch ( Throwable $t ) { return $this->respond_error_json( [ 'message' => $t->getMessage(), 'code' => 'internal_server_error', ] ); } } }