WP Manifestindependent plugin directory
manifest / utilities / clickbackup

ClickBackup

A comprehensive WordPress backup and restore solution supporting local, cPanel, and cloud storage options.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/baillie11/clickbackup/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

ClickBackup - WordPress Backup Plugin

A comprehensive WordPress backup and restoration plugin designed for reliability and ease of use.

Features

🔄 Full Site Backup

  • Complete database backup with proper serialized data handling
  • All WordPress files including themes, plugins, and uploads
  • Compressed ZIP archives for efficient storage
  • Automatic corruption prevention for serialized PHP data

📊 Real-time Progress Tracking

  • Visual progress bars with percentage completion
  • Step-by-step progress indicators
  • Real-time elapsed time tracking
  • Progress updates every 20 seconds
  • Clear start/completion timestamps

🔧 Advanced Restoration

  • Safe restoration with automatic safety backups
  • Option to skip safety backup (not recommended)
  • Real-time restoration progress tracking
  • Automatic URL replacement for environment changes
  • Transaction-based database restoration for reliability

🎨 Enhanced User Interface

  • Modern, responsive design
  • Visual status indicators with icons
  • Clear error messaging and logging
  • Automatic form clearing on process start
  • Professional progress animations

💾 Multiple Storage Options

  • Local storage (default)
  • cPanel integration
  • Cloud storage support: OneDrive, Google Drive, Dropbox, and Amazon S3

⏰ Scheduled & Retention-Managed Backups

  • Optional automatic backups on a daily/weekly/monthly WP-Cron schedule
  • Configurable retention period that automatically prunes old local backups

Installation

  1. Upload the plugin files to /wp-content/plugins/clickbackup/
  2. Activate the plugin through the 'Plugins' screen in WordPress
  3. Navigate to 'ClickBackup' in the WordPress admin menu

Usage

Creating a Backup

  1. Go to ClickBackup > Backup
  2. Click Create Backup
  3. Monitor the real-time progress with visual indicators
  4. Download completed backups from the recent backups list

Restoring a Backup

  1. Go to ClickBackup > Restore
  2. Select a backup file from the dropdown
  3. Optionally check "Skip safety backup" (not recommended)
  4. Click Restore Backup
  5. Monitor the restoration progress in real-time

Settings Configuration

  • Configure backup storage locations
  • Set up automatic URL replacement rules
  • Adjust PHP performance settings
  • Configure backup retention policies

Technical Details

System Requirements

  • WordPress 5.0 or higher
  • PHP 7.4 or higher
  • MySQL 5.6 or higher
  • ZipArchive PHP extension
  • Minimum 256MB memory limit (512MB recommended)

File Structure

clickbackup/
├── admin/
│   ├── css/
│   │   └── clickbackup-admin.css
│   ├── js/
│   │   └── clickbackup-admin.js
│   └── partials/
│       ├── clickbackup-admin-backup.php
│       ├── clickbackup-admin-restore.php
│       └── clickbackup-admin-settings.php
├── includes/
│   ├── class-clickbackup-admin.php
│   ├── class-clickbackup-backup.php
│   ├── class-clickbackup-base.php
│   ├── class-clickbackup-restore.php
│   ├── class-clickbackup-settings.php
│   ├── class-clickbackup-storage.php
│   └── storage/
│       ├── class-clickbackup-storage-base.php
│       ├── class-clickbackup-storage-onedrive.php
│       ├── class-clickbackup-storage-googledrive.php
│       ├── class-clickbackup-storage-dropbox.php
│       └── class-clickbackup-storage-aws.php
└── clickbackup.php

Versioning

This plugin identifies releases with two numbers, both set in the clickbackup.php header and exposed via CLICKBACKUP_VERSION / CLICKBACKUP_BUILD:

  • Version - semantic version (MAJOR.MINOR.PATCH), bumped according to the significance of the change.
  • Build - a YYYYMMDD stamp of the release date, bumped alongside Version on every release.

Both are shown together (e.g. 1.3.0 (build 20260901)) at the bottom of the ClickBackup Settings page, so you can always confirm exactly which release is deployed on a given site - useful for support requests and troubleshooting.

Recent Updates (v1.3.0)

