Compare commits

..

No commits in common. "main" and "v2.0.1" have entirely different histories.
main ... v2.0.1

3 changed files with 18 additions and 185 deletions

View File

@ -16,69 +16,8 @@ After updating this setting, you *will* need to log out and back into WordPress
Enjoy your long cookie!
## WP-CLI Command
As of version 2.1.0, Biscotti includes WP-CLI commands for managing a user's logged in session cookie expiration.
### `biscotti get`
This command returns the previously defined cookie expiration of a user.
#### Options
`<user_id>` — The ID of the user.
#### Examples
To get the logged in session cookie expiration of a user with the ID of 123, you would use:
```bash
wp biscotti get 123
```
### `biscotti set`
This command sets the logged in session cookie expiration of a user.
#### Options
`<user_id>` — ID of the user.
`<expiration>` — New expiration duration. It must be one of the following values:
* `'3 months'`
* `'6 months'`
* `'1 year'`
#### Examples
To set a logged in session cookie expiration of the user with ID 123 to '1 year', you would use:
```bash
wp biscotti set 123 '1 year'
```
### Note
Please remember to replace the `user_id` and `expiration` placeholders with the actual user ID and desired expiration duration when running either of these commands.
## Changelog
### 2.1.0
Added WP-CLI command. Bumped required PHP version to 8.0.
### 2.0.3
@webaware has decided to help make this code less awful and submitted a pull request. This release implements their improvements.
### 2.0.2
Sanitize. Not escape. Ack!
### 2.0.1
Forgot to escape the lone `$_POST` in my code. Feel dumb about it. Fixed now tho.
### 2.0.0
Rewrite! Now, instead of forcing *everyone* to use the same login cookie expiration, Biscotti allows users to individually select their login cookie expiration on their profile page.
@ -91,4 +30,4 @@ Initial release. Simple plugin that forced login cookie expiration for every use
All plugin code is (currently) Jason Cosper's fault.
Plugin header image courtesy of Terri Bateman.
Plugin icon courtesy of Toora Khan from Noun Project.
Plugin icon courtesy of Toora Khan from Noun Project.

View File

@ -3,7 +3,7 @@
* Biscotti
*
* Biscotti is a plugin that modifies the expiration of the logged in user
* cookie in WordPress to three months, six months, or one year. Because
* cookie in WordPress to three months, six months, or one year. Because
* some people hate to have to keep entering their passwords.
*
* @package Biscotti
@ -15,14 +15,13 @@
* Plugin Name: Biscotti
* Plugin URI: https://github.com/boogah/biscotti
* Description: Biscotti makes your user's login cookie a little bit longer.
* Version: 2.1.0
* Version: 2.0.0
* Requires at least: 6.0
* Requires PHP: 8.0
* Requires PHP: 7.4
* Author: Jason Cosper
* Author URI: https://jasoncosper.com/
* License: GPL-2.0+
* License URI: https://www.gnu.org/licenses/gpl-2.0.txt
* GitHub Plugin URI: boogah/biscotti
*/
// If this file is called directly, abort.
@ -36,7 +35,7 @@ function biscotti_login_cookie_expiration_form_fields( $user )
$expiration_options = array(
'3 months' => '3 months',
'6 months' => '6 months',
'1 year' => '1 year',
'1 year' => '1 year',
);
$selected_expiration = get_the_author_meta('biscotti_login_cookie_expiration', $user->ID);
?>
@ -58,64 +57,6 @@ function biscotti_login_cookie_expiration_form_fields( $user )
<?php
}
if ( defined( 'WP_CLI' ) && WP_CLI ) {
/**
* Manages a user's logged in session cookie expiration.
*/
class Biscotti_Command {
/**
* Get the logged in session cookie expiration of a user.
*
* ## OPTIONS
*
* <user_id>
* : ID of the user.
*
* ## EXAMPLES
*
* wp biscotti get 123
*
*/
function get( $args ) {
list( $user_id ) = $args;
$expiration = get_user_meta( $user_id, 'biscotti_login_cookie_expiration', true );
WP_CLI::line( 'Cookie expiration: ' . $expiration );
}
/**
* Set the logged in session cookie expiration of a user.
*
* ## OPTIONS
*
* <user_id>
* : ID of the user.
*
* <expiration>
* : New expiration duration.
*
* ## EXAMPLES
*
* wp biscotti set 123 '1 year'
*
*/
function set( $args ) {
list( $user_id, $expiration ) = $args;
update_user_meta( $user_id, 'biscotti_login_cookie_expiration', $expiration );
WP_CLI::success( 'Updated cookie expiration.' );
}
}
if ( class_exists( 'WP_CLI' ) ) {
WP_CLI::add_command( 'biscotti', 'Biscotti_Command' );
}
}
// Add the form fields to the user profile page.
add_action('show_user_profile', 'biscotti_login_cookie_expiration_form_fields');
add_action('edit_user_profile', 'biscotti_login_cookie_expiration_form_fields');
@ -126,22 +67,17 @@ function biscotti_login_cookie_expiration_form_fields_update( $user_id )
if (! current_user_can('edit_user', $user_id) ) {
return;
}
update_user_meta($user_id, 'biscotti_login_cookie_expiration', sanitize_text_field($_POST['biscotti_login_cookie_expiration']));
update_user_meta($user_id, 'biscotti_login_cookie_expiration', esc_attr($_POST['biscotti_login_cookie_expiration']));
}
// Save the chosen login cookie expiration date when the user profile is updated.
add_action('personal_options_update', 'biscotti_login_cookie_expiration_form_fields_update');
add_action('edit_user_profile_update', 'biscotti_login_cookie_expiration_form_fields_update');
/**
* Modify the expiration of the logged in user cookie.
* @param int $expiration
* @param int $user_id
* @param bool $remember
* @return int
*/
function biscotti_login_cookie_expiration_set_auth_cookie( $expiration, $user_id, $remember )
// Modify the expiration of the logged in user cookie.
function biscotti_login_cookie_expiration_set_auth_cookie( $auth_cookie_data )
{
$user_id = $auth_cookie_data[0];
$expiration_time = get_user_meta($user_id, 'biscotti_login_cookie_expiration', true);
if (! empty($expiration_time) ) {
@ -154,8 +90,9 @@ function biscotti_login_cookie_expiration_set_auth_cookie( $expiration, $user_id
} else {
$expiration = ''; // Use default expiration of 14 days.
}
$auth_cookie_data[2] = $expiration;
}
return $expiration;
return $auth_cookie_data;
}
// Modify the expiration of the logged in user cookie when a user logs into the site.

