Dies sind alle Aktionen und Filter, die vom WP Discourse-Plugin bereitgestellt werden. Die Beispiele dienen nur zur Veranschaulichung. Sie müssen die Beispiele auf Ihrer eigenen Instanz testen und validieren, bevor Sie sie in der Produktion verwenden.
Filter
Eine allgemeine Erklärung dazu, wie Sie Filter in WordPress verwenden können, finden Sie unter:
Veröffentlichen
WP Discourse-Filter zum Veröffentlichen.
discourse_post_types_to_publish
Filtert die Post-Typen, die in der Liste der Post-Typen für die Einstellung „Zu veröffentlichende Post-Typen“ (Post Types to Publish) angezeigt werden. Beachten Sie, dass dies die Veröffentlichung von Posts auf Discourse für Post-Typen nicht aktiviert oder deaktiviert.
Beispiel
Nur den Typ „post“ anzeigen:
function filter_post_types( $post_types ) {
return array( 'post' );
}
add_filter( 'wp_discourse_publish_categories', 'filter_post_types', 10, 1);
wpdc_publish_private_post
Veröffentlichen privater WordPress-Posts auf Discourse.
Beispiel
function wpdc_custom_publish_private_post( $publish, $post_id ) {
return 'private' === get_post_status( $post_id );
}
add_filter( 'wpdc_publish_private_post', 'wpdc_custom_publish_private_post', 10, 2 );
wpdc_publish_after_save
Ob ein bestimmter Post auf Discourse veröffentlicht werden soll.
Beispiel
wp_discourse_before_xmlrpc_publish
Ob ein bestimmter Post über XML-RPC auf Discourse veröffentlicht werden soll.
Beispiel
XML-RPC-Posts mit „Äpfeln“ (apples) im Titel nicht veröffentlichen.
function publish_after_save ( $publish_to_discourse, $post ) {
return strpos($post->post_title, 'apples') !== false;
}
add_filter( 'wpdc_publish_after_save', 'publish_after_save', 10, 2 );
wpdc_publish_format_title
Den Titel des Discourse-Themas ändern.
Beispiel
wp_discourse_excerpt
Den Inhalt von Posts, die an Discourse gesendet werden, ändern.
Beispiel
wpdc_publish_post_category
Die Kategorie ändern, in der der Post veröffentlicht wird.
Beispiel
Posts immer in der Kategorie „Site Feedback“ veröffentlichen.
function wpdc_change_post_category( $category, $post_id ) {
$categories = WPDiscourse\Utilities\Utilities::get_discourse_categories();
return array_search("Site Feedback", array_column($categories, 'name'));
}
add_filter( 'wpdc_publish_post_category', 'wpdc_change_post_category' );
wp_discourse_publish_categories
Filtert die Kategorien, die in der Einstellung „Kategorie“ in der WP Discourse-Seitenleiste angezeigt werden, wenn ein WordPress-Post erstellt oder bearbeitet wird.
Beispiel
Nur die Kategorie „Site Feedback“ anzeigen:
function filter_categories( $categories ) {
return array_filter( $categories, function( $category ){
return $category['name'] === 'Site Feedback';
});
};
add_filter( 'wp_discourse_publish_categories', 'filter_categories', 10, 1);
wpdc_publish_unlisted
Bestimmen, ob der veröffentlichte Post auf Discourse als „nicht gelistet“ (unlisted) markiert wird.
Beispiel
Als nicht gelistet veröffentlichen, wenn der Post den Begriff „document“ in der WordPress-Taxonomie „knowledge_base“ hat.
function wpdc_unlisted_for_site_feedback( $unlisted, $post, $post_id ) {
return has_term( "document", "knowledge_base", $post ) || $unlisted;
}
add_filter( 'wpdc_publish_unlisted', 'wpdc_unlisted_for_site_feedback' );
wpdc_discourse_username
Den Discourse-Benutzernamen festlegen, der als Autor des Discourse-Posts verwendet wird.
Beispiel
„angus“ als Autor aller auf Discourse veröffentlichten Posts festlegen.
function wpdc_custom_username( $discourse_username, $author_id ) {
return 'angus';
}
add_filter( 'wpdc_discourse_username', 'wpdc_custom_username' );
wpdc_publish_body
Den Inhalt ändern, der beim Erstellen oder Aktualisieren von Posts gesendet wird.
Beispiel
Jedem Post die Tags tag1 und tag2 hinzufügen.
add_filter( 'wpdc_publish_body', function( $body, $remote_post_type ) {
if ( 'create_post' === $remote_post_type ) {
$body['tags'] = array( 'tag1', 'tag2' );
}
return $body;
}, 10, 2);
Einstellungen
WP Discourse-Einstellungsfilter.
wpdc_utilities_options_array
Jede von WP Discourse verwendete Einstellung ändern, zum Zeitpunkt, an dem die Einstellungen im Code verwendet werden.
Beispiel
Die Discourse-URL automatisch auf https://wordpress.pavilion.tech festlegen, unabhängig davon, was im Admin-Bereich eingegeben wird.
function filter_network_url_setting( $options) {
$options["discourse_url"] = "https://wordpress.pavilion.tech";
return $options;
}
add_filter( 'wpdc_utilities_options_array', 'filter_network_url_setting', 10, 1);
wpdc_validate_site_*
Filtert jede WP Discourse-Netzwerkeinstellung bei Verwendung eines Multisite-Netzwerks, im Format: wpdc_validate_site_[unterstrichener_Einstellungsname]
Beispiel
Die Discourse-URL automatisch auf https://wordpress.pavilion.tech festlegen, unabhängig davon, was im Admin-Bereich eingegeben wird.
function filter_multisite_network_url_setting( $value ) {
return "https://wordpress.pavilion.tech";
}
add_filter( 'wpdc_validate_site_url', 'filter_multisite_network_url_setting', 10, 1);
wpdc_category_cache_minutes
Dauer des Caches für die Kategorienliste. Standardmäßig 10 Minuten.
Beispiel
Die Cache-Dauer auf 5 Minuten ändern.
function change_category_cache_minutes( $default ) {
return 5;
}
add_filter( 'wpdc_category_cache_minutes', 'change_category_cache_minutes', 10, 1);
Kommentare
Filter in Bezug auf Discourse-Kommentare in WordPress.
discourse_post_avatar_template_size
Die Größe des in Kommentaren verwendeten Avatars festlegen. Verfügbare Größen sind in der Discourse-Einstellung „Avatar sizes“ (Avatargrößen) festgelegt (Standard: 20|25|32|45|60|120).
Beispiel
function filter_avatar_size( $size ) {
return 32;
}
add_filter( 'discourse_post_avatar_template_size', 'filter_avatar_size', 10, 1);
wpdc_comment_body
Den HTML-Inhalt des Kommentars filtern.
Beispiel
discourse_participant_avatar_template_size
Die Größe der Teilnehmer-Avatare festlegen (gleiche Optionen wie bei discourse_post_avatar_template_size).
Beispiel
function filter_participant_avatar_size( $size ) {
return 20;
}
add_filter( 'discourse_participant_avatar_template_size', 'filter_participant_avatar_size', 10, 1);
wpdc_join_discussion_link_text
Den Text des Links „Diskussion beitreten“ (Join Discussion) festlegen. Nur verwenden, wenn Textoptionen nicht geeignet sind.
Beispiel
wpdc_comment_sync_period
Die Synchronisationsperiode für Kommentare in Sekunden festlegen. Standardmäßig 600, also 10 Minuten.
Beispiel
Die Synchronisationsperiode auf 5 Minuten festlegen.
function custom_comment_sync_period( $minutes, $post_id ) {
return 300;
}
add_filter( 'wpdc_comment_sync_period', 'custom_comment_sync_period', 10, 2);
wpdc_single_page_comment_number_sync
Bestimmen, ob die Anzahl der Discourse-Kommentare im regulären 10-Minuten-Takt (true zurückgeben) oder in einem längeren 24-Stunden-Takt (false zurückgeben) abgerufen werden soll. Dies wird typischerweise für Archivseiten verwendet (kann auch über discourse_archive_page_sync_period festgelegt werden, siehe unten).
Beispiel
Die Kommentaranzahl alle 10 Minuten auf Beiträgen und der Startseite und alle 24 Stunden auf anderen Seiten synchronisieren.
function my_namespace_single_page_sync( $single_page, $post_id ) {
return is_front_page() || is_single( $post_id );
}
add_filter( 'wpdc_single_page_comment_number_sync', 'my_namespace_single_page_sync', 10, 2 );
discourse_archive_page_sync_period
Die Synchronisationsperiode für die Kommentaranzahl auf Archivseiten in Sekunden festlegen. Standardmäßig 86400 (24 Stunden).
Beispiel
wpdc_load_comments_template_for_user
Bestimmen, ob die WP Discourse-Kommentarvorlage für einen bestimmten Benutzer geladen wird.
Beispiel
Die Kommentare für einen Benutzer mit der ID 1 nicht laden.
function load_comment_template_for_user( $load_template, $current_user, $post_id ) {
return $current_user->ID !== 1;
add_filter( 'wpdc_load_comments_template_for_user', 'load_comment_template_for_user', 10, 3 );
wpdc_comments_count
Die Kommentaranzahl für bestimmte Beiträge filtern.
Beispiel
function filter_comments_count( $count, $post_id, $discourse_post_id ) {
## Kommentaranzahl ändern
}
add_filter( 'wpdc_comments_count', 'filter_comments_count`, 10, 3 );
discourse_replies_html
Das HTML der Kommentare ändern.
Beispiel
discourse_no_replies_html
Das HTML ändern, das angezeigt wird, wenn keine Kommentare vorhanden sind.
Beispiel
discourse_no_connection_html
Das HTML ändern, das angezeigt wird, wenn keine Verbindung zu Discourse besteht.
Beispiel
discourse_comment_html
Das HTML einzelner Kommentare ändern.
Beispiel
discourse_participant_html
Das HTML der Teilnehmer ändern.
Beispiel
discourse_publish_format_html
Das HTML der WordPress-Post-Details im Inhalt ändern, der auf Discourse veröffentlicht wird.
Beispiel
DiscourseConnect Provider
WP Discourse DiscourseConnect Provider-Filter.
discourse_email_verification
Bestimmen, ob Discourse die E-Mail-Adresse eines Benutzers beim Anmelden mit DiscourseConnect verifizieren muss.
Beispiel
E-Mail-Verifizierung erforderlich machen, wenn die E-Mail-Adresse des Benutzers nicht von der Domain discourse.org stammt.
function require_email_verification_for_external_domains( $require_activation, $user ) {
$user_info = get_userdata( $user->ID );
return strpos( $user_info->user_email, 'discourse.org' ) == false || $require_activation;
}
add_filter( 'discourse_email_verification', 'require_email_verification_for_external_domains`, 10, 2 );
wpdc_email_verification_not_verified
Filtert das Ergebnis der E-Mail-Verifizierung, wenn es falsch ist.
Beispiel
Immer ein wahres Verifizierungsergebnis zurückgeben, wenn die E-Mail-Adresse des Benutzers in der Domain discourse.org liegt.
function wpdc_custom_email_verification_not_verified( $verified, $user_id) {
$user_info = get_userdata( $user_id );
return strpos( $user_info->user_email, 'discourse.org' ) !== false || $verified;
}
add_filter( 'wpdc_email_verification_not_verified', 'wpdc_custom_email_verification_not_verified`, 10, 2 );
wpdc_email_verification_verified
Filtert das Ergebnis der E-Mail-Verifizierung, wenn es wahr ist.
Beispiel
Immer ein falsches Verifizierungsergebnis zurückgeben, wenn die E-Mail-Adresse des Benutzers nicht in der Domain discourse.org liegt.
function wpdc_custom_email_verification_verified( $verified, $user_id ) {
$user_info = get_userdata( $user_id );
return strpos( $user_info->user_email, 'discourse.org' ) !== false || false;
}
add_filter( 'wpdc_email_verification_verified', 'wpdc_custom_email_verification_verified`, 10, 2 );
wpdc_sso_avatar_url
Die Avatar-URL des Benutzers auf Discourse festlegen, wenn er sich mit DiscourseConnect anmeldet.
Beispiel
wpdc_sso_params
Die DiscourseConnect-Parameter ändern, die gesendet werden, wenn sich ein Benutzer anmeldet.
Beispiel
wpdc_bypass_sync_sso
Verhindern, dass das WordPress-Konto eines Benutzers mit seinem Discourse-Konto synchronisiert wird.
Beispiel
wp_new_user_notification_email_admin
Filtert den Inhalt der neuen Benutzer-Benachrichtigungs-E-Mail, die an den Site-Administrator gesendet wird.
Beispiel
function wp_custom_new_user_notification_email_admin( $email_opts, $user, $blogname ) {
## E-Mail ändern, bevor sie an den Administrator gesendet wird.
}
add_filter( 'wp_new_user_notification_email_admin', 'wp_custom_new_user_notification_email_admin', 10, 2 );
wp_new_user_notification_email
Filtert den Inhalt der neuen Benutzer-Benachrichtigungs-E-Mail, die an den neuen Benutzer gesendet wird.
Beispiel
function wp_custom_new_user_notification_email( $email_opts, $user, $blogname ) {
## E-Mail ändern, bevor sie an den Benutzer gesendet wird.
}
add_filter( 'wp_new_user_notification_email', 'wp_custom_new_user_notification_email', 10, 2 );
DiscourseConnect Client
WP Discourse DiscourseConnect Client-Filter.
wpdc_sso_client_add_link_buttons_on_profile
Bestimmen, ob ein Link-Button für das Discourse-Konto auf den Profilen von WordPress-Benutzern angezeigt werden soll.
Beispiel
function wpdc_dont_add_account_link_button( $add_button ) {
return false;
}
add_filter( 'wpdc_sso_client_add_link_buttons_on_profile', 'wpdc_dont_add_account_link_button' );
wpdc_sso_client_updated_user
Discourse-Benutzerdaten filtern, bevor das WordPress-Benutzerkonto aktualisiert wird.
Beispiel
Stellen Sie sicher, dass der erste Buchstabe im Namen des Benutzers großgeschrieben ist.
function wpdc_ensure_capitalisation( $updated_user, $query ) {
$updated_user['name'] = ucfirst( $updated_user['name'] );
return $updated_user;
}
add_filter( 'wpdc_sso_client_updated_user', 'wpdc_dont_update_admin_users' );
wpdc_sso_client_redirect_after_login
Die return_sso_url filtern, die verwendet wird, um einen Benutzer nach einer erfolgreichen Anmeldung umzuleiten.
Beispiel
Benutzer nach einer erfolgreichen Anmeldung immer auf das „Dashboard“ umleiten.
function wpdc_always_redirect_to_dashboard( $return_sso_url ) {
return "/dashboard";
}
add_filter( 'wpdc_sso_client_redirect_after_login', 'wpdc_always_redirect_to_dashboard' );
wpdc_sso_client_redirect_after_failed_login
Die login_url filtern, die verwendet wird, um einen Benutzer nach einer fehlgeschlagenen Anmeldung umzuleiten.
Beispiel
Benutzer nach einer fehlgeschlagenen Anmeldung immer auf die Seite „Hilfe“ umleiten.
function wpdc_always_redirect_to_help( $redirect_url ) {
return "/help";
}
add_filter('wpdc_sso_client_redirect_after_failed_login', 'wpdc_always_redirect_to_help');
wpdc_nonce_life
Die Nonce-Timeout-Zeit festlegen. Standardmäßig 10 Minuten.
Beispiel
Die Nonce-Timeout-Zeit auf 5 Minuten festlegen.
function wpdc_custom_nonce_life( $nonce_timeout ) {
return 5;
}
add_filter( 'wpdc_nonce_life', 'wpdc_custom_nonce_life' );
wpdc_sso_client_login_anchor
Den Text ändern, der auf dem Discourse-Login-Link angezeigt wird, der im WordPress-Login-Formular gezeigt wird.
Beispiel
Den Text in „Mit Ihrem Forum-Konto anmelden“ ändern.
function wpdc_custom_sso_client_login_anchor ( $login_text ) {
return "Login with your forum account";
}
add_filter( 'wpdc_sso_client_login_anchor', 'wpdc_custom_sso_client_login_anchor' );
wpdc_sso_client_login_button
Den Discourse-Login-Link ändern, der im WordPress-Login-Formular angezeigt wird.
Beispiel
Das Link-Element ändern (Klassen und Titel-Attribute hinzufügen).
function wpdc_custom_sso_client_login_button( $button, $sso_login_url, $link_options ) {
return sprintf( '<a class="wpdc-sso-client-login-link" href="%s" class="discourse-login-link" title="%s">%s</a>', esc_url( $sso_login_url ), sanitize_text_field( "Click to login with Discourse" ), sanitize_text_field( "Login with Discourse" ) );
}
add_filter( 'wpdc_sso_client_login_button', 'wpdc_custom_sso_client_login_button', 10, 3 );
wpdc_sso_client_query
Eine beliebige Zeichenfolge zur Abfrage hinzufügen, die DiscourseConnect initialisiert, um Probleme mit der Seitencache zu behandeln.
Beispiel
wpdc_sso_client_redirect_url
Die Umleitungs-URL filtern, die verwendet wird, nachdem sich ein Benutzer angemeldet hat.
Beispiel
Benutzer nach der Anmeldung auf ein Dashboard umleiten.
function wpdc_custom_sso_client_redirect_url( $encoded_url, $unencoded_url ) {
return "/dashboard";
}
add_filter( 'wpdc_sso_client_redirect_url', 'wpdc_custom_sso_client_redirect_url', 10, 2);
Webhooks
WP Discourse Webhook-Filter.
wpdc_webhook_get_page_by_title_post_type
Den Post-Typ ändern, der verwendet wird, um WordPress-Posts und Discourse-Posts abzugleichen. Standardmäßig „post“.
function wpdc_match_custom_posts( $post_type ) {
return 'custom_post_type';
}
add_filter( 'wpdc_webhook_get_page_by_title_post_type', 'wpdc_match_custom_posts' );
wpdc_use_discourse_user_webhook
Bestimmen, ob der Discourse-Benutzer-Webhook verwendet werden soll.
Beispiel
Utilities
Filter, die Sie mit WP Discourse-Utilities verwenden können.
wpdc_auto_create_user_require_activation
Bestimmen, wann ein Benutzer, der durch das Utility create_discourse_user erstellt wurde, eine Aktivierung erfordert.
Beispiel
Aktionen
Eine allgemeine Erklärung dazu, wie Sie Aktionen in WordPress verwenden können, finden Sie unter:
Einstellungen
WP Discourse-Einstellungsaktionen.
wpdc_options_page_append_settings_tabs
Kann verwendet werden, um Untertabs zu den WP Discourse-Einstellungs-Tabs hinzuzufügen.
Beispiel
function my_wp_discourse_setting_tab( $tab, $parent ) {
## Fügen Sie Ihr Tab hinzu.
}
add_action('wpdc_options_page_append_settings_tabs', 'my_wp_discourse_setting_tab', 10, 2);
wpdc_options_page_after_settings_tabs
Wird nach den Einstellungs-Tabs aufgerufen.
Beispiel
function my_custom_wpdc_tab( $tab, $parent ) {
## Führen Sie Ihren Code für das benutzerdefinierte Tab aus.
}
add_action( 'wpdc_options_page_after_settings_tabs', 'my_custom_wpdc_tab', 10, 2 );
wpdc_options_page_after_tab_switch
Wird aufgerufen, nachdem ein WP Discourse-Tab gewechselt wurde.
Beispiel
function my_custom_wpdc_tab_switch( $tab ) {
## Führen Sie Ihren benutzerdefinierten Code nach dem Tab-Wechsel aus.
}
add_action( 'wpdc_options_page_after_tab_switch', 'my_custom_wpdc_tab_switch' );
wpdc_options_page_after_form
Wird aufgerufen, nachdem das WP Discourse-Einstellungsformular gerendert wurde.
Beispiel
function my_custom_wpdc_options_page_after_form( $tab ) {
## Führen Sie Ihren benutzerdefinierten Code aus, nachdem die Einstellungen gerendert wurden.
}
add_action( 'wpdc_options_page_after_form', 'my_custom_wpdc_options_page_after_form' );
Kommentare
WP Discourse-Kommentaraktionen.
wp_discourse_after_comments
Wird ausgeführt, nachdem Kommentare synchronisiert wurden.
Beispiel
function my_custom_comment_handling( $topic_id ) {
## Führen Sie Ihren benutzerdefinierten Code aus, nachdem Kommentare synchronisiert wurden.
}
add_action( 'wp_discourse_after_comments', 'my_custom_comment_handling' );
DiscourseConnect Provider
WP Discourse DiscourseConnect Provider-Aktionen.
wpdc_after_sync_sso
Wird ausgeführt, nachdem ein Benutzer über DiscourseConnect synchronisiert wurde.
Beispiel
wpdc_sso_provider_before_create_user
Wird ausgeführt, bevor der Discourse-Benutzer erstellt wird.
Beispiel
function my_custom_user_handling( $user_login, $user ) {
## Führen Sie Ihren benutzerdefinierten Code aus, bevor ein Benutzer erstellt wird.
}
add_action( 'wpdc_sso_provider_before_create_user', 'my_custom_user_handling', 10, 2 );
wpdc_sso_before_login_redirect
Wird ausgeführt, bevor ein Benutzer zur WordPress-Anmeldung umgeleitet wird.
Beispiel
function my_custom_login_handling( $user_login, $user ) {
## Führen Sie Ihren benutzerdefinierten Code aus, bevor ein Benutzer zur Anmeldung umgeleitet wird.
}
add_action( 'wpdc_sso_before_login_redirect', 'my_custom_login_handling', 10, 2 );
wpdc_sso_provider_before_sso_redirect
Wird ausgeführt, bevor ein Benutzer nach der WordPress-Anmeldung zurück zu Discourse umgeleitet wird.
Beispiel
DiscourseConnect Client
WP Discourse DiscourseConnect Client-Aktionen.
wpdc_sso_client_after_login_link
Wird ausgeführt, nachdem der Discourse-Login-Link gerendert wurde.
Beispiel
function my_custom_login_html() {
## Fügen Sie Ihr benutzerdefiniertes HTML hinzu.
}
add_action( 'wpdc_sso_client_after_login_link', 'my_custom_login_html' );
wpdc_sso_client_after_create_user
Wird ausgeführt, nachdem ein WordPress-Benutzer erstellt wurde.
Beispiel
function wpdc_modify_wordpress_user( $user_id ) {
## Ändern Sie den WordPress-Benutzer.
}
add_action( 'wpdc_sso_client_after_create_user', 'wpdc_modify_wordpress_user' );
wpdc_after_sso_client_user_update
Wird ausgeführt, nachdem ein WordPress-Benutzer aktualisiert wurde.
Beispiel
function wpdc_modify_wordpress_user_after_update( $user_id, $query ) {
## Ändern Sie den WordPress-Benutzer.
}
add_action( 'wpdc_after_sso_client_user_update', 'wpdc_modify_wordpress_user_after_update' );
Webhooks
WP Discourse Webhook-Aktionen.
wpdc_before_webhook_post_update
Wird ausgeführt, bevor die vom Discourse erhaltene Topic-Update-Webhook-Daten verarbeitet werden.
Beispiel
function wpdc_before_webhook_post_update_changes( $json ) {
## Verwenden Sie das von Discourse erhaltene JSON.
}
add_action( 'wpdc_before_webhook_post_update', 'wpdc_modify_wordpress_user_after_update' );
wpdc_webhook_after_get_page_by_title
Wird ausgeführt, nachdem Beiträge für das Topic-Update-Webhook nach Titel abgeglichen wurden.
Beispiel
function wpdc_webhook_custom_after_get_page_by_title( $title ) {
## Machen Sie etwas mit dem abgeglichenen Titel.
}
add_action( 'wpdc_webhook_after_get_page_by_title', 'wpdc_webhook_custom_after_get_page_by_title' );
wpdc_webhook_user_created
Wird ausgeführt, nachdem ein Benutzer durch das Update-User-Webhook erstellt wurde.
Beispiel
function wpdc_webhook_user_created_action( $discourse_user ) {
## Machen Sie etwas mit dem Discourse-Benutzer.
}
add_action( 'wpdc_webhook_user_created', 'wpdc_webhook_user_created_action' );
wpdc_webhook_user_updated
Wird ausgeführt, nachdem ein Benutzer durch das Update-User-Webhook aktualisiert wurde.
Beispiel
function wpdc_webhook_user_updated_action( $discourse_user ) {
## Machen Sie etwas mit dem Discourse-Benutzer.
}
add_action( 'wpdc_webhook_user_updated', 'wpdc_webhook_user_updated_action' );
wpdc_webhook_before_update_user_data
Wird ausgeführt, bevor WordPress-Benutzerdaten durch das Update-User-Webhook aus Discourse-Benutzerdaten aktualisiert werden.
Beispiel
function wpdc_webhook_before_update_user_data_action( $wordpress_user, $discourse_user, $event_type ) {
## Machen Sie etwas mit den WordPress- oder Discourse-Benutzern.
}
add_action( 'wpdc_webhook_before_update_user_data', 'wpdc_webhook_before_update_user_data_action' );