Integrering av Envato WordPress Toolkit til temaet ditt Biblioteket

I den siste delen av opplæringen lærte vi hvordan du bruker TGM Plugin Activation-klassen til å kreve Envato WordPress Toolkit Plugin når vårt tema er i bruk. Plugin lar brukeren installere og oppdatere kjøpte temaer i administrasjonen.

Denne neste delen skal lære deg hvordan du implementerer Envato WordPress Toolkit-biblioteket, slik at vi med jevne mellomrom kan sjekke når temaet vårt har en oppdatering tilgjengelig ved hjelp av Envato Marketplace API.

Når en oppdatering blir tilgjengelig, viser vi en melding i administrasjonen og leder brukeren til pluginet for oppdatering.


1. Inkluderer Toolkit Library

Vi må først inkludere Toolkit-biblioteket i vårt prosjekt. Last ned ZIP-filen til Envato WordPress Toolkit Library. Unzip den og kopier mappen Envato-wordpress-verktøykasse-bibliotek inn i det inc mappe i temaet ditt. Du bør ende opp med disse stiene:

  • Mytheme / inc / Envato-wordpress-verktøykasse-bibliotek / klasse Envato-beskyttet api.php
  • Mytheme / inc / Envato-wordpress-verktøykasse-bibliotek / klasse Envato-wordpress-tema-upgrader.php

Merk: Du kan endre plasseringen av filene over for å dekke dine behov. Alternativt kan du laste ned hele kilden fra nedlastingskoblingen på toppen av denne artikkelen.


2. Admin Hook Funksjon

Nå kan vi starte kodingen. Vi henger inn i admin_init handling. Legg til følgende kode i din functions.php:

 / ** * Legg inn Envato WordPress Toolkit-biblioteket for oppdateringer * og led brukeren til Toolkit Plugin hvis det er en * / funksjon envato_toolkit_admin_init () // Inkluder Toolkit Library include_once (get_template_directory (). '/ Inc / envato -wordpress-toolkit-library / class-envato-wordpress-theme-upgrade.php '); // Legg til ytterligere kode her add_action ('admin_init', 'envato_toolkit_admin_init');

3. Bruke Toolkit Plugin Info

Toolkit Library trenger et Envato brukernavn og API-nøkkel for at den skal fungere. Siden vi har krevd Toolkit-pluginet i den forrige opplæringen, kan vi bruke de innførte verdiene for feltene for brukernavn og API-nøkkel som er funnet i innstillingene. Hvis disse feltene ikke er fylt opp, kan vi vise et varsel som ber brukeren om å skrive dem inn i verktøylinjeproppen.

 // Bruk legitimasjon som brukes i verktøylinje-plugin slik at vi ikke trenger å vise våre egne skjemaer lenger $ credentials = get_option ('envato-wordpress-toolkit'); hvis (tomt ($ credentials ['user_name']) || tomt ($ credentials ['api_key'])) add_action ('admin_notices', 'envato_toolkit_credentials_admin_notices'); komme tilbake; 

Vi må legge til den tilsvarende krokfunksjonen utenfor for å vise vår adminmelding:

 / ** * Vis beskjed i administrasjonen for å minne brukeren om å skrive inn sine legitimasjonsbeskrivelser * / funksjon envato_toolkit_credentials_admin_notices () $ message = sprintf (__ ("For å aktivere meldinger om temaoppdatering, vennligst skriv inn Envato Markeds legitimasjon i% s" , "standard"), "Envato WordPress Toolkit Plugin"); ekko "

$ Melding

";

4. Kontroller periodisk oppdatering

Toolkit-biblioteket sjekker alltid ved hjelp av Envato Marketplace API for temaoppdateringer. Dette er ikke bra siden du utfører det hver gang brukeren besøker en admin side, kan du senke siden lastetider betydelig. Vi trenger bare å se etter en oppdatering med jevne mellomrom.

Å sjekke hver 3. time lyder som en god ide:

 // Sjekk oppdateringer bare etter en stund $ lastCheck = get_option ('verktøykasse-siste-verktøysett-sjekke'); hvis (false === $ lastCheck) update_option ('toolkit-last-toolkit-check', tid ()); komme tilbake;  // Sjekk etter en oppdatering hver 3. time hvis (10800 < ( time() - $lastCheck ) )  return;  // Update the time we last checked update_option( 'toolkit-last-toolkit-check', time() );

5. Kontrollerer oppdateringer

Til slutt kan vi se etter oppdateringer ved hjelp av biblioteket:

 // Se etter oppdateringer $ upgrade = ny Envato_WordPress_Theme_Upgrader ($ credentials ['user_name'], $ credentials ['api_key']); $ oppdateringer = $ oppgradere-> check_for_theme_update (); // Hvis $ updates-> updated_themes_count == true så har vi en oppdatering!

6. Temaoppdateringsmelding

Fra dette øyeblikket kan du velge å automatisk oppdatere temaet ved å bruke funksjonen Toolkit Library $ Upgrader-> upgrade_theme (); Men jeg tror at å gi brukerne et valg er ofte en god ide.

Mitt forslag er å bare vise et varsel om en temaoppdatering, og la brukeren oppdatere ved hjelp av Toolkit-plugin:

 // Legg til oppdateringsvarsel, for å oppdatere temaet hvis ($ updates-> updated_themes_count) add_action ('admin_notices', 'envato_toolkit_admin_notices'); 

Vi må vise funksjonen som viser varselet utenfor vår nåværende funksjon:

 / ** * Vis et varsel i admin at en oppdatering er tilgjengelig * / funksjon envato_toolkit_admin_notices () $ message = sprintf (__ ("En oppdatering til temaet er tilgjengelig! Gå over til% s for å oppdatere det nå." "standard"), "Envato WordPress Toolkit Plugin"); ekko "

$ Melding

";

Hvorfor bruk pluggen på første plass?

Du kan tenke at det også er mulig å bare bruk verktøylinje biblioteket og ikke bruk verktøylinje plugin i det hele tatt, så kan du bare vise vårt eget brukernavn og API-nøkkelskjemaer i våre temaalternativer i stedet.

Selv om det er helt mulig å gjøre det, gir bruk av plugin oss noen fordeler:

  1. Ved friske temaaktivering vil temaet automatisk sjekke om oppdateringer hvis Toolkit Plugin allerede var installert tidligere.
  2. Vi trenger ikke å inkludere et ekstra sett med skjemaer for våre brukere å fylle opp.
  3. Toolkit-pluginet kan oppdateres av brukerne selv, og derfor kan endringer i Marketplace API brukes til WordPress-forekomsten uten noen temaveiledning..

Konklusjon

Det er det! Vi har integrert både Envato WordPress Toolkit Plugin og Library for tema oppdatering kontroll. Nå, når en oppdatering blir tilgjengelig på markedsplassen, vil kundene våre få en administrasjon. Det beste med det vi har gjort er at de enkelt kan utføre oppdateringen uten å forlate administrasjonen.

Du kan gå videre og laste ned hele kilden fra lenken over artikkelen. Koden inneholder også de dekket emnene i den forrige delen av denne opplæringen.

Siden dette er min aller første opplæringsserie, setter jeg stor pris på tilbakemeldinger, kommentarer og forslag. Fortell meg hva du tenker!