PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.13.1
GiveWP – Donation Plugin and Fundraising Platform v4.13.1
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / API / REST / V3 / Support / Headers.php
give / src / API / REST / V3 / Support Last commit date
Schema 7 months ago CURIE.php 9 months ago Headers.php 9 months ago Item.php 9 months ago
Headers.php
74 lines
1 <?php
2
3 namespace Give\API\REST\V3\Support;
4
5 use WP_REST_Request;
6 use WP_REST_Response;
7
8 /**
9 * Helper class to manage pagination headers for REST API responses.
10 *
11 * @since 4.8.0
12 */
13 class Headers
14 {
15 /**
16 * Add pagination headers to a REST response.
17 *
18 * @since 4.8.0
19 *
20 * @param WP_REST_Response $response The response object to add headers to
21 * @param WP_REST_Request $request The request object
22 * @param int $totalItems Total number of items
23 * @param int $perPage Number of items per page
24 * @param string $routeBase The route base for building pagination URLs
25 *
26 * @return WP_REST_Response The response with headers added
27 */
28 public static function addPagination(
29 WP_REST_Response $response,
30 WP_REST_Request $request,
31 int $totalItems,
32 int $perPage,
33 string $routeBase
34 ): WP_REST_Response {
35 $page = $request->get_param('page');
36 $totalPages = (int) ceil($totalItems / $perPage);
37
38 // Add total headers
39 $response->header('X-WP-Total', $totalItems);
40 $response->header('X-WP-TotalPages', $totalPages);
41
42 // Build base URL for pagination links
43 $base = add_query_arg(
44 map_deep($request->get_query_params(), function ($value) {
45 if (is_bool($value)) {
46 $value = $value ? 'true' : 'false';
47 }
48
49 return urlencode($value);
50 }),
51 rest_url($routeBase)
52 );
53
54 // Add prev link header
55 if ($page > 1) {
56 $prevPage = $page - 1;
57
58 if ($prevPage > $totalPages) {
59 $prevPage = $totalPages;
60 }
61
62 $response->link_header('prev', add_query_arg('page', $prevPage, $base));
63 }
64
65 // Add next link header
66 if ($totalPages > $page) {
67 $nextPage = $page + 1;
68 $response->link_header('next', add_query_arg('page', $nextPage, $base));
69 }
70
71 return $response;
72 }
73 }
74