✨ New Features

  • Scheduled Backups: opt-in daily/weekly/monthly automatic backups via WP-Cron, with an explicit enable/disable toggle
  • Retention Cleanup: the existing retention-period setting is now actually enforced, pruning expired local backups after each scheduled run
  • Dropbox Support: new storage provider (access-token based, chunked upload sessions for large files)
  • Amazon S3 Support: new storage provider using hand-rolled AWS Signature V4 signing (no SDK dependency), including multipart upload for large files
  • Post-Restore Credential Summary: after a successful restore, the active database credentials are logged and shown on-screen as a record-keeping convenience

🐛 Fixed Issues

  • Critical: backups no longer capture wp-config.php, and restores now skip it if present in older backups - previously, restoring a backup taken on one host onto a different host would silently overwrite that host's working database credentials, breaking the site
  • Fixed a broken OData query string in the OneDrive provider's list_backups() (literal $filter/$top/$orderby were being interpreted as PHP variables)
  • Fixed the Amazon S3 option being unreachable in the cloud storage type dropdown despite its credentials form and provider registration already existing
  • Fixed register_activation_hook/register_deactivation_hook being registered inside an init callback, where they would never actually fire
  • Fixed the clickbackup_get_restore_status AJAX endpoint not being registered on the active code path, which silently broke restore progress polling

Recent Updates (v1.2.0)

🐛 Fixed Issues

  • Serialized Data Corruption: Fixed handling of WordPress serialized data during backup
  • SQL Syntax Errors: Resolved corrupted serialized data causing restoration failures
  • Progress Reporting: Added comprehensive real-time progress tracking

✨ New Features

  • Skip Safety Backup Option: Allow users to skip automatic safety backup before restoration
  • Enhanced Progress Bars: Visual progress indicators with animations
  • Improved Messaging: Clear timestamps and status messages
  • Better Error Handling: More detailed error reporting and logging

🎨 UI Improvements

  • Modern Interface: Updated CSS with better styling and animations
  • Visual Indicators: Added icons for different process stages
  • Form Enhancements: Automatic form clearing and better organization
  • Responsive Design: Improved mobile and tablet compatibility

Known Issues

  • Large backups (>100MB) may require increased PHP memory limits
  • Some shared hosting providers may have execution time limitations
  • Cloud storage integrations are planned for future releases

Development

Quick Start

For development setup:

# Install in local WordPress
scripts\install-clickbackup.ps1

# Run tests
tests\tools\setup-test-environment.bat
php tests/php/test-clickbackup.php

Building

# Create distribution zip
powershell build/build.ps1 -Version "1.3.0"

Documentation

Contributing

We welcome contributions! Please read CONTRIBUTING.md for:

  • Development workflow
  • Coding standards
  • Testing requirements
  • Commit message format
  • Pull request process

Support

For support, bug reports, or feature requests, please open an issue on GitHub.

License

This project is licensed under the GPL v2 or later.

Changelog

v1.3.1 (build 20260901)

  • Added the missing cPanel storage provider (FTP-based) - backup_location = 'cpanel' previously had no backing class and failed
  • Added an FTP Port setting for cPanel storage (default 21)
  • Fixed retention pruning only applying to local backups - ClickBackup_Storage::cleanup_remote_backups() now also prunes expired backups on the active cloud provider or cPanel host
  • Added docs/ENHANCEMENTS.md as a living backlog of recommended future features

v1.3.0 (build 20260901)

  • Added scheduled/automatic backups (daily/weekly/monthly) with retention-based cleanup
  • Added Dropbox and Amazon S3 cloud storage providers
  • Fixed wp-config.php being included in backups/restores (database credential overwrite bug)
  • Fixed OneDrive backup listing query string bug
  • Fixed Amazon S3 not being selectable in the cloud storage dropdown
  • Fixed activation/deactivation hooks never firing
  • Fixed broken restore progress polling endpoint
  • Introduced Version + Build number scheme (see "Versioning" above)

v1.2.0 (2025-01-29)

  • Fixed serialized data corruption in backups
  • Added real-time progress tracking for backup and restore
  • Implemented skip safety backup option
  • Enhanced UI with modern styling and animations
  • Improved error handling and logging
  • Added comprehensive progress reporting

v1.1.0 (Previous)

  • Initial backup and restore functionality
  • Basic file and database handling
  • WordPress integration

v1.0.0 (Initial)

  • Basic plugin structure
  • Core backup functionality

Note: An earlier, unrelated single-file legacy plugin (click-backup.php, plus its standalone README.txt and build.ps1) that predated the clickbackup.php + includes/ architecture documented above has been removed from this repository to avoid confusion.

Developed by Click eCommerce