PHPackages                             pfaciana/wp-update-checker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. pfaciana/wp-update-checker

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

pfaciana/wp-update-checker
==========================

Update Plugins for external sources

1.1.7(9mo ago)2653GPL-2.0-onlyPHPCI passing

Since Nov 10Pushed 9mo ago1 watchersCompare

[ Source](https://github.com/pfaciana/wp-update-checker)[ Packagist](https://packagist.org/packages/pfaciana/wp-update-checker)[ Docs](https://renderdev.com/)[ RSS](/packages/pfaciana-wp-update-checker/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (9)Dependencies (2)Versions (10)Used By (3)

Project Update Checker
======================

[](#project-update-checker)

Overview
--------

[](#overview)

This is a WordPress plugin that will manage updates for your custom WordPress plugins or themes that are hosted on external repositories such as GitHub and GitLab. This is an alternative option to having your theme or plugin hosted on WordPress.org. Right now this only supports GitHub and GitLab repositories out of the box, more may come, but you can create your own custom option for any platform by extending the `\PackageUpgrader\V1\Context\AbstractRemote` class from this project in your code.

How to use
----------

[](#how-to-use)

This plugin is designed to be easy to use. Its configuration is done using your existing plugin/theme metadata comments already defined in your plugin or theme's main file, with a couple extra metadata comments for where to find the source repo.

### Step 1

[](#step-1)

Install via composer packagist

```
composer require pfaciana/wp-update-checker
```

NOTE: Alternative option, you can download the package as a standalone plugin alongside your plugin or theme. To do this, go to  and download the `Release Asset` named `wp-update-checker.zip` from the lasted release. Then go to your WordPress admin and choose `Plugin` &gt; `Add New Plugin` from the side menu and upload the `wp-update-checker.zip` and click `Install Now`.

Both options will work, but using composer and bundling it inside your plugin/theme is recommended.

### Step 2

[](#step-2)

Init the `PackageUpgrader` Plugin or Theme instance in your code...

```
# For your plugin
add_action( 'rpuc/init', fn() => new PackageUpgrader\V1\Plugin );

# For your theme
add_action( 'rpuc/init', fn() => new PackageUpgrader\V1\Theme );
```

Place this code in the root of your plugin or theme. It will automatically find your plugin/theme's main file if it's in the same directory. If it's not, then you'll have to pass the location of the main file of your plugin/theme to tell the update checker where to find your plugin/theme.

```
# For your plugin
add_action( 'rpuc/init', fn() => new PackageUpgrader\V1\Plugin( WP_PLUGIN_DIR . "/your-plugin/index.php") );

# For your theme
add_action( 'rpuc/init', fn() => new PackageUpgrader\V1\Theme( WP_THEME_DIR . "/your-theme/style.css" ) );
```

### Step 3

[](#step-3)

Add in the necessary WordPress comments into your plugin or theme's main file. For example,

```
/**
 * Plugin Name: Your Plugin's Name
 * Plugin URI: https://example.com/
 * Version: 1.2.3
 * Description: A WordPress plugin that does something
 * Author: Your Name
 * Author URI: https://example.com/
 * GitHub URI: owner/repo
 * Release Asset: release-asset.zip
 * Requires PHP: 7.4
 * Requires at least: 5.4
 * Compatible up to: 6.4
 * License: GPLv2 only
 * License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 */
```

Most of these metadata comments you'll already have in your plugin/theme's main file. It supports all the WordPress metadata comments (like `Plugin/Theme Name`, `Plugin/Theme URI`, `Version`, `Description`, `Author`, `Author URI`, `Requires at least`, `Requires PHP`, `Compatible up to`, `Tags`, etc) and will use them in the plugin/theme dialog overlay. It also supports most of the WordPress plugin/theme api status fields (like `Homepage`, `Donate Link`, `Active Installs`, etc) from the `plugins_api`/`themes_api` filter hooks. You can also have your own code hook into these as well.

In addition to the standard WordPress metadata comments, it also supports a few custom metadata comments to help find the source repo. The only required one is the `GitHub URI` or `GitLab URI` metadata comment. This is your username (or organization name) and repository name, as defined in the repo's url. The rest are optional. `Release Asset` and `Remote File` are only used if you have a special build process that creates your plugin/theme. If your build creates a release asset that should be used instead of the default source code zip, use the `Release Asset` key. If your build process dynamically creates the main plugin/theme file (which means it does not exist in the source code of the repo) use `Remote File` to define which file in your repo has the metadata comments. You can enter a json file here, and it will look for the `extra.wordpress` key and parse that as the metadata comments.

This plugin's custom metadata comments
======================================

[](#this-plugins-custom-metadata-comments)

Header CommentDescriptionExample ValueGitHub URIGitHub repository identifier`owner/repo`GitLab URIGitLab repository identifier`owner/repo`Remote VisibilityIf the plugin or theme is private and needs an api token to access remote data`public` (default), `private`Primary BranchPrimary branch name`master` (default)Release AssetRelative URL to the zip file for download`wp-plugin.zip` (defaults to release source zip)Remote FileThe relative file path to the plugin or theme file that has the header comments`index.php` (defaults to main file)Composer Smart Autoloader
-------------------------

[](#composer-smart-autoloader)

This projects also comes with `Composer Smart Autoloader` installed as a dependency, but in order to take advantage of it you'll need to init it in your own code like this:

```
add_action( 'plugins_loaded', function () {
	\Render\Autoload\ClassLoader::getInstance();
}, PHP_INT_MIN );
```

For more details on what Composer Smart Autoloader is and how to use it, see [Composer Smart Autoloader](https://github.com/pfaciana/composer-smart-autoloader).

###  Health Score

33

—

LowBetter than 74% of packages

Maintenance59

Moderate activity, may be stable

Popularity11

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~31 days

Recently: every ~6 days

Total

9

Last Release

295d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4542fd31b9db1d4fef42a3336d2271856f1b78a89cdb6c0afd9834e950bddf1d?d=identicon)[pfaciana](/maintainers/pfaciana)

---

Top Contributors

[![pfaciana](https://avatars.githubusercontent.com/u/7454630?v=4)](https://github.com/pfaciana "pfaciana (2 commits)")

### Embed Badge

![Health badge](/badges/pfaciana-wp-update-checker/health.svg)

```
[![Health](https://phpackages.com/badges/pfaciana-wp-update-checker/health.svg)](https://phpackages.com/packages/pfaciana-wp-update-checker)
```

###  Alternatives

[afragen/git-updater

A plugin to automatically update GitHub, Bitbucket, GitLab, or Gitea hosted plugins, themes, and language packs.

3.3k1.6k](/packages/afragen-git-updater)[wp-hooks/generator

Generates a JSON representation of the WordPress actions and filters in your code

86178.4k3](/packages/wp-hooks-generator)[stepanenko3/nova-cards

A Laravel Nova info cards.

33143.0k](/packages/stepanenko3-nova-cards)[mobizel/markdown-docs-bundle

Explore your markdown documentation files via html web pages

108.6k](/packages/mobizel-markdown-docs-bundle)[benmanu/silverstripe-styleguide

Generates a styleguide for a SilverStripe theme

108.1k1](/packages/benmanu-silverstripe-styleguide)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
