Automattic\WooCommerce\Internal\PushNotifications\Controllers
PushTokenRestController::create
Creates a push token record.
Method of the class: PushTokenRestController{}
No Hooks.
Returns
WP_REST_Response|WP_Error.
Usage
$PushTokenRestController = new PushTokenRestController(); $PushTokenRestController->create( $request );
- $request(WP_REST_Request) (required)
- The request object.
Changelog
| Since 10.6.0 | Introduced. |
PushTokenRestController::create() PushTokenRestController::create code WC 10.7.0
public function create( WP_REST_Request $request ) {
try {
$data = array(
'user_id' => get_current_user_id(),
'token' => $request->get_param( 'token' ),
'platform' => $request->get_param( 'platform' ),
'device_uuid' => $request->get_param( 'device_uuid' ),
'origin' => $request->get_param( 'origin' ),
'device_locale' => $request->get_param( 'device_locale' ),
'metadata' => $request->get_param( 'metadata' ) ?? array(),
);
$data_store = wc_get_container()->get( PushTokensDataStore::class );
$push_token = $data_store->get_by_token_or_device_id( $data );
if ( $push_token ) {
$push_token->set_token( $data['token'] );
$push_token->set_device_uuid( $data['device_uuid'] );
$push_token->set_device_locale( $data['device_locale'] );
$push_token->set_metadata( $data['metadata'] );
$data_store->update( $push_token );
} else {
$push_token = $data_store->create( $data );
}
} catch ( Exception $e ) {
return $this->convert_exception_to_wp_error( $e );
}
return new WP_REST_Response(
array( 'id' => $push_token->get_id() ),
WP_Http::CREATED
);
}