Index: trunk/src/bp-core/classes/class-bp-invitation.php
===================================================================
--- trunk/src/bp-core/classes/class-bp-invitation.php	(revision 12867)
+++ trunk/src/bp-core/classes/class-bp-invitation.php	(revision 12873)
@@ -639,4 +639,10 @@
 				$where_clauses['format'][] = '%d';
 			}
+		}
+
+		// date_modified
+		if ( ! empty( $args['date_modified'] ) ) {
+			$where_clauses['data']['date_modified'] = $args['date_modified'];
+			$where_clauses['format'][] = '%s';
 		}
 
@@ -988,7 +994,15 @@
 	 * @since 5.0.0
 	 *
-	 * @param int $id The ID of the invitation to mark as sent.
-	 */
-	public static function mark_sent( $id = 0 ) {
+	 * @param int   $id   The ID of the invitation to mark as sent.
+	 * @param array $args {
+	 *     Optional. Invitation characteristics used
+	 *     to override certain sending behaviors.
+	 *
+	 *     @type string $date_modified Modified time in 'Y-m-d h:i:s' format, GMT.
+	 *                                 Defaults to current time if not specified.
+	 * }
+	 * @return int|bool The number of rows updated, or false on error.
+	 */
+	public static function mark_sent( $id = 0, $args = array() ) {
 
 		if ( ! $id ) {
@@ -998,6 +1012,11 @@
 		// Values to be updated.
 		$update_args = array(
-			'invite_sent' => 'sent',
+			'invite_sent'   => 'sent',
+			'date_modified' => bp_core_current_time(),
 		);
+		// Respect a specified `date-modified`.
+		if ( ! empty( $args['date_modified'] ) ) {
+			$update_args['date_modified'] = $args['date_modified'];
+		}
 
 		// WHERE clauses.
@@ -1015,5 +1034,6 @@
 	 * @since 5.0.0
 	 *
- 	 * @param array $args See BP_Invitation::update().
+	 * @param array $args See BP_Invitation::update().
+	 * @return int|bool The number of rows updated, or false on error.
 	 */
 	public static function mark_sent_by_data( $args ) {
@@ -1021,6 +1041,11 @@
 		// Values to be updated.
 		$update_args = array(
-			'invite_sent' => 'sent',
+			'invite_sent'   => 'sent',
+			'date_modified' => bp_core_current_time(),
 		);
+		// Respect a specified `date-modified`.
+		if ( ! empty( $args['date_modified'] ) ) {
+			$update_args['date_modified'] = $args['date_modified'];
+		}
 
 		return self::update( $update_args, $args );
@@ -1034,7 +1059,15 @@
 	 * @since 5.0.0
 	 *
-	 * @param int $id The ID of the invitation to mark as sent.
-	 */
-	public static function mark_accepted( $id = 0 ) {
+	 * @param int   $id   The ID of the invitation to mark as sent.
+	 * @param array $args {
+	 *     Optional. Invitation characteristics used
+	 *     to override certain sending behaviors.
+	 *
+	 *     @type string $date_modified Modified time in 'Y-m-d h:i:s' format, GMT.
+	 *                                 Defaults to current time if not specified.
+	 * }
+	 * @return int|bool The number of rows updated, or false on error.
+	 */
+	public static function mark_accepted( $id = 0, $args = array() ) {
 
 		if ( ! $id ) {
@@ -1044,6 +1077,11 @@
 		// Values to be updated.
 		$update_args = array(
-			'accepted' => 'accepted',
+			'accepted'      => 'accepted',
+			'date_modified' => bp_core_current_time(),
 		);
+		// Respect a specified `date-modified`.
+		if ( ! empty( $args['date_modified'] ) ) {
+			$update_args['date_modified'] = $args['date_modified'];
+		}
 
 		// WHERE clauses.
@@ -1061,5 +1099,6 @@
 	 * @since 5.0.0
 	 *
- 	 * @param array $args See BP_Invitation::update().
+	 * @param array $args See BP_Invitation::update().
+	 * @return int|bool The number of rows updated, or false on error.
 	 */
 	public static function mark_accepted_by_data( $args ) {
@@ -1067,6 +1106,11 @@
 		// Values to be updated.
 		$update_args = array(
-			'accepted' => 'accepted',
+			'accepted'      => 'accepted',
+			'date_modified' => bp_core_current_time(),
 		);
+		// Respect a specified `date-modified`.
+		if ( ! empty( $args['date_modified'] ) ) {
+			$update_args['date_modified'] = $args['date_modified'];
+		}
 
 		return self::update( $update_args, $args );
