This is a semi-complicated setup I have here, so read all of it before you reply.
On
http://symphonicheaven.com/wii/, for example, if you are logged in, it will show a checkbox to add the game to your Wishlist (or Collection if the game has been released).
Since I need to hide this for non-logged in visitors, I use Member Check (called uncached)...
[!MemberCheck? &groups=`Registered Users` &chunk=`wlpeDawn` &default=`notLogin`!]
...which calls WLPE (cached, due to a issue in MODx 0.9.6’s parser)...
[[WebLoginPE? &type=`profile` &messageTpl=`MessagePE` &profileTpl=`listDawn` &customFields=`wishdotnw` &inputHandler=`:userWishDotnw:wishdotnw:checkbox:()`]]
I have a feeling the stuff around...
$generalElementsArray = array('fullname','email','phone','mobilephone','dob','gender','country','state','zip','fax','photo','comment');
...is causing the issues. It looks like it updates those fields, even if they aren’t included in the template. Which would explain my issue.
...and the profile template is...
<div class="add_padding"><div class="add_to">
<form enctype="multipart/form-data" id="wlpeUserProfileForm" action="[~[*id*]~]" method="POST">
[+form.wishdotnw+] <img src="/mysymphonic/add/wishlist.png" class="img_wishlist" alt="Add to your Wishlist!" title="Add to your Wishlist!" align="absmiddle">
<p></p>
<div align="center">
<button type="submit" id="wlpeSaveProfileButton" name="service" value="saveprofile">Save</button>
</div>
</form>
</div></div>
It displays as expected, and grabs the fields that have already been "checked", and even correctly accesses the database and "checks" off the field in my profile.
The issue is that it deletes the data in the web_users table, except for the name (not fullname) and the photo URL. The only thing I can guess is that Scotty didn’t expect someone to use WLPE like this, and coded it so it touches those fields no matter what, even if they don’t exist in the profile template.
Anyone know how to fix this? I really want to have this feature on my website, but this bug is squashing it right now...
EDIT: I noticed this code...
$generalElementsArray = array('fullname','email','phone','mobilephone','dob','gender','country','state','zip','fax','photo','comment');
Maybe this is what’s causing the issue. Since it seems like it updates those fields, even if they don’t exist...