Automattic\WooCommerce\Internal\PushNotifications\Controllers
PushTokenRestController::create
Creates a push token record.
Метод класса: PushTokenRestController{}
Хуков нет.
Возвращает
WP_REST_Response|WP_Error.
Использование
$PushTokenRestController = new PushTokenRestController(); $PushTokenRestController->create( $request );
- $request(WP_REST_Request) (обязательный)
- The request object.
Список изменений
| С версии 10.6.0 | Введена. |
Код PushTokenRestController::create() PushTokenRestController::create WC 11.2.1
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
);
}