PHPackages                             humanmade/propose-draft-date - 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. humanmade/propose-draft-date

ActiveWordpress-plugin

humanmade/propose-draft-date
============================

Block Editor plugin to permit contributing users to set a proposed publishing date

v0.3.4(3y ago)454.2k↓28.6%1[5 issues](https://github.com/humanmade/propose-draft-date/issues)[9 PRs](https://github.com/humanmade/propose-draft-date/pulls)GPL-2.0-or-laterPHP

Since Jun 22Pushed 3y ago14 watchersCompare

[ Source](https://github.com/humanmade/propose-draft-date)[ Packagist](https://packagist.org/packages/humanmade/propose-draft-date)[ RSS](/packages/humanmade-propose-draft-date/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (18)Used By (0)

Propose Draft Date
==================

[](#propose-draft-date)

[![Build Status](https://camo.githubusercontent.com/34b0d40608c49778573075aef00891105c3c69cd21d25e68088731636c8489b2/68747470733a2f2f7472617669732d63692e636f6d2f68756d616e6d6164652f70726f706f73652d64726166742d646174652e7376673f6272616e63683d6d6173746572)](https://travis-ci.com/humanmade/propose-draft-date)

This is a WordPress plugin that provides an interface within the [block editor](https://developer.wordpress.org/blogk-editor) for contributing authors (and other roles without the ability to schedule or publish posts) to select a proposed date for the post. That proposed date will be shown in previews of the post by filtering the "floating" post date, and will take effect when the post is published.

Filters
-------

[](#filters)

The following filters are available to modify the behavior of this plugin.

### `proposed_date.supported_post_types` (PHP filter)

[](#proposed_datesupported_post_types-php-filter)

Server-side PHP filter to modify which post types can take a proposed date.

Example: Add proposed date support for a custom post type, and remove it from core pages.

```
/**
 * Customize the post types which support the proposed date feature.
 *
 * @param array $post_types Array of supported post types.
 *                          Defaults to "post" and "page".
 *
 * @return array Filtered post types array.
 */
function filter_types_with_proposed_dates( array $post_types ) : array {
    $post_types = array_diff( $post_types, [ 'page' ] );
    $post_types[] = 'my_custom_post_type';
    return $post_types;
}
add_filter( 'proposed_date.supported_post_types', 'filter_types_with_proposed_dates', 10, 1 );
```

### `proposed_date.should_accept_proposal` (PHP filter)

[](#proposed_dateshould_accept_proposal-php-filter)

Server-side PHP filter to determine, based on the old and new post status and the post object transitioning between those statuses, whether to check for a proposed date and apply it if found.

Example: Accept proposed dates when transitioning to a custom status.

```
/**
 * Always accept any available proposed date when transitioning to the
 * `my-scheduled` custom post status.
 *
 * @param bool    $accept_proposal Whether a proposal should be accepted.
 * @param string  $new_status      New post status.
 * @param string  $old_status      Previous post status.
 * @param WP_Post $post            The post being updated, before changes are applied.
 *
 * @return bool Whether a proposed date should be applied at this time.
 */
function accept_date_proposals_in_custom_status(
    bool $accept_proposal,
    string $new_status,
    string $old_status,
    WP_Post $post
) : bool {
    if ( $new_status === 'my_custom_status' ) {
        return true;
    }
    return $accept_proposal;
}
add_filter( 'proposed_date.should_accept_proposal', 'accept_date_proposals_in_custom_status', 10, 4 );
```

Example: Always accept proposed dates when present, regardless of other circumstances. (If you do this you should also use the JS-side `proposed_date.date_label` filter to ensure you show the correct date value to contributors.)

```
add_filter( 'proposed_date.should_accept_proposal', '__return_true' );
```

### `proposed_date.date_label` (JS filter)

[](#proposed_datedate_label-js-filter)

Frontend JS filter to determine what date value to show when rendering the proposed date within Document sidebar.

Example: Always show the proposed date, when present.

```
function overrideProposedDateLabel( label, proposedDate, date ) {
    if ( proposedDate ) {
        return proposedDate;
    }
    return label;
}
wp.hooks.addFilter( 'proposed_date.date_label', 'my-plugin', overrideProposedDateLabel );
```

### `proposed_date.is_floating` (JS filter)

[](#proposed_dateis_floating-js-filter)

Override whether to consider the post date is considered to be "floating" (that is to say, if the post is meant to be published "Immediately").

Example: Force "floating" date status so that a proposed date will be displayed on the frontend even if an actual scheduled date value is present.

```
function forceIsFloating( isFloating ) {
    return true;
}
wp.hooks.addFilter( 'proposed_date.is_floating', 'my-plugin', forceIsFloating );
```

### `proposed_date.supported_statuses` (JS filter)

[](#proposed_datesupported_statuses-js-filter)

Customize the list of post statuses which support a proposed date value.

```
function filterSupportedStatuses( statuses ) {
    return [ ...statuses, 'my_custom_status' ];
}
wp.hooks.addFilter( 'proposed_date.supported_statuses', 'my-plugin', filterSupportedStatuses );
```

Release Process
---------------

[](#release-process)

Given a clean `main` branch with an updated version number in [`plugin.php`](./plugin.php), follow these steps to build and tag a release:

```
git checkout release
git merge main
npm run build
git add -f build
git commit -m 'Tag v{ YOUR VERSION NUMBER HERE }'
git tag v{ YOUR VERSION NUMBER HERE }
git push origin release
git push origin tags
```

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~154 days

Recently: every ~203 days

Total

7

Last Release

1229d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a498e093283b7b42aa63d5f75851cda7ec4c4e2137cb8482e02d3181b48eafa3?d=identicon)[kadamwhite](/maintainers/kadamwhite)

---

Top Contributors

[![kadamwhite](https://avatars.githubusercontent.com/u/442115?v=4)](https://github.com/kadamwhite "kadamwhite (75 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (24 commits)")[![ntwb](https://avatars.githubusercontent.com/u/1016458?v=4)](https://github.com/ntwb "ntwb (22 commits)")[![abhishek-kaushik](https://avatars.githubusercontent.com/u/1883835?v=4)](https://github.com/abhishek-kaushik "abhishek-kaushik (15 commits)")[![tfrommen](https://avatars.githubusercontent.com/u/6049306?v=4)](https://github.com/tfrommen "tfrommen (12 commits)")[![ivdimova](https://avatars.githubusercontent.com/u/465636?v=4)](https://github.com/ivdimova "ivdimova (2 commits)")[![robindevitt](https://avatars.githubusercontent.com/u/16571365?v=4)](https://github.com/robindevitt "robindevitt (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/humanmade-propose-draft-date/health.svg)

```
[![Health](https://phpackages.com/badges/humanmade-propose-draft-date/health.svg)](https://phpackages.com/packages/humanmade-propose-draft-date)
```

PHPackages © 2026

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