bbp_past_edit_lock( string $datetime = '', boolean $utc = true )

Check a date against the length of time something can be edited.


Description Description

It is recommended to leave $utc set to true and to work with UTC/GMT dates. Turning this off will use the WordPress offset which is likely undesirable.


Parameters Parameters

$datetime

(Optional) Gets run through strtotime()

Default value: ''

$utc

(Optional) Is the timestamp in UTC?

Default value: true


Top ↑

Return Return

(bool) True by default, if date is past, or editing is disabled.


Top ↑

Source Source

File: includes/common/functions.php

function bbp_past_edit_lock( $datetime = '', $utc = true ) {

	// Default value
	$retval = true;

	// Check if date and editing is allowed
	if ( bbp_allow_content_edit() ) {

		// Get number of minutes to allow editing for
		$minutes = bbp_get_edit_lock();

		// 0 minutes means forever, so can never be past edit-lock time
		if ( 0 === $minutes ) {
			$retval = false;

		// Checking against a specific datetime
		} elseif ( ! empty( $datetime ) ) {

			// Period of time
			$lockable = "+{$minutes} minutes";
			if ( true === $utc ) {
				$lockable .= " UTC";
			}

			// Now
			$cur_time  = current_time( 'timestamp', $utc );

			// Get the duration in seconds
			$duration  = strtotime( $lockable ) - $cur_time;

			// Diff the times down to seconds
			$lock_time = strtotime( $lockable, $cur_time );
			$past_time = strtotime( $datetime, $cur_time );
			$diff_time = ( $lock_time - $past_time ) - $duration;

			// Check if less than lock time
			if ( $diff_time < $duration ) {
				$retval = false;
			}
		}
	}

	// Filter & return
	return (bool) apply_filters( 'bbp_past_edit_lock', $retval, $datetime, $utc );
}

Top ↑

Changelog Changelog

Changelog
Version Description
2.6.0 bbPress (r6868) Inverted some logic and added unit tests
2.0.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.