Support » Allgemeine Fragen » Buttons mit Berechtigungen versehen
Buttons mit Berechtigungen versehen
-
Hallo,
gibt es eine Möglichkeit auf einen Button eine Gruppenberechtigung zu legen,
so dass dieser nur betätigt werden kann, wenn man in dieser Gruppe ist?Viele Grüße
Andre
-
Klar geht das.
Hier hab ich dir mal rasch einen Shortcode aufgesetzt, der Mitgliedern der Benutzerrolle „author“ einen Button mit einem Link zum WordPress-Support (sehr hilfreich! 😉 ) und allen anderen einen Button ohne Funktion und ohne Link anzeigt. Auch die Beschriftung ändert sich.
add_shortcode( 'groupbutton', 'groupbutton_shortcode' ); function groupbutton_shortcode() { $link = '#'; $text = 'Nur für Autoren'; $user = wp_get_current_user(); if ( in_array( 'author', (array) $user->roles ) ) { $link = 'https://de.wordpress.org/support/'; $text = 'WordPress Support'; } return '<a href="' . $link . '" class="groupbutton" aria-haspopup="menu">' . $text . '</a>'; } add_action( 'wp_head', 'groupbutton_style' ); function groupbutton_style() { ?> <style> a.groupbutton { padding: 7px; background: red; font-family: Arial, Helvetica, sans-serif; font-weight: bold; color: white; border: 1px solid darkred; border-radius: 10px; } </style> <?php }
Den Code kannst du entweder in der
functions.php
eines Child-Theme anhängen oder mit dem Plugin Code Snippets hinzufügen. Den Button fügst du dann mit dem Shortcode-Block ein, der Shortcode lautet[groupbutton]
.Die Funktion
groupbutton_style()
fügt ein paar CSS-Regeln hinzu, die du an die Gestaltung deiner Website anpassen kannst.Es wäre auch möglich, den Button nur anzuzeigen, wenn der Benutzer einer bestimmten Benutzerrolle angehört. Dazu kannst du das
if-Statement
in der Funktiongroupbutton_shortcode()
verwenden.Das mit dem Groupbutton klappt prima,
könnte man auch mehrer Groupbutton auf einer Seite anlegen,
die dann auf verschiedene Seiten verweisen?z.B [groupbutton1] – [groupbutton2] – [groupbutton3]
Viele Grüße
André- Diese Antwort wurde geändert vor 3 Jahren, 1 Monat von hertmond.
Klar, du kannst ja einen Shortcode mit Attributen anlegen.
Wie das geht, habe ich hier beschrieben:
MFG mit freundlichen GrüßenWäre das dann so richtig?
add_shortcode( 'Karfunkel', 'karfunkel_shortcode' ); function karfunkel_shortcode() { $link = '#'; $text = 'Karfunkel'; $user = wp_get_current_user(); if ( in_array( 'Karfunkel', (array) $user->roles ) ) { $link = 'https://www.karfunkel.de/karfunkel/'; $text = 'Karfunkel ePaper'; } return '<a href="' . $link . '">' . $text . '</a>'; } add_action( 'wp_head', 'karfunkel_style' ); function karfunkel_style() { ?> <style> a.karfunkel { padding: 7px; background: red; font-family: Arial, Helvetica, sans-serif; font-weight: bold; color: white; border: 1px solid darkred; border-radius: 10px; } </style> <?php }
—
Moderationshinweis: Sei bitte demnächst so nett und formatiere Code, wenn du die Antwort schreibst. Das erspart uns, den Text wieder umzuwandeln und nachträglich zu formatieren.- Diese Antwort wurde geändert vor 3 Jahren, 1 Monat von hertmond.
- Diese Antwort wurde geändert vor 3 Jahren, 1 Monat von Bego Mario Garde.
- Diese Antwort wurde geändert vor 3 Jahren, 1 Monat von Bego Mario Garde. Grund: Code formatiert
Mach ich, sorry.
Ich weiß nicht, was du jetzt mit diesem Code erreichen möchtest.
Wenn ich dich richtig verstehe, möchtest du mehrere Buttons einfügen:
- Jeder Button ist für eine andere Benutzergruppe.
Z.B. Button A für Abonennten, Button B für Mitarbeiter, Button C für Redakteure (oder eine beliebige Benutzerrolle, die du mit einem Plugin erstellt hast). - Nur Webseitenbesucher mit der richtigen Benutzergruppe sollen für den Button einen Link hinterlegt bekommen:
Wenn ein Abonnent die Webseite aufruft ist Button A für Abonennten verlinkt und zeigt einen von dir festgelegten Text an. Alle anderen Besucher (auch solche mit Benutzerrolle)
sehen einen Button mit Beschriftung „nicht berechtigt“,
die URL ist entfernt,
der Button ist inaktiv, wird aber angezeigt.
Für den Abonennten sind alle anderen Buttons mit „nicht belegt“ beschriftet, die URL ist entfernt und der Button inaktiv. - das soll über einen Shortcode realisiert werden, bei dem du als Parameter die Benutzergruppe, den Text und den Link angibst, z.B.
[groupbutton gruppe="subscriber" text="Inhalt für Abonennten" url="https://de.wordpress.org/support"]
Normalerweise ist es nicht Sinn des Forums, dass wir dir fertigen Code liefern (und schon gar nicht, wenn anschließend weitere Wünsche kommen) – wir sind keine kostenlosen Dienstleister. Ich mache hier eine Ausnahme.
<?php /* * Shortccode [groupbutton gruppe="…" text="…" url="…"] * $werte['gruppe'] = Benutzergruppe * $werte['text'] = Beschriftung des Button * $werte['url'] = Link des Button */ add_shortcode( 'groupbutton', 'groupbutton_shortcode' ); function groupbutton_shortcode( $atts ) { $a = shortcode_atts( array( 'gruppe' => '', 'text' => '', 'url' => '', ), $atts ); $user = wp_get_current_user(); $gruppe = esc_attr( $a['gruppe']); if ( in_array( $gruppe, (array) $user->roles ) ) { $url = esc_url( $a['url'] ); $text = esc_attr($a['text']); } else { $url = '#'; $text = 'Nicht berechtigt'; } return '<a href="' . $url . '" class="groupbutton" aria-haspopup="menu">' . $text . '</a>'; } add_action( 'wp_head', 'groupbutton_style' ); function groupbutton_style() { ?> <style> a.groupbutton { padding: 7px; background: red; font-family: Arial, Helvetica, sans-serif; font-weight: bold; color: white; border: 1px solid darkred; border-radius: 10px; } </style> <?php }
Achte beim Prüfen des Code darauf, dass
[groupbutton gruppe="subscriber" text="Inhalt für Abonennten" url="https://de.wordpress.org/support"]
für alle Benutzer „nicht berechtigt“ ausgibt, die nicht Abonnent sind.
- Das Thema „Buttons mit Berechtigungen versehen“ ist für neue Antworten geschlossen.