Solution:
The WordPress error:
A variable mismatch has been detected.
Sorry, you are not allowed to view this item.
elseif ( isset( $_GET[ $wpvar ] ) && isset( $_POST[ $wpvar ] ) && $_GET[ $wpvar ] !== $_POST[ $wpvar ] ) {
wp_die(
__( 'A variable mismatch has been detected.' ),
__( 'Sorry, you are not allowed to view this item.' ),
400
);
}
✅ Explanation:
WordPress expects that if a variable exists in both $_GET and $_POST, the values must be identical.
If they differ, WordPress throws this error to prevent unexpected behavior or potential security issues.
In your case:
$_GET[‘page’] did not equal $_POST[‘page’], which triggered the error.
Fix:
Ensure that any variables sent via both GET and POST requests have the same value.
Avoid sending conflicting values for the same key in forms and URLs.