Last active
August 30, 2019 13:04
-
-
Save franz-josef-kaiser/4319475 to your computer and use it in GitHub Desktop.
Gibt für Kunden Notizen über Änderungen zu WordPress im Adminbereich aus.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Plugin Name: Info zu WP-Änderungen | |
* Description: Informiert Kunden über Änderungen im WordPress Core, der Sprachdatei, etc. | |
* Version: 15122012.1423 | |
* Author: Franz Josef Kaiser <wecodemore@gmail.com> | |
* Author URI: https://plus.google.com/107110219316412982437/posts | |
* License: The MIT License (MIT) | |
* LicenseURI: http://www.opensource.org/licenses/mit-license.php | |
*/ | |
# Kein Direktzugriff auf diese Datei. | |
defined( 'ABSPATH' ) OR exit; | |
/** | |
* Gibt für Kunden Notizen über Änderungen zu WordPress im Adminbereich aus. | |
* Kann auch für jede andere Art von Anmerkung genutzt werden. | |
* @author Franz Josef Kaiser <wecodemore@gmail.com> | |
* @since 15122012.1423 | |
* @return array $messages | |
*/ | |
function oxo_change_notes() | |
{ | |
// Zuerst schauen wir einmal, ob der User überhaupt ausreichend Rechte hat: | |
// Wir gehen davon aus, dass der Kunde die Rolle "Editor" inne hat. | |
// Hat er die notwendigen Berechtigungen nicht, brechen wir frühzeitig ab. | |
// Mehr dazu hier @link http://codex.wordpress.org/Roles_and_Capabilities | |
if ( ! current_user_can( 'edit_others_posts' ) ) | |
return; | |
// Diese Globale enthält die Nachrichten von WordPress für | |
// z.B.: aktivierte Plugins, gespeicherte Artikel/Beiträge, etc. | |
global $messages; | |
// Als erstes legen wir uns eine neue Variable als Array an, um unsere | |
// Nachrichten für unsere Kunden zu sammeln. | |
$new_msg[] = "Lieber Kunde!<br /> | |
Mit der neuen WordPress Version haben sich einige Dinge geändert. | |
Aber keine Angst, es funktioniert alles weiterhin, nur eben etwas anders."; | |
// Weitere Meldungen werden hier angefügt. Für jede Meldung einen neuen Block machen. | |
$new_msg[] = ''; | |
// Will man Meldungen nur für bestimmte Seiten ausgeben, dann kann man | |
// das Object nutzen welches von "get_current_screen()" zurück gegeben wird. | |
// Mehr info dazu mit diesem Plugin: "Current Admin Info" (vom selben Autor). | |
// @link https://github.com/franz-josef-kaiser/current-admin-info | |
// @example Dieses Beispiel zeigt nur etwas für "Post" screens | |
/* | |
if ( 'post' === get_current_screen()->post_type ) | |
{ | |
$new_msg[] = 'Hallo und Willkommen im Artikel-/Beitragsbereich'; | |
} | |
*/ | |
// Nun wollen wir noch zeigen, dass wir wirklich hilfreich sind und | |
// geben dem Kunden unsere Daten, falls dann doch noch etwas schief | |
// gehen oder komplett unklar sein sollte. Bitte Daten einfüllen. | |
$new_msg[] = sprintf( | |
"Wir wünschen Ihnen und Ihrer Familie eine friedliche | |
und angenehme Weihnachtszeit, sowie viel Freude mit der neuen Version.<br /> | |
<em>Ihr/e [NAME HIER EINFÜGEN]. Tel.: 01/234 456 DW 78, Mail: %s, %s</em>" | |
,'<a href="mailto:ME@EXAMPLE.COM">ME@EXAMPLE.COM</a>' | |
,'w<sup>3</sup>: <a href="HTTP://EXAMPLE.COM">EXAMPLE.COM</a>' | |
); | |
// Erst einmal leeren wir das Globale Array und speichern die Meldungen | |
// des WordPress core in einer neuen Variablen zwischen. | |
$old_msg = $messages; | |
$messages = array(); | |
// Jetzt brauchen wir nur noch unsere neuen Nachrichten | |
// in das entsprechende, WordPress-konforme MarkUp einzupacken | |
// und dann an das globale Array der "Admin Notices" zu übergeben. | |
foreach ( $new_msg as $msg ) | |
{ | |
! empty( $msg ) AND $messages[] = "<div id='message' class='updated'><p>{$msg}</p></div>"; | |
} | |
// Zu guter letzt fügen wir die alten Meldungen (vom core) an unsere | |
// Meldungen an, damit diese in der Priorität ganz oben stehen. | |
$old_msg = ! empty( $old_msg ) ?: array(); | |
$messages = array_merge( | |
$messages | |
,$old_msg | |
); | |
} | |
is_admin() AND add_action( 'admin_notices', 'oxo_change_notes' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment