Hello,
I’ve found a solution although it doesn’t make sense to me yet why it worked. What I did was to compare the source code of an old, working version (v.5.3.4) that’s running on the production site and that running on the dev (not working, v.5.5.11) site. I’m no PHP programmer but have programmed enough in my lifetime to wade my way through understanding it on the fly with the help of google.
Anyway the culprit appears to be the latest version of the file simple-press/forum/profile/ahah/sp-ahah-profile-save.php.
In the older, working version lines 77 & 78 the index ‘password1’ and ‘password2’ are used as the index to the $_POST variable to retrieve value of the passwords entered in the account settings form. The same for lines 120 & 121.
In the newer (v.5.5.11), non-working version those same lines use the index ‘pass1’ and ‘pass2’.
I looked for the file containing the input form code for the password change (in v.5.3.4) to verify what index name should be used and figured that file to be simple-press/forum/profile/forms/sp-form-account.php. Reading through the code, I saw the index name used was ‘password1’ and ‘password2’ (Lines 73 & 81 of v.5.3.4).
Out of curiosity and just to try something, I changed all occurrences of ‘pass1’ to ‘password1’ and ‘pass2’ to ‘password2’ in the 5.5.11 version of simple-press/forum/profile/ahah/sp-ahah-profile-save.php.
I then tested if I can change passwords and it worked! Tested it repeatedly and it keeps working.
Then it occurred to me to compare the source code for the input forms which I figured to be simple-press/forum/profile/forms/sp-form-account.php for both versions. From my fragmented knowledge of HTML/PHP, what I did shouldn’t have worked since the older and newer versions were using seemingly correct name attributes in relation to their respective sp-ahah-profile-save.php files. I also noticed that in v.5.5.11 those lines in question were using the same strings (‘pass1′,’pass2’) for both name and id attributes of their corresponding <input> elements, unlike in v.5.3.4 which used different strings for name and id in its corresponding <input> elements.
Ok, in summary it’s working now with that edit I did to the sp-ahah-profile-save.php file, but I don’t understand why it’s working.
P.S.
One other curiosity is that the in both 5.3.4 and 5.5.11 versions of sp-ahah-profile.save.php, the part where it updates the user’s email (if changed) appears to use SQL instead of the standard WP API wp_update_user(). Is there any particular reason for this?