Table of Contents
Why use this plugin in the first place?
in conclusion
Home CMS Tutorial WordPress Enhance your theme with the Envato WordPress Toolkit: Library

Enhance your theme with the Envato WordPress Toolkit: Library

Sep 02, 2023 pm 12:41 PM

使用 Envato WordPress 工具包增强您的主题:库

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' );
Copy after login

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;
}
Copy after login

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>";
}
Copy after login

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() );
Copy after login

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!
Copy after login

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' );
}
Copy after login

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>";
}
Copy after login

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:

  1. In a new theme activation, our theme will automatically check for updates if the Toolkit plug-in has been installed previously.
  2. We don't need to add an extra set of forms for users to fill out.
  3. 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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

The 5 Best IDEs for WordPress Development (And Why) The 5 Best IDEs for WordPress Development (And Why) Mar 03, 2025 am 10:53 AM

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

Create WordPress Plugins With OOP Techniques Create WordPress Plugins With OOP Techniques Mar 06, 2025 am 10:30 AM

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

How to Pass PHP Data and Strings to JavaScript in WordPress How to Pass PHP Data and Strings to JavaScript in WordPress Mar 07, 2025 am 09:28 AM

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

How to Embed and Protect PDF Files With a WordPress Plugin How to Embed and Protect PDF Files With a WordPress Plugin Mar 09, 2025 am 11:08 AM

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

See all articles