View File

@ -1,11 +1,11 @@
=== Biscotti ===
Contributors: boogah, webaware
Contributors: boogah
Donate link: http://paypal.me/boogah
Tags: login, cookies, profile, login
Tags: login, cookies, profile
Requires at least: 6.0
Tested up to: 6.2
Stable tag: 2.1.0
Requires PHP: 8.0
Tested up to: 6.1
Stable tag: 2.0.0
Requires PHP: 7.4
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.txt
@ -15,36 +15,9 @@ Biscotti makes your user's login cookie a little bit longer.
Biscotti is a plugin that modifies the expiration of the logged in user cookie in WordPress to three months, six months, or one year. Because some people hate to have to keep entering their passwords.
== WP-CLI Commands ==
As of version 2.1.0, Biscotti includes WP-CLI commands for managing a user's logged in session cookie expiration.
= biscotti get =
This command returns the previously defined cookie expiration of a user.
== Options ==
`<user_id>` — The ID of the user.
= biscotti set =
This command sets the logged in session cookie expiration of a user.
== Options ==
`<user_id>` — ID of the user.
`<expiration>` — New expiration duration. It must be one of the following values: `'3 months'`, `'6 months'`, `'1 year'`
= Note =
Please remember to replace the `user_id` and `expiration` placeholders with the actual user ID and desired expiration duration when running either of these commands.
== Installation ==
To install this plugin, drop `biscotti.php` into your site's `wp-content/plugins` directory and activate it.
To install this plugin, drop `biscotti.php` into your site\'s `wp-content/plugins` directory and activate it.
== Frequently Asked Questions ==
@ -58,26 +31,10 @@ Enjoy your long cookie!
== Changelog ==
= 2.1.0 =
Added WP-CLI command. Bumped required PHP version to 8.0.
= 2.0.3 =
@webaware has decided to help make this code less awful and submitted a pull request on GitHub. This release implements their improvements.
= 2.0.2 =
Sanitize. Not escape. Ack!
= 2.0.1 =
Forgot to escape the lone `$_POST` in my code. Feel dumb about it. Fixed now tho.
= 2.0.0 =
Rewrite! Now, instead of forcing *everyone* to use the same login cookie expiration, Biscotti allows users to individually select their login cookie expiration on their profile page.
= 1.0.0 =
Initial release. Simple plugin that forced login cookie expiration for every user to 1 year.
Initial release. Simple plugin that forced login cookie expiration for every user to 1 year.