PHPackages                             xwp/scheduled-redirects - 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. xwp/scheduled-redirects

ActiveWordpress-plugin[Utility &amp; Helpers](/categories/utility)

xwp/scheduled-redirects
=======================

Schedule activation/deactivation of Redirection Plugin redirects with WPVIP cache purging

v1.0.0(2mo ago)00GPL-2.0-or-laterPHPPHP &gt;=8.4CI passing

Since Feb 10Pushed 2mo agoCompare

[ Source](https://github.com/xwp/scheduled-redirects)[ Packagist](https://packagist.org/packages/xwp/scheduled-redirects)[ RSS](/packages/xwp-scheduled-redirects/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (12)Versions (2)Used By (0)

Scheduled Redirects
===================

[](#scheduled-redirects)

[![CI](https://github.com/xwp/scheduled-redirects/workflows/CI/badge.svg)](https://github.com/xwp/scheduled-redirects/actions)[![PHP Version](https://camo.githubusercontent.com/4399d98dc80e8a5805229116a025620851ec56641d77cab4cf0db407da4b84b1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344253230382e342d626c75652e737667)](https://php.net)[![WordPress Version](https://camo.githubusercontent.com/a26455e5b4ac9e0c5dd77fb3b5ebf47c25c0bf8b21983f7c5e983d258db12774/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f776f726470726573732d253345253344253230362e352d626c75652e737667)](https://wordpress.org)

A WordPress plugin that adds scheduled activation/deactivation functionality to the Redirection Plugin, with automatic WPVIP cache purging.

**Developed by [XWP](https://xwp.co)**

Requirements
------------

[](#requirements)

- WordPress 6.5+
- PHP 8.4+
- [Redirection Plugin](https://wordpress.org/plugins/redirection/) 5.6+
- Action Scheduler 3.8+ (bundled via Composer)

Installation
------------

[](#installation)

### Composer (Recommended)

[](#composer-recommended)

```
composer require xwp/scheduled-redirects
```

### Manual

[](#manual)

1. Run `composer install --no-dev`
2. Upload to `/wp-content/plugins/`
3. Activate Redirection plugin
4. Activate Scheduled Redirects

Usage
-----

[](#usage)

Navigate to **Tools &gt; Scheduled Redirects** to:

- Set scheduled start/end dates for redirects
- Create new redirects with schedules
- View status: Active, Inactive, Scheduled, On Schedule, Expired

Key Features
------------

[](#key-features)

- **Scheduled Activation** - Set a future date/time for redirects to automatically enable
- **Scheduled Deactivation** - Set an end date/time for redirects to automatically disable
- **Automatic Cache Purging** - WPVIP edge cache is automatically purged when redirect status changes
- **Reliable Scheduling** - Uses Action Scheduler for dependable background processing
- **Simple Interface** - Clean admin UI under Tools menu with search and filtering
- **Create New Redirects** - Add new redirects with schedules directly from the plugin
- **Status Indicators** - Visual badges showing Active, Inactive, Scheduled, On Schedule, and Expired states

Use Cases
---------

[](#use-cases)

- **Seasonal Campaigns** - Schedule redirects for holiday promotions that automatically start and end
- **Product Launches** - Set up redirects to go live exactly when a product launches
- **Temporary Redirects** - Create time-limited redirects that automatically expire
- **Content Migrations** - Schedule URL changes to coincide with content updates
- **A/B Testing** - Rotate landing pages on a schedule

How It Works
------------

[](#how-it-works)

1. The plugin adds scheduling fields to each redirect in the Redirection Plugin
2. When you set a start date, the redirect is disabled until that time
3. Action Scheduler triggers the activation at the scheduled time
4. When the end date arrives, the redirect is automatically disabled
5. WPVIP cache is purged automatically to ensure changes take effect immediately

WPVIP Compatibility
-------------------

[](#wpvip-compatibility)

This plugin is fully compatible with WordPress VIP environments:

- Automatically purges WPVIP edge cache when redirects change status
- Uses VIP-approved coding standards and practices

Development
-----------

[](#development)

### Setup

[](#setup)

```
composer install
pnpm install --ignore-workspace
pnpm start
```

### Testing

[](#testing)

```
pnpm test:php          # Run tests
composer lint          # Check standards
composer phpstan       # Static analysis
composer lint:fix      # Auto-fix issues
```

### Local Environment

[](#local-environment)

- Development:
- Tests:
- Admin: `admin` / `password`

### CI/CD

[](#cicd)

GitHub Actions runs:

- PHPCS (WordPress-VIP-Go)
- PHPStan Level 5
- PHPUnit tests

Hooks
-----

[](#hooks)

```
// Actions
do_action( 'scheduled_redirects_enabled', $redirect_id, $redirect );
do_action( 'scheduled_redirects_disabled', $redirect_id, $redirect );
do_action( 'scheduled_redirects_cache_purged', $redirect_id, $redirect, $action, $urls_to_purge );

// Filters
add_filter( 'scheduled_redirects_per_page', fn( $per_page ) => 50 );
add_filter( 'scheduled_redirects_purge_urls', fn( $urls, $redirect_id, $redirect ) => $urls, 10, 3 );
```

Privacy
-------

[](#privacy)

Scheduled Redirects does not collect, store, or transmit any personal data. All schedule data is stored locally in your WordPress database.

Credits
-------

[](#credits)

Developed by [XWP](https://xwp.co) for WordPress VIP environments.

This plugin integrates with:

- [Redirection Plugin](https://wordpress.org/plugins/redirection/) by John Godley
- [Action Scheduler](https://actionscheduler.org/) by Automattic

License
-------

[](#license)

GPL v2 or later

###  Health Score

38

—

LowBetter than 84% of packages

Maintenance89

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

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

Unknown

Total

1

Last Release

88d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/415bc53586018077324af64dad074bf430ba1b72471550489372668274a13b12?d=identicon)[xwp](/maintainers/xwp)

---

Top Contributors

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

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/xwp-scheduled-redirects/health.svg)

```
[![Health](https://phpackages.com/badges/xwp-scheduled-redirects/health.svg)](https://phpackages.com/packages/xwp-scheduled-redirects)
```

###  Alternatives

[zamoose/themehookalliance

Theme Hook Alliance

37010.4k](/packages/zamoose-themehookalliance)[rankmath/seo-by-rank-math

Rank Math is the most powerful way to get BEST WordPress SEO tools added to your website.

1252.0k](/packages/rankmath-seo-by-rank-math)

PHPackages © 2026

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