You've already forked wc-licensed-product
Update README with auto-updates and development sections
Some checks failed
Create Release Package / build-release (push) Failing after 57s
Some checks failed
Create Release Package / build-release (push) Failing after 57s
- Add auto-updates documentation explaining WordPress native update integration - Add development section with setup instructions and git submodule usage - Document CI/CD release process for contributors - Add core features: WordPress Auto-Updates and Automated Releases Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
91
README.md
91
README.md
@@ -25,6 +25,8 @@ WC Licensed Product adds a new product type "Licensed Product" to WooCommerce, e
|
|||||||
- **Trusted Proxy Support**: Configurable trusted proxies for accurate rate limiting behind CDNs
|
- **Trusted Proxy Support**: Configurable trusted proxies for accurate rate limiting behind CDNs
|
||||||
- **Checkout Blocks**: Full support for WooCommerce Checkout Blocks (default since WC 8.3+)
|
- **Checkout Blocks**: Full support for WooCommerce Checkout Blocks (default since WC 8.3+)
|
||||||
- **Self-Licensing**: The plugin can validate its own license (for commercial distribution)
|
- **Self-Licensing**: The plugin can validate its own license (for commercial distribution)
|
||||||
|
- **WordPress Auto-Updates**: Receive plugin updates through WordPress's native update system
|
||||||
|
- **Automated Releases**: CI/CD pipeline for consistent release packaging
|
||||||
|
|
||||||
### Customer Features
|
### Customer Features
|
||||||
|
|
||||||
@@ -340,6 +342,41 @@ Content-Type: application/json
|
|||||||
| `max_activations_reached` | Maximum activations reached |
|
| `max_activations_reached` | Maximum activations reached |
|
||||||
| `rate_limit_exceeded` | Too many requests (wait and retry) |
|
| `rate_limit_exceeded` | Too many requests (wait and retry) |
|
||||||
|
|
||||||
|
## Auto-Updates
|
||||||
|
|
||||||
|
Licensed plugins can receive updates through WordPress's native plugin update system. When properly configured, WordPress will check the license server for updates and display them in the Plugins page.
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
|
||||||
|
In WooCommerce > Settings > Licensed Products > Auto-Updates:
|
||||||
|
|
||||||
|
- **Enable Update Notifications**: Show available updates in WordPress admin
|
||||||
|
- **Automatically Install Updates**: Let WordPress install updates automatically
|
||||||
|
- **Update Check Frequency**: How often to check for updates (1-168 hours)
|
||||||
|
|
||||||
|
### How It Works
|
||||||
|
|
||||||
|
1. The plugin periodically checks the configured license server for updates
|
||||||
|
2. If a newer version is available and the license is valid, WordPress shows the update
|
||||||
|
3. Updates can be installed manually or automatically (if enabled)
|
||||||
|
4. Downloads are authenticated using the license key
|
||||||
|
|
||||||
|
### API Endpoint
|
||||||
|
|
||||||
|
The update check uses the `/update-check` REST API endpoint:
|
||||||
|
|
||||||
|
```http
|
||||||
|
POST /wp-json/wc-licensed-product/v1/update-check
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"license_key": "XXXX-XXXX-XXXX-XXXX",
|
||||||
|
"domain": "example.com",
|
||||||
|
"plugin_slug": "my-plugin",
|
||||||
|
"current_version": "1.0.0"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## License Statuses
|
## License Statuses
|
||||||
|
|
||||||
- **Active**: License is valid and usable
|
- **Active**: License is valid and usable
|
||||||
@@ -369,6 +406,60 @@ For issues and feature requests, please visit:
|
|||||||
|
|
||||||
Marco Graetsch
|
Marco Graetsch
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
### Setup
|
||||||
|
|
||||||
|
After cloning the repository, initialize the git submodule and install dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://src.bundespruefstelle.ch/magdev/wc-licensed-product.git
|
||||||
|
cd wc-licensed-product
|
||||||
|
git submodule update --init --recursive
|
||||||
|
composer install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Project Structure
|
||||||
|
|
||||||
|
- `src/` - PHP source files (PSR-4 autoloaded)
|
||||||
|
- `assets/` - CSS and JavaScript files
|
||||||
|
- `templates/` - Twig templates for admin and frontend views
|
||||||
|
- `languages/` - Translation files (.pot, .po, .mo)
|
||||||
|
- `lib/` - Git submodule for the client library
|
||||||
|
- `docs/` - API documentation and client examples
|
||||||
|
|
||||||
|
### Creating Releases
|
||||||
|
|
||||||
|
Releases are automatically created by the Gitea CI/CD pipeline when a version tag is pushed:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Update version in wc-licensed-product.php (both header and constant)
|
||||||
|
# Update CHANGELOG.md with release notes
|
||||||
|
git add -A && git commit -m "Release v0.7.3"
|
||||||
|
git tag -a v0.7.3 -m "Release v0.7.3"
|
||||||
|
git push origin main --tags
|
||||||
|
```
|
||||||
|
|
||||||
|
The pipeline will:
|
||||||
|
|
||||||
|
1. Build production dependencies
|
||||||
|
2. Compile translations
|
||||||
|
3. Create the release package with proper WordPress structure
|
||||||
|
4. Generate SHA256 checksum
|
||||||
|
5. Publish to Gitea releases
|
||||||
|
|
||||||
|
### Translations
|
||||||
|
|
||||||
|
To add or update translations:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Extract strings to .pot template
|
||||||
|
# (Use a tool like wp-cli or poedit)
|
||||||
|
|
||||||
|
# Compile .po files to .mo for production
|
||||||
|
for po in languages/*.po; do msgfmt -o "${po%.po}.mo" "$po"; done
|
||||||
|
```
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
GPL-2.0-or-later
|
GPL-2.0-or-later
|
||||||
|
|||||||
Reference in New Issue
Block a user