Automattic\WooCommerce\Internal\PushNotifications\Controllers
PushTokenRestController::index
Returns all push tokens for roles that can receive push notifications, formatted for the WPCOM push notifications endpoint.
Method of the class: PushTokenRestController{}
No Hooks.
Returns
WP_REST_Response|WP_Error.
Usage
$PushTokenRestController = new PushTokenRestController(); $PushTokenRestController->index( $request );
- $request(WP_REST_Request) (required)
- The request object.
Changelog
| Since 10.8.0 | Introduced. |
PushTokenRestController::index() PushTokenRestController::index code WC 11.0.1
public function index( WP_REST_Request $request ) {
$page = (int) $request->get_param( 'page' );
$per_page = (int) $request->get_param( 'per_page' );
try {
/**
* Paginated result from get_tokens_for_roles.
*
* @var array{tokens: PushToken[], total: int, total_pages: int} $result
*/
$result = wc_get_container()
->get( PushTokensDataStore::class )
->get_tokens_for_roles(
PushNotifications::ROLES_WITH_PUSH_NOTIFICATIONS_ENABLED,
$page,
$per_page
);
} catch ( Exception $e ) {
return $this->convert_exception_to_wp_error( $e );
}
$response = new WP_REST_Response(
array(
'tokens' => array_map(
fn ( $token ) => $token->to_wpcom_format(),
$result['tokens']
),
),
WP_Http::OK
);
$response->header( 'X-WP-Total', (string) $result['total'] );
$response->header( 'X-WP-TotalPages', (string) $result['total_pages'] );
return $response;
}