diff --git a/inc/class-admin.php b/inc/class-admin.php
index 7df48fb8..b6b24d02 100644
--- a/inc/class-admin.php
+++ b/inc/class-admin.php
@@ -77,13 +77,17 @@ public function handle_page() {
echo '' . esc_html__( 'Clear All', 'wp-native-php-sessions' ) . '';
}
echo '
' . esc_html__( 'Pantheon Sessions', 'wp-native-php-sessions' ) . '
';
- if ( isset( $_GET['message'] ) && in_array( $_GET['message'], [ 'delete-all-session', 'delete-session' ], true ) ) {
- if ( 'delete-all-session' === $_GET['message'] ) {
+ // Check for success message transient.
+ $transient_key = 'pantheon_sessions_message_' . get_current_user_id();
+ $session_message = get_transient( $transient_key );
+ if ( $session_message ) {
+ if ( 'delete-all-session' === $session_message ) {
$message = __( 'Cleared all sessions.', 'wp-native-php-sessions' );
- } elseif ( 'delete-session' === $_GET['message'] ) {
+ } elseif ( 'delete-session' === $session_message ) {
$message = __( 'Session cleared.', 'wp-native-php-sessions' );
}
echo '' . esc_html( $message ) . '
';
+ delete_transient( $transient_key );
}
echo '';
@@ -113,7 +117,12 @@ public function handle_clear_session() {
$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->pantheon_sessions WHERE session_id=%s", sanitize_text_field( $_GET['session'] ) ) );
$message = 'delete-session';
}
- wp_safe_redirect( add_query_arg( 'message', $message, wp_get_referer() ) );
+
+ // Set a transient to show success message (expires in 30 seconds).
+ $transient_key = 'pantheon_sessions_message_' . get_current_user_id();
+ set_transient( $transient_key, $message, 30 );
+
+ wp_safe_redirect( wp_get_referer() );
exit;
}
diff --git a/pantheon-sessions.php b/pantheon-sessions.php
index c1e1f1f1..bdb5ad13 100644
--- a/pantheon-sessions.php
+++ b/pantheon-sessions.php
@@ -332,7 +332,7 @@ public static function check_native_primary_keys() {
$wpdb->esc_like( $old_table ) );
// Check for table existence and delete if present.
- if ( $wpdb->get_var( $query ) == $old_table ) {
+ if ( $wpdb->get_var( $query ) === $old_table ) {
$cli_key_finalize = $wp_cli_cmd . 'pantheon session primary-key-finalize';
$cli_key_revert = $wp_cli_cmd . 'pantheon session primary-key-revert';
@@ -539,7 +539,7 @@ public function add_single_index( $prefix, $output = [], $multisite = false ) {
*/
$query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $temp_clone_table ) );
- if ( $wpdb->get_var( $query ) == $temp_clone_table ) {
+ if ( $wpdb->get_var( $query ) === $temp_clone_table ) {
$query = "DROP TABLE {$temp_clone_table};";
$wpdb->query( $query );
}
@@ -549,7 +549,7 @@ public function add_single_index( $prefix, $output = [], $multisite = false ) {
}
$query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table ) );
- if ( ! $wpdb->get_var( $query ) == $table ) {
+ if ( $wpdb->get_var( $query ) !== $table ) {
$this->safe_output( __( 'This site does not have a pantheon_sessions table, and is being skipped.', 'wp-native-php-sessions' ), 'log' );
$output['no_session_table'] = isset( $output['no_session_table'] ) ? $output['no_session_table'] + 1 : 1;
@@ -626,7 +626,7 @@ public function add_single_index( $prefix, $output = [], $multisite = false ) {
$old_table = esc_sql( $prefix . 'bak_' . $unprefixed_table );
$query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $old_table ) );
- if ( $wpdb->get_var( $query ) == $old_table ) {
+ if ( $wpdb->get_var( $query ) === $old_table ) {
$query = "DROP TABLE {$old_table};";
$wpdb->query( $query );
}
@@ -653,7 +653,7 @@ public function primary_key_finalize_single( $prefix = null, $output = [], $mult
$query = $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table ) );
// Check for table existence and delete if present.
- if ( ! $wpdb->get_var( $query ) == $table ) {
+ if ( $wpdb->get_var( $query ) !== $table ) {
/**
* If dealing with multisites, it's feasible that some may have a
* table and some may not, so don't stop execution if it's not found.
@@ -706,7 +706,7 @@ public function primary_key_revert_single( $prefix = null, $output = [], $multis
$type = 'log';
}
- if ( ! $wpdb->get_var( $query ) == $old_clone_table ) {
+ if ( $wpdb->get_var( $query ) !== $old_clone_table ) {
$this->safe_output( __( 'There is no old table to roll back to.', 'wp-native-php-sessions' ), $type );
$output['no_rollback_table'] = isset( $output['no_rollback_table'] ) ? $output['no_rollback_table'] + 1 : 1;