Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.2.1] - 2024-12-15

### Changed

- Improved documentation with clearer explanation of single-password concept
- Added detailed use case examples (staging sites, client portals, photography galleries, etc.)
- Added "When NOT to use" guidance for users needing membership features

## [1.2.0] - 2024-12-15

### Changed
Expand Down
33 changes: 23 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,31 @@
# PassWP Posts

A WordPress plugin for password protecting your site's content. Protect all pages and posts or only selected ones—logged-in users always bypass.
A simple password protection plugin for WordPress—no usernames, no accounts, just one shared password. Share the password with those who need access and they're in. Perfect for situations where you need quick, hassle-free access control without user management.

## When to Use This Plugin

PassWP Posts is ideal when you need **simple shared access** without the overhead of user accounts:

- **Staging Sites** — Share a password with clients to preview their site before launch
- **Client Portals** — Protect project documentation or deliverables with a single password
- **Pre-launch Sites** — Keep your "Coming Soon" site private while you finish development
- **Private Blogs** — Share personal content with family or friends using one easy password
- **Internal Resources** — Protect company wikis or documentation from public access
- **Event Websites** — Limit access to event details, schedules, or member areas
- **Photography Galleries** — Share client proofs with a simple password (no login required)
- **Educational Content** — Protect course materials for a class or workshop

> **Note:** This is NOT a membership or user management plugin. If you need individual user accounts, different access levels, or tracking who accessed what, use a membership plugin instead.

## Features

