atch the parameters. * * @since 6.0.0 * @param mixed $start The description, timestamp or `DateTime` object representing * the Event start date and time. * @param mixed $end The description, timestamp or `DateTime` object representing * the Event end date and time. * @param mixed|null The timezone string, object or `null` to use the default timezone. * * @return WP_REST_Request A reference to an instance of the WP_Rest_Request * set up to provide information about the current HTTP request. */ public function from_http_request_with_dates( $start, $end, $timezone = null ) { $timezone = Timezones::build_timezone_object( $timezone ); $utc = Timezones::build_timezone_object( 'UTC' ); $start = Dates::immutable( $start, $timezone ); $end = Dates::immutable( $end, $timezone ); $request = $this->from_http_request(); // Set up params as the Classic Editor request would. $request->set_param( 'EventStartDate', $start->format( Dates::DBDATEFORMAT ) ); $request->set_param( 'EventStartTime', $start->format( Dates::DBTIMEFORMAT ) ); $request->set_param( 'EventEndDate', $end->format( Dates::DBDATEFORMAT ) ); $request->set_param( 'EventEndTime', $end->format( Dates::DBTIMEFORMAT ) ); $request->set_param( 'EventTimezone', $timezone->getName() ); // Set up params as the Blocks Editor would. $request->set_param( '_EventStartDate', $start->format( Dates::DBDATETIMEFORMAT ) ); $request->set_param( '_EventStartDateUTC', $start->setTimezone( $utc )->format( Dates::DBDATETIMEFORMAT ) ); $request->set_param( '_EventEndDate', $end->format( Dates::DBDATETIMEFORMAT ) ); $request->set_param( '_EventEndDateUTC', $end->setTimezone( $utc )->format( Dates::DBDATETIMEFORMAT ) ); $request->set_param( '_EventTimezone', $timezone->getName() ); return $request; } /** * Determines if the current request is a request to delete or trash a post or not. * * @since 6.0.0 * * @param WP_REST_Request $request A reference to the Request object to check. * * @return bool Whether the input Request is a request to delete or trash a post or not. */ public function is_delete_request( WP_REST_Request $request ): bool { $method = $request->get_method(); return ! empty( $request->get_param( 'id' ) ) && ( ( // A Classic Editor format request. in_array( $method, self::$update_http_methods, true ) && in_array( $request->get_param( 'action' ), [ 'trash', 'delete' ], true ) ) || // A REST API format request. in_array( $method, Arr::list_to_array( WP_REST_Server::DELETABLE ), true ) ); } } atch the parameters. * * @since 6.0.0 * @param mixed $start The description, timestamp or `DateTime` object representing * the Event start date and time. * @param mixed $end The description, timestamp or `DateTime` object representing * the Event end date and time. * @param mixed|null The timezone string, object or `null` to use the default timezone. * * @return WP_REST_Request A reference to an instance of the WP_Rest_Request * set up to provide information about the current HTTP request. */ public function from_http_request_with_dates( $start, $end, $timezone = null ) { $timezone = Timezones::build_timezone_object( $timezone ); $utc = Timezones::build_timezone_object( 'UTC' ); $start = Dates::immutable( $start, $timezone ); $end = Dates::immutable( $end, $timezone ); $request = $this->from_http_request(); // Set up params as the Classic Editor request would. $request->set_param( 'EventStartDate', $start->format( Dates::DBDATEFORMAT ) ); $request->set_param( 'EventStartTime', $start->format( Dates::DBTIMEFORMAT ) ); $request->set_param( 'EventEndDate', $end->format( Dates::DBDATEFORMAT ) ); $request->set_param( 'EventEndTime', $end->format( Dates::DBTIMEFORMAT ) ); $request->set_param( 'EventTimezone', $timezone->getName() ); // Set up params as the Blocks Editor would. $request->set_param( '_EventStartDate', $start->format( Dates::DBDATETIMEFORMAT ) ); $request->set_param( '_EventStartDateUTC', $start->setTimezone( $utc )->format( Dates::DBDATETIMEFORMAT ) ); $request->set_param( '_EventEndDate', $end->format( Dates::DBDATETIMEFORMAT ) ); $request->set_param( '_EventEndDateUTC', $end->setTimezone( $utc )->format( Dates::DBDATETIMEFORMAT ) ); $request->set_param( '_EventTimezone', $timezone->getName() ); return $request; } /** * Determines if the current request is a request to delete or trash a post or not. * * @since 6.0.0 * * @param WP_REST_Request $request A reference to the Request object to check. * * @return bool Whether the input Request is a request to delete or trash a post or not. */ public function is_delete_request( WP_REST_Request $request ): bool { $method = $request->get_method(); return ! empty( $request->get_param( 'id' ) ) && ( ( // A Classic Editor format request. in_array( $method, self::$update_http_methods, true ) && in_array( $request->get_param( 'action' ), [ 'trash', 'delete' ], true ) ) || // A REST API format request. in_array( $method, Arr::list_to_array( WP_REST_Server::DELETABLE ), true ) ); } }