wp-self-host-updater-checker/README.md

58 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2024-12-26 20:51:23 -03:00
# WP Self-Host Updater Checker
2024-12-26 22:45:04 -03:00
A lightweight PHP solution designed to work with the [WP Self-Host Updater Generator](https://github.com/eduardovillao/wp-self-host-updater-generator) GitHub Action. This repository provides the client-side PHP script required to integrate seamlessly with your self-hosted update server (on Github), supporting updates for WordPress plugins and themes while adhering to WordPress standards.
2024-12-26 20:51:23 -03:00
## How It Works
2024-12-26 22:45:04 -03:00
1. Use the [WP Self-Host Updater Generator](https://github.com/eduardovillao/wp-self-host-updater-generator) to host the `.zip` file and generate the required JSON metadata.
2. Add this PHP script to your WordPress plugin or theme to handle update checks.
3. WordPress automatically queries the GitHub-hosted JSON file, compares versions, and updates if a new version is available.
2024-12-26 20:51:23 -03:00
2024-12-26 22:45:04 -03:00
## How to use
2024-12-26 20:51:23 -03:00
2024-12-27 17:31:44 -03:00
1. Get the file `class-updater-checker.php` from this repository.
2. Include the PHP file in your WordPress plugin.
2024-12-26 22:45:04 -03:00
3. Init the class like the example below.
```php
2024-12-27 17:31:44 -03:00
require_once __DIR__ . '/path/to/class-updater-checker.php'; // Use your path to file
2024-12-27 17:31:44 -03:00
use Use\Your\Namespace\Updater_Checker; // Use your namespace
2024-12-27 17:31:44 -03:00
$github_username = 'your-github-username'; // Use your gitbub username
$github_repository = 'your-repository-name'; // Use your repository name
$plugin_basename = plugin_basename( __FILE__ ); // Check note below
2024-12-27 17:31:44 -03:00
$plugin_current_version = '1.0.0'; // Use the current version of the plugin
$updater = new Updater_Checker(
$github_username,
$github_repository,
$plugin_basename,
$plugin_current_version
);
$updater->set_hooks();
```
### Important Note About `plugin_basename`
The `plugin_basename(__FILE__)` function **works correctly only when used in the root file of your plugin**. If you call this function from a subfolder or an included file, it may return an incorrect value, potentially causing issues with plugin updates.
2024-12-26 22:45:04 -03:00
If you are including and instantiating the updater class from a file located in a subfolder, you should manually define the basename or use a constant declared in the root file of your plugin.
```php
$plugin_basename = 'my-plugin/my-plugin.php'; // Specify manually if necessary.
2024-12-26 22:45:04 -03:00
```
2024-12-26 20:51:23 -03:00
Example Using a Constant Defined in the Root File:
```php
// In your root plugin file (my-plugin.php):
define( 'MY_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
// So in other files you can use
$plugin_basename = MY_PLUGIN_BASENAME;
```
2024-12-26 20:51:23 -03:00
## Coming Soon
2024-12-26 22:45:04 -03:00
- Support for Private Github repositories.
- Support for mu-plugins.