delete(); } } /** * Delete Reactions if Actor-URL is a Tombstone. * * @param array $activity The delete activity. */ public static function maybe_delete_interactions( $activity ) { // verify if Actor is deleted. if ( Http::is_tombstone( $activity['actor'] ) ) { \wp_schedule_single_event( \time(), 'activitypub_delete_actor_interactions', array( $activity['actor'] ) ); } } /** * Delete comments from an Actor. * * @param array $comments The comments to delete. */ public static function delete_interactions( $actor ) { $comments = Interactions::get_interactions_by_actor( $actor ); if ( is_array( $comments ) ) { foreach ( $comments as $comment ) { wp_delete_comment( $comment->comment_ID ); } } } /** * Delete a Reaction if URL is a Tombstone. * * @param array $activity The delete activity. * * @return void */ public static function maybe_delete_interaction( $activity ) { if ( is_array( $activity['object'] ) ) { $id = $activity['object']['id']; } else { $id = $activity['object']; } $comments = Interactions::get_interaction_by_id( $id ); if ( $comments && Http::is_tombstone( $id ) ) { foreach ( $comments as $comment ) { wp_delete_comment( $comment->comment_ID, true ); } } } /** * Defer signature verification for `Delete` requests. * * @param bool $defer Whether to defer signature verification. * @param WP_REST_Request $request The request object. * * @return bool Whether to defer signature verification. */ public static function defer_signature_verification( $defer, $request ) { $json = $request->get_json_params(); if ( isset( $json['type'] ) && 'Delete' === $json['type'] ) { return true; } return false; } }