Dans la dernière partie de ce didacticiel, nous avons appris à utiliser la classe d'activation du plugin TGM pour exiger le plugin Envato WordPress Toolkit chaque fois que notre thème est utilisé. Le plugin permet aux utilisateurs d'installer et de mettre à jour les thèmes achetés dans l'administrateur.
La partie suivante vous apprendra comment implémenter la bibliothèque Envato WordPress Toolkit afin que nous puissions utiliser l'API Envato Marketplace pour vérifier régulièrement quand des mises à jour de notre thème sont disponibles.
Lorsqu'une mise à jour est disponible, nous afficherons une notification dans l'administrateur et dirigerons les utilisateurs vers l'accès au plugin pour mettre à jour.
Nous devons d’abord inclure la bibliothèque de boîtes à outils dans notre projet. Téléchargez le fichier ZIP de la bibliothèque Envato WordPress Toolkit. Décompressez et copiez le dossier envato-wordpress-toolkit-library dans le dossier inc de votre thème. Vous devriez vous retrouver avec ces chemins :
REMARQUE : Vous pouvez modifier l'emplacement des fichiers ci-dessus en fonction de vos besoins. Vous pouvez également télécharger le code source complet à partir du lien de téléchargement en haut de cet article.
Maintenant, nous pouvons commencer à coder. Nous allons brancher l'opération admin_init
. Ajoutez le code suivant à votre functions.php :
/** * Load the Envato WordPress Toolkit Library check for updates * and direct the user to the Toolkit Plugin if there is one */ function envato_toolkit_admin_init() { // Include the Toolkit Library include_once( get_template_directory() . '/inc/envato-wordpress-toolkit-library/class-envato-wordpress-theme-upgrader.php' ); // Add further code here } add_action( 'admin_init', 'envato_toolkit_admin_init' );
La bibliothèque de boîtes à outils nécessite un nom d'utilisateur Envato et une clé API pour fonctionner. Puisque nous avions besoin du plugin Toolkit dans le didacticiel précédent, nous pouvons utiliser les valeurs d'entrée pour les champs Nom d'utilisateur et Clé API trouvés dans ses paramètres. Si ces champs ne sont pas renseignés, nous pouvons afficher une notification demandant à l'utilisateur de les saisir dans le plugin Toolkit.
// Use credentials used in toolkit plugin so that we don't have to show our own forms anymore $credentials = get_option( 'envato-wordpress-toolkit' ); if ( empty( $credentials['user_name'] ) || empty( $credentials['api_key'] ) ) { add_action( 'admin_notices', 'envato_toolkit_credentials_admin_notices' ); return; }
Nous devons ajouter la fonction hook correspondante en externe pour afficher nos notifications de gestion :
/** * Display a notice in the admin to remind the user to enter their credentials */ function envato_toolkit_credentials_admin_notices() { $message = sprintf( __( "To enable theme update notifications, please enter your Envato Marketplace credentials in the %s", "default" ), "<a href='" . admin_url() . "admin.php?page=envato-wordpress-toolkit'>Envato WordPress Toolkit Plugin</a>" ); echo "<div id='message' class='updated below-h2'><p>{$message}</p></div>"; }
Toolkit Library vérifie toujours les mises à jour de thème à l'aide de l'API Envato Marketplace. Ce n'est pas bon car l'exécuter à chaque fois qu'un utilisateur visite la page d'administration ralentira considérablement le temps de chargement de la page. Nous devons juste vérifier régulièrement les mises à jour.
Vérifier toutes les 3 heures semble être une bonne idée :
// Check updates only after a while $lastCheck = get_option( 'toolkit-last-toolkit-check' ); if ( false === $lastCheck ) { update_option( 'toolkit-last-toolkit-check', time() ); return; } // Check for an update every 3 hours if ( 10800 < ( time() - $lastCheck ) ) { return; } // Update the time we last checked update_option( 'toolkit-last-toolkit-check', time() );
Enfin, nous pouvons vérifier les mises à jour en utilisant cette bibliothèque :
// Check for updates $upgrader = new Envato_WordPress_Theme_Upgrader( $credentials['user_name'], $credentials['api_key'] ); $updates = $upgrader->check_for_theme_update(); // If $updates->updated_themes_count == true then we have an update!
À partir de ce moment, vous avez la possibilité de mettre à jour automatiquement votre thème à l'aide des fonctions de la bibliothèque de la boîte à outils $upgrader->upgrade_theme();
Cependant, je pense que c'est généralement une bonne idée de donner le choix à l'utilisateur.
Ma suggestion est d'afficher uniquement les notifications pour les mises à jour du thème et de permettre aux utilisateurs de mettre à jour à l'aide du plugin Toolkit :
// Add update alert, to update the theme if ( $updates->updated_themes_count ) { add_action( 'admin_notices', 'envato_toolkit_admin_notices' ); }
Nous devons afficher la fonction qui affiche la notification en dehors de la fonction actuelle :
/** * Display a notice in the admin that an update is available */ function envato_toolkit_admin_notices() { $message = sprintf( __( "An update to the theme is available! Head over to %s to update it now.", "default" ), "<a href='" . admin_url() . "admin.php?page=envato-wordpress-toolkit'>Envato WordPress Toolkit Plugin</a>" ); echo "<div id='message' class='updated below-h2'><p>{$message}</p></div>"; }
Vous pourriez penser que ce serait aussi simplement utiliser la bibliothèque Toolkit sans le plugin Toolkit, puis peut-être simplement afficher notre propre nom d'utilisateur et notre propre formulaire de clé API dans les options du thème.
Bien que cela soit tout à fait possible, l'utilisation de ce plugin nous apporte certains avantages :
C'est tout ! Nous avons intégré le plugin et la bibliothèque Envato WordPress Toolkit pour vérifier les mises à jour du thème. Désormais, nos clients recevront une notification d'administrateur dès qu'une mise à jour sera disponible sur le marché. La meilleure chose que nous ayons faite est qu'ils peuvent facilement effectuer des mises à jour sans quitter l'administrateur.
Vous pouvez procéder au téléchargement du code source complet à partir du lien au-dessus de l'article. Le code couvre également les sujets abordés dans la partie précédente de ce didacticiel.
Comme il s'agit de ma première série de tutoriels, j'apprécierais vraiment vos commentaires, commentaires et suggestions. Faites-moi savoir ce que vous en pensez !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!