Как добавить ошибку или уведомление о мероприятии?

У меня есть функция в моих группах BuddyPress, когда я отправляю пользовательские уведомления всем участникам, когда групповая активность публикуется как объявление. Существует вероятность, что что-то может пойти не так, конечно, и поэтому я хочу иметь возможность добавлять сообщение об ошибке в действие, если уведомление не отправлено.

Поскольку мое уведомление подключено к действию bp_activity_after_save обновление уже будет опубликовано, поэтому я все еще хочу, чтобы сообщение появлялось в фиде активности, но просто сообщите пользователю, что уведомления не были отправлены по какой-либо причине.

add_action( 'bp_activity_after_save', array( $this, 'send_team_notification'), 10, 1 );

Я попытался найти фильтр или что-то, что я мог бы использовать для изменения содержимого активности до его публикации, но, к сожалению, я пока не нашел ничего полезного.

Solutions Collecting From Web of "Как добавить ошибку или уведомление о мероприятии?"

С достаточным рытьем я понял это. Прежде всего, вы должны сохранить сообщение об ошибке в качестве метаданных активности так:

 public function send_team_notification($activity) { $message = $this->send_custom_notification($activity->content); if(is_wp_error($message)){ bp_activity_update_meta( $activity->id, 'custom_error', $message ); } } 

Это будет отображаться в базе данных в таблице wp_bp_activity_meta следующим образом:

введите описание изображения здесь

Оттуда вы можете вручную обновить файл шаблона темы, buddypress\activity\entry.php иначе я решил подключиться к действию bp_activity_entry_meta следующим образом:

 add_action('bp_activity_entry_meta', array( $this, 'add_activity_error') ); function add_activity_error(){ $error = bp_activity_get_meta(bp_get_activity_id(), 'custom_error'); _e('<div><p class="error">'.$error->get_error_message('error-code').'</p></div>'); } 

Надеюсь, это поможет!