Dans la dernière partie du didacticiel, nous avons appris à utiliser la classe d'activation TGM Plugin pour requérir le plugin Envato WordPress Toolkit à chaque utilisation du thème. Le plugin permet à l'utilisateur d'installer et de mettre à jour les thèmes achetés au sein de l'administrateur..
Cette partie suivante vous apprendra comment implémenter la bibliothèque Envato WordPress Toolkit afin que nous puissions vérifier périodiquement si notre thème a une mise à jour disponible à l'aide de l'API Envato Marketplace..
Lorsqu'une mise à jour sera disponible, nous afficherons une notification dans l'administrateur et dirigerons l'utilisateur vers le plug-in pour la mise à jour..
Nous devrons d’abord inclure la bibliothèque de boîtes à outils dans notre projet. Téléchargez le fichier ZIP Envato WordPress Toolkit Library. Décompressez-le et copiez le dossier envato-wordpress-toolkit-library dans le inc dossier dans votre thème. Vous devriez vous retrouver avec ces chemins:
Remarque: Vous pouvez modifier l'emplacement des fichiers ci-dessus pour répondre à vos besoins. Sinon, vous pouvez télécharger l'intégralité de la source à partir du lien de téléchargement situé en haut de cet article..
Nous pouvons maintenant commencer à coder. Nous allons accrocher dans le admin_init
action. Ajoutez le code suivant dans votre functions.php:
/ ** * Chargez la bibliothèque Envato WordPress Toolkit pour rechercher les mises à jour * et dirigez l'utilisateur vers le plug-in Toolkit s'il existe une * / function envato_toolkit_admin_init () // Inclut la bibliothèque Toolkit include_once (get_template_directory (). '/ Inc / envato -wordpress-toolkit-library / class-envato-wordpress-theme-upgrader.php '); // Ajoutez du code supplémentaire ici add_action ('admin_init', 'envato_toolkit_admin_init');
La bibliothèque de boîtes à outils a besoin d'un nom d'utilisateur Envato et d'une clé API pour fonctionner. Comme nous avons requis le plug-in Toolkit dans le didacticiel précédent, nous pouvons utiliser les valeurs entrées pour les champs de nom d'utilisateur et de clé d'API trouvés dans ses paramètres. Si ces champs ne sont pas renseignés, nous pouvons afficher un avis demandant à l'utilisateur de les saisir dans le plug-in du toolkit..
// Utilise les identifiants utilisés dans le plugin toolkit pour que nous n'ayons plus à montrer nos propres formulaires $ credentials = get_option ('envato-wordpress-toolkit'); if (vide ($ credentials ['nom_utilisateur'])) || vide ($ credentials ['clé_api'])) add_action ('admin_notices', 'envato_toolkit_credentials_admin_notices'); revenir;
Nous aurons besoin d'ajouter la fonction de raccordement correspondante à l'extérieur pour afficher notre avis d'administration:
/ ** * Affiche une notification dans l'administrateur pour rappeler à l'utilisateur de saisir ses informations d'identification * / function envato_toolkit_credentials_admin_notices () $ message = sprintf (__ ("Pour activer les notifications de mise à jour de thème, entrez vos informations d'identification Envato Marketplace dans le% s" , "défaut"), "Plugin Envato WordPress Toolkit"); écho "";$ message
La bibliothèque de boîtes à outils vérifie toujours à l'aide de l'API Envato Marketplace les mises à jour de thèmes. Ce n'est pas bon car le faire à chaque fois que l'utilisateur visite une page d'administration peut ralentir considérablement le temps de chargement de la page. Nous avons seulement besoin de vérifier périodiquement une mise à jour.
Vérifier toutes les 3 heures semble une bonne idée:
// Vérifier les mises à jour seulement après un certain temps $ lastCheck = get_option ('toolkit-last-toolkit-check'); if (false === $ lastCheck) update_option ('toolkit-last-toolkit-check', time ()); revenir; // Recherchez une mise à jour toutes les 3 heures si (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 la bibliothèque:
// Vérifier les mises à jour $ upgrader = new Envato_WordPress_Theme_Upgrader ($ credentials ['user_name'], $ credentials ['api_key']); $ updates = $ upgrader-> check_for_theme_update (); // Si $ updates-> updated_themes_count == true, nous avons une mise à jour!
À partir de ce moment, vous pouvez choisir de mettre à jour automatiquement le thème à l'aide de la fonction Bibliothèque de la boîte à outils. $ upgrader-> upgrade_theme ();
Cependant, je pense que donner aux utilisateurs un choix est souvent une bonne idée..
Ma suggestion est simplement d'afficher un avis de mise à jour de thème et permettre à l'utilisateur de mettre à jour à l'aide du plug-in Toolkit:
// Ajout d'une alerte de mise à jour pour mettre à jour le thème if ($ updates-> updated_themes_count) add_action ('admin_notices', 'envato_toolkit_admin_notices');
Nous devrons afficher la fonction qui affiche la notification en dehors de notre fonction actuelle:
/ ** * Affiche dans l’administrateur qu’une mise à jour est disponible * / function envato_toolkit_admin_notices () $ message = sprintf (__ ("Une mise à jour du thème est disponible! Allez à% s pour le mettre à jour maintenant.", "default"), "Plugin Envato WordPress Toolkit"); écho "";$ message
Vous pensez peut-être qu'il est également possible de il suffit d'utiliser la bibliothèque de la boîte à outils et de ne pas utiliser le plugin de la boîte à outils du tout, alors peut-être juste afficher nos propres formes de nom d'utilisateur et clé d'API dans nos options de thème à la place.
Bien que cela soit tout à fait possible, l’utilisation du plugin nous procure quelques avantages:
C'est tout! Nous avons intégré le plugin Envato WordPress Toolkit et la bibliothèque pour la vérification des mises à jour de thèmes. Désormais, une fois qu'une mise à jour sera disponible sur le marché, nos clients recevraient une notification de l'administrateur. La meilleure chose à faire avec ce que nous avons fait est qu’ils peuvent facilement effectuer la mise à jour sans quitter l’administrateur..
Vous pouvez aller de l'avant et télécharger le code source complet à partir du lien situé au-dessus de l'article. Le code contient également les rubriques couvertes de la partie précédente de ce tutoriel..
Comme il s’agit de ma toute première série de travaux dirigés, j’apprécie grandement vos commentaires, commentaires et suggestions. Laissez-moi savoir ce que vous pensez!