Enhance your theme with the Envato WordPress Toolkit: Library
In the last part of this tutorial, we learned how to use the TGM plugin activation class to require the Envato WordPress Toolkit plugin anytime our theme is in use. The plugin allows users to install and update purchased themes in the admin.
The next part will teach you how to implement the Envato WordPress Toolkit library so that we can use the Envato Marketplace API to regularly check when updates are available for our theme.
When an update is available, we will display a notification in the admin and direct users to access the plugin to update.
1. Includes toolkit library
We first need to include the toolkit library into our project. Download the Envato WordPress Toolkit Library ZIP file. Unzip and copy the folder envato-wordpress-toolkit-library to the inc folder in your theme. You should end up with these paths:
- mytheme/inc/envato-wordpress-toolkit-library/class-envato-protected-api.php
- mytheme/inc/envato-wordpress-toolkit-library/class-envato-wordpress-theme-upgrader.php
NOTE: You can change the location of the above files to suit your needs. Alternatively, you can download the full source code from the download link at the top of this article.
2. Administrator hook function
Now we can start coding. We will hook the admin_init
operation. Add the following code to your 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' );
3. Using toolkit plug-in information
The toolkit library requires an Envato username and API key to work. Since we required the Toolkit plugin in the previous tutorial, we can use the input values for the Username and API Key fields found in its settings. If these fields are not filled in, we can display a notification asking the user to enter them in the Toolkit plugin.
// 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; }
We need to add the corresponding hook function externally to display our management notifications:
/** * 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>"; }
4.Regular update check
The toolkit library always checks for theme updates using the Envato Marketplace API. This is not good because executing it every time a user visits the admin page will significantly slow down the page load time. We just need to check for updates regularly.
Checking every 3 hours sounds like a good idea:
// 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() );
5. Check for updates
Finally, we can use this library to check for updates:
// 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!
6.Theme update notification
From this moment on, you have the option of automatically updating the theme using the toolkit library function $upgrader->upgrade_theme();
However, I believe it is generally a good idea to give the user a choice.
My suggestion is to only show notifications for theme updates and allow users to update using the Toolkit plugin:
// Add update alert, to update the theme if ( $updates->updated_themes_count ) { add_action( 'admin_notices', 'envato_toolkit_admin_notices' ); }
We need to display the function that displays the notification outside the current function:
/** * 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>"; }
Why use this plugin in the first place?
You might think you could also just use the Toolkit library without the Toolkit plugin and then maybe just display our own username and API key form in the theme options.
While this is entirely possible, using this plugin brings us some benefits:
- In a new theme activation, our theme will automatically check for updates if the Toolkit plug-in has been installed previously.
- We don't need to add an extra set of forms for users to fill out.
- Users can update the Toolkit plugin themselves, so changes in the Marketplace API can be applied to WordPress instances without any theme guidance.
in conclusion
That's it! We have integrated the Envato WordPress Toolkit plugin and library to check for theme updates. Now, our customers will receive an admin notification once an update is available in the market. The best thing we've done is they can easily perform updates without leaving the admin.
You can continue to download the complete source code from the link above the article. The code also covers topics covered in the previous part of this tutorial.
Since this is my first tutorial series, I would really appreciate any feedback, comments, and suggestions. Let me know what you think!
The above is the detailed content of Enhance your theme with the Envato WordPress Toolkit: Library. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Choosing the Right Integrated Development Environment (IDE) for WordPress Development For ten years, I've explored numerous Integrated Development Environments (IDEs) for WordPress development. The sheer variety—from free to commercial, basic to fea

This tutorial demonstrates building a WordPress plugin using object-oriented programming (OOP) principles, leveraging the Dribbble API. Let's refine the text for clarity and conciseness while preserving the original meaning and structure. Object-Ori

Best Practices for Passing PHP Data to JavaScript: A Comparison of wp_localize_script and wp_add_inline_script Storing data within static strings in your PHP files is a recommended practice. If this data is needed in your JavaScript code, incorporat

This guide demonstrates how to embed and protect PDF files within WordPress posts and pages using a WordPress PDF plugin. PDFs offer a user-friendly, universally accessible format for various content, from catalogs to presentations. This method ens
