In het laatste deel van de tutorial hebben we geleerd hoe we de activeringactivatieklasse TGM gebruiken om de plug-in Envato WordPress Toolkit te gebruiken wanneer ons thema in gebruik is. Met de plug-in kan de gebruiker gekochte thema's in de beheerder installeren en bijwerken.
In dit volgende deel leert u hoe u de Envato WordPress Toolkit Library kunt implementeren, zodat we periodiek kunnen controleren wanneer ons thema een update beschikbaar heeft met behulp van de Envato Marketplace API.
Wanneer een update beschikbaar komt, geven we een bericht weer in de beheerder en leiden we de gebruiker naar de plug-in voor updates.
We zullen eerst de Toolkit-bibliotheek in ons project moeten opnemen. Download het Envato WordPress Toolkit Library ZIP-bestand. Pak het uit en kopieer de map Envato-wordpress-toolkit-bibliotheek in de inc map in uw thema. Je zou moeten eindigen met deze paden:
Notitie: U kunt de locatie van de bovenstaande bestanden wijzigen om aan uw behoeften te voldoen. Als alternatief kunt u de volledige bron downloaden via de downloadlink bovenaan dit artikel.
Nu kunnen we beginnen met coderen. We zullen aansluiten op de admin_init
actie. Voeg de volgende code toe aan uw functions.php:
/ ** * Laad de Envato WordPress Toolkit Library-controle voor updates * en leid de gebruiker naar de Toolkit-plug-in als er een * / functie is envato_toolkit_admin_init () // Voeg de Toolkit-bibliotheek include_once toe (get_template_directory (). '/ Inc / envato -wordpress-toolkit-bibliotheek / class-envato-wordpress-theme-upgrader.php '); // Voeg hier nog een code toe add_action ('admin_init', 'envato_toolkit_admin_init');
De Toolkit-bibliotheek heeft een Envato-gebruikersnaam en API-sleutel nodig om te kunnen werken. Omdat we de Toolkit-plug-in in de vorige zelfstudie nodig hebben, kunnen we de ingevoerde waarden gebruiken voor de velden gebruikersnaam en API-sleutel in de instellingen. Als deze velden niet zijn ingevuld, kunnen we een bericht weergeven waarin de gebruiker wordt gevraagd deze in te voeren in de Toolkit-plug-in.
// Gebruik de in de toolkit-plug-in gebruikte referenties zodat we onze eigen formulieren niet meer hoeven te tonen $ credentials = get_option ('envato-wordpress-toolkit'); if (empty ($ credentials ['user_name']) || empty ($ credentials ['api_key'])) add_action ('admin_notices', 'envato_toolkit_credentials_admin_notices'); terug te keren;
We moeten de bijbehorende haakfunctie buiten toevoegen om onze beheerderskennisgeving weer te geven:
/ ** * Geef een bericht weer in de beheerder om de gebruiker eraan te herinneren zijn inloggegevens in te voeren * / function envato_toolkit_credentials_admin_notices () $ message = sprintf (__ ("Om thema-updatemeldingen in te schakelen, voert u uw Envato Marketplace-inloggegevens in de% s in" , "standaard"), "Envato WordPress Toolkit Plugin"); echo "";$ Message
De Toolkit-bibliotheek controleert altijd met behulp van de Envato Marketplace API voor thema-updates. Dit is niet goed, omdat het uitvoeren van het elke keer dat de gebruiker een beheerderspagina bezoekt, de laadtijd van de pagina aanzienlijk kan vertragen. We hoeven alleen periodiek te controleren op een update.
Elke 3 uur controleren klinkt als een goed idee:
// Controleer updates pas na een tijdje $ lastCheck = get_option ('toolkit-last-toolkit-check'); if (false === $ lastCheck) update_option ('toolkit-last-toolkit-check', time ()); terug te keren; // Controleer elke 3 uur op een update als (10800 < ( time() - $lastCheck ) ) return; // Update the time we last checked update_option( 'toolkit-last-toolkit-check', time() );
Tot slot kunnen we controleren op updates met behulp van de bibliotheek:
// Controleer op updates $ upgrader = new Envato_WordPress_Theme_Upgrader ($ credentials ['user_name'], $ credentials ['api_key']); $ updates = $ upgrader-> check_for_theme_update (); // Als $ updates-> updated_themes_count == true dan hebben we een update!
Vanaf dit moment kunt u ervoor kiezen om het thema automatisch bij te werken met behulp van de Toolkit-bibliotheekfunctie $ Upgrader-> upgrade_theme ();
Ik geloof echter dat het geven van een keuze vaak een goed idee is.
Mijn suggestie is om alleen een aankondiging van een thema-update weer te geven en de gebruiker toe te staan om bij te werken met de Toolkit-plug-in:
// Update-waarschuwing toevoegen, om het thema bij te werken ($ updates-> updated_them_count) add_action ('admin_notices', 'envato_toolkit_admin_notices');
We moeten de functie weergeven die de melding weergeeft buiten onze huidige functie:
/ ** * Een bericht in de beheerder weergeven dat een update beschikbaar is * / function envato_toolkit_admin_notices () $ message = sprintf (__ ("Er is een update voor het thema beschikbaar! Ga naar% s om het nu bij te werken.", "standaard"), "Envato WordPress Toolkit Plugin"); echo "";$ Message
Je denkt misschien dat het ook mogelijk is om gebruik gewoon de Toolkit-bibliotheek en gebruik de Toolkit-plug-in helemaal niet, dan in plaats daarvan wellicht onze eigen gebruikersnaam en API-sleutelformulieren weergeven in onze thema-opties.
Hoewel dat heel goed mogelijk is, geeft het gebruik van de plug-in ons enkele voordelen:
Dat is het! We hebben zowel de plug-in Envato WordPress Toolkit als Bibliotheek geïntegreerd voor het controleren van de thema-updates. Nu, zodra een update beschikbaar komt in de Marketplace, ontvangen onze klanten een beheerderskennisgeving. Het beste ding met wat we hebben gedaan is dat ze gemakkelijk de update kunnen uitvoeren zonder de beheerder te verlaten.
U kunt doorgaan en de volledige bron downloaden via de link boven het artikel. De code bevat ook de behandelde onderwerpen in het vorige deel van deze tutorial.
Omdat dit mijn allereerste lessenreeks is, waardeer ik elke feedback, opmerkingen en suggesties enorm. Laat me weten wat je denkt!