- **Single Password Protection**: Set one password for your entire site (no username required)
- **Front Page Bypass**: The front page is always accessible without a password
- **Logged-in User Bypass**: Authenticated users skip the password prompt
- **Protection Modes**: Protect all content (with exclusions) or only selected pages/posts
- **Customizable Password Form**: Personalize colors, typography, logo, and more with live preview
- **Preset Themes**: Choose from built-in themes (Default Purple, Business Blue, Dark Mode)
- **Remember Me**: Visitors stay authenticated for a configurable duration
- **Secure Cookie Handling**: Uses SHA256 hashing with WordPress salts for cookie security
- **Native WordPress Methods**: Built using WordPress Settings API and password functions
- **One Password, No Username** — Visitors just enter the password—no account creation, no login forms
- **Front Page Always Public** — Your homepage remains accessible to everyone
- **Logged-in User Bypass** — WordPress users (editors, admins) skip the password prompt
- **Flexible Protection** — Protect all content (with exclusions) or only selected pages/posts
- **Customizable Form** — Match your brand with colors, typography, logo, and preset themes
- **Remember Me** — Visitors stay authenticated for a configurable duration
- **Secure** — Uses WordPress-native password hashing and secure cookies



Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "passwp-posts",
"version": "1.2.0",
"version": "1.2.1",
"description": "Password protects all pages and posts except the front page",
"type": "module",
"scripts": {
Expand Down
4 changes: 2 additions & 2 deletions passwp-posts.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Plugin Name: PassWP Posts
* Plugin URI: https://developer.suspended.no/passwp-posts
* Description: Password protects all pages and posts except the front page. Logged-in users bypass the password.
* Version: 1.2.0
* Version: 1.2.1
* Author: Per Soderlind
* Author URI: https://soderlind.no
* License: GPL-2.0+
Expand All @@ -22,7 +22,7 @@
defined( 'ABSPATH' ) || exit;

// Plugin constants.
define( 'PASSWP_POSTS_VERSION', '1.2.0' );
define( 'PASSWP_POSTS_VERSION', '1.2.1' );
define( 'PASSWP_POSTS_PATH', plugin_dir_path( __FILE__ ) );
define( 'PASSWP_POSTS_URL', plugin_dir_url( __FILE__ ) );
define( 'PASSWP_POSTS_BASENAME', plugin_basename( __FILE__ ) );
Expand Down
59 changes: 41 additions & 18 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,35 +4,50 @@ Tags: password, protection, privacy, security, access control
Requires at least: 6.8
Tested up to: 6.9
Requires PHP: 8.3
Stable tag: 1.2.0
Stable tag: 1.2.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Password protect your site's content. Protect all pages and posts or only selected ones—logged-in users always bypass.
A simple password protection plugin—no usernames, no accounts, just one shared password for quick, hassle-free access control.

== Description ==

PassWP Posts is a simple yet powerful plugin that adds password protection to your entire WordPress site. Unlike WordPress's built-in password protection which works per-post, this plugin protects everything with a single password.
PassWP Posts adds simple password protection to your WordPress site. **No usernames, no user accounts**—just share one password with those who need access. Visitors enter the password and they're in.

This is ideal when you need quick, shared access without the complexity of user management.

**How It Differs from WordPress Built-in Protection:**

* WordPress's per-post password protection requires a password for each individual post
* PassWP Posts uses one password for your entire site (or selected content)
* No need to share multiple passwords for multiple pages

**Key Features:**

* **Single Password** - One password protects your entire site (no username needed)
* **Front Page Always Accessible** - Your homepage remains public
* **Logged-in User Bypass** - Authenticated users skip the password prompt
* **Protection Modes** - Protect all content (with exclusions) or only selected pages/posts
* **Customizable Password Form** - Personalize colors, typography, logo, and more
* **Preset Themes** - Choose from Default Purple, Business Blue, or Dark Mode
* **Live Preview** - See your customizations in real-time before saving
* **Remember Me** - Visitors stay authenticated for configurable durations
* **Secure** - Uses WordPress native password hashing and secure cookies
* **One Password, No Username** - Visitors just enter the password—no accounts needed
* **Front Page Always Public** - Your homepage remains accessible to everyone
* **Logged-in User Bypass** - WordPress users (editors, admins) skip the prompt
* **Flexible Protection** - Protect all content (with exclusions) or only selected pages/posts
* **Customizable Form** - Match your brand with colors, typography, and logo
* **Preset Themes** - Quick-start with Default Purple, Business Blue, or Dark Mode
* **Live Preview** - See changes in real-time before saving
* **Remember Me** - Visitors stay authenticated for your configured duration
* **Secure** - Uses WordPress-native password hashing and secure cookies

**When to Use This Plugin:**

**Perfect For:**
* **Staging sites** - Share a password with clients to preview before launch
* **Client portals** - Protect project files or deliverables
* **Pre-launch websites** - Keep "Coming Soon" sites private during development
* **Private blogs** - Share personal content with family or friends
* **Internal resources** - Protect company documentation from public access
* **Event websites** - Limit access to event details or member-only areas
* **Photography galleries** - Share client proofs without requiring login
* **Educational content** - Protect course materials for a class

* Staging sites that need client access
* Private blogs or journals
* Member-only content areas
* Pre-launch websites
* Internal company resources
**When NOT to Use This Plugin:**

If you need individual user accounts, different access levels, or tracking who accessed what—use a membership plugin instead. PassWP Posts is for simple shared access, not user management.

== Installation ==

Expand Down Expand Up @@ -100,6 +115,11 @@ You may need to exclude protected pages from caching or configure your caching p

== Changelog ==

= 1.2.1 =
* Improved documentation with clearer explanation of single-password concept
* Added detailed use case examples (staging sites, client portals, etc.)
* Added "When NOT to use" guidance for users needing membership features

= 1.2.0 =
* Refactored to PSR-4 autoloading with Composer
* Renamed class files to PascalCase (AdminSettings, CookieHandler, GitHubPluginUpdater, Protection)
Expand Down Expand Up @@ -155,6 +175,9 @@ You may need to exclude protected pages from caching or configure your caching p

== Upgrade Notice ==

= 1.2.1 =
Documentation improvements.

= 1.2.0 =
Code refactoring with PSR-4 autoloading.

Expand Down