Integrering av Envato WordPress Toolkit till ditt tema Biblioteket

I den sista delen av handledningen lärde vi oss att använda TGM Plugin Activation-klassen för att kräva Envato WordPress Toolkit Plugin när vårt tema används. I plugin kan användaren installera och uppdatera köpta teman inom admin.

Den här nästa delen kommer att lära dig hur du implementerar Envato WordPress Toolkit-biblioteket så att vi med jämna mellanrum kan kontrollera när vårt tema har en uppdatering tillgänglig med hjälp av Envato Marketplace API.

När en uppdatering blir tillgänglig visar vi ett meddelande i admin och leder användaren till plugin för uppdatering.


1. Inkluderar Toolkit Library

Vi måste först inkludera Toolkit Library i vårt projekt. Ladda ner ZIP-filen för Envato WordPress Toolkit Library. Unzip det och kopiera mappen Envato-wordpress-toolkit-bibliotek in i inc mapp i ditt tema. Du borde sluta med dessa vägar:

  • Mytheme / inc / Envato-wordpress-toolkit-bibliotek / klass-Envato-skyddade-api.php
  • Mytheme / inc / Envato-wordpress-toolkit-bibliotek / klass-Envato-wordpress-tema-upgrader.php

Notera: Du kan ändra placeringen av filerna ovan för att passa dina behov. Alternativt kan du ladda ner hela källan från hämtningslänken högst upp i den här artikeln.


2. Admin Hook Funktion

Nu kan vi börja kodning. Vi krokar in i admin_init verkan. Lägg till följande kod i din functions.php:

 / ** * Ladda verktyget Envato WordPress Toolkit checka efter uppdateringar * och rikta användaren till Toolkit Plugin om det finns en * / funktion envato_toolkit_admin_init () // Inkludera Toolkit Library include_once (get_template_directory (). '/ Inc / envato -wordpress-toolkit-library / class-envato-wordpress-theme-upgrade.php '); // Lägg till ytterligare kod här add_action ('admin_init', 'envato_toolkit_admin_init');

3. Använda Toolkit Plugin Info

Toolkit Library behöver ett Envato användarnamn och API-nyckel för att det ska fungera. Eftersom vi har krävt Toolkit-plugin i föregående handledning kan vi använda de inmatade värdena för fältet användarnamn och API-nyckel som finns i dess inställningar. Om dessa fält inte är fyllda kan vi visa ett meddelande som ber användaren att ange dem i verktyget.

 // Använd credentials som används i verktygs plugin så att vi inte behöver visa våra egna formulär längre $ credentials = get_option ('envato-wordpress-toolkit'); om (tomt ($ credentials ['user_name']) | | empty ($ credentials ['api_key'])) add_action ('admin_notices', 'envato_toolkit_credentials_admin_notices'); lämna tillbaka; 

Vi måste lägga till motsvarande krokfunktion utanför för att visa vårt administrativ meddelande:

 / ** * Visa ett meddelande i administratören för att påminna användaren om att skriva in sina uppgifter * / funktion envato_toolkit_credentials_admin_notices () $ message = sprintf (__ ("För att aktivera teman uppdateringsmeddelanden, var god ange din Envato Marketplace credentials i% s" , "standard"), "Envato WordPress Toolkit Plugin"); eko "

$ Message

";

4. Kontrollera regelbundet uppdatering

Toolkit-biblioteket kontrollerar alltid med hjälp av Envato Marketplace API för teman uppdateringar. Det här är inte bra eftersom det görs varje gång användaren besöker en administratörssida, kan det hända att sidhämtningstiden sänks avsevärt. Vi behöver bara kolla efter en uppdatering med jämna mellanrum.

Kontrollera varje 3 timmar låter som en bra idé:

 // Kontrollera uppdateringar endast efter ett tag $ lastCheck = get_option ("verktygslåda-sista verktygslåda"); om (false === $ lastCheck) update_option ('verktygslåda-sista-verktygs-check', tid ()); lämna tillbaka;  // Kontrollera efter en uppdatering var tredje timme om (10800 < ( time() - $lastCheck ) )  return;  // Update the time we last checked update_option( 'toolkit-last-toolkit-check', time() );

5. Kontrollera efter uppdateringar

Slutligen kan vi leta efter uppdateringar med hjälp av biblioteket:

 // Sök efter uppdateringar $ upgrade = ny Envato_WordPress_Theme_Upgrader ($ credentials ['user_name'], $ credentials ['api_key']); $ updates = $ upgrade-> check_for_theme_update (); // Om $ updates-> updated_themes_count == true så har vi en uppdatering!

6. Uppdatering av temat uppdatering

Från det här ögonblicket kan du välja att automatiskt uppdatera temat genom att använda funktionen Toolkit Library $ Upgrader-> upgrade_theme (); Men jag tror att det är ofta en bra idé att ge användarna ett val.

Mitt förslag är att bara visa ett meddelande om en temat uppdatering, och låta användaren uppdatera med hjälp av verktyget:

 // Lägg till uppdateringsvarning, för att uppdatera temat om ($ updates-> updated_themes_count) add_action ('admin_notices', 'envato_toolkit_admin_notices'); 

Vi måste visa den funktion som visar meddelandet utanför vår nuvarande funktion:

 / ** * Visa ett meddelande i admin om att en uppdatering är tillgänglig * / funktion envato_toolkit_admin_notices () $ message = sprintf (__ ("En uppdatering till temat är tillgängligt! Gå över till% s för att uppdatera det nu.", "standard"), "Envato WordPress Toolkit Plugin"); eko "

$ Message

";

Varför använda plugin på första platsen?

Du kanske tänker att det också är möjligt att använd bara Toolkit Library och använd inte Toolkit Plugin alls, då kan du bara visa vårt eget användarnamn och API-nyckelformulär i våra tematillval istället.

Medan det är helt möjligt att göra, använder plugin ger oss några fördelar:

  1. I friska temataktier kommer vårt tema automatiskt att söka efter uppdateringar om Toolkit Plugin redan tidigare installerats.
  2. Vi behöver inte inkludera ytterligare en uppsättning formulär för våra användare att fylla i.
  3. Toolkit-plugin kan uppdateras av användarna själva, varför ändringar i Marketplace API kan tillämpas på WordPress-exemplet utan några teman vägledning.

Slutsats

Det är allt! Vi har integrerat både Envato WordPress Toolkit Plugin och Library för temat uppdateringskontroll. Nu när en uppdatering blir tillgänglig på Marketplace kommer våra kunder att få en administrativ anmälan. Det bästa med det vi har gjort är att de enkelt kan utföra uppdateringen utan att lämna administratören.

Du kan gå vidare och ladda ner hela källan från länken ovanför artikeln. Koden innehåller också de behandlade ämnena i den föregående delen av denna handledning.

Eftersom det här är min allra första handledningsserie, uppskattar jag mycket feedback, kommentarer och förslag. Låt mig veta vad du tycker!