I changed the code (very slightly) to the following and it works for me.
Code:
<!--replace XXX with the donate function's ID number-->
<if condition="$_REQUEST[actionid] == '1'">
<form action="private.php" name="private" method="post">
<input type="hidden" class="bginput" name="recipients" value="$_FIELDS[username]" />
<input type="hidden" class="bginput" name="title" value="$_FIELDS[points] POINTS RECIEVED" />
<input type="hidden" name="message" value="$_FIELDS[username],
I have just donated $_FIELDS[points] points to you.
Sincerely, $bbuserinfo[username]">
<!--feel free to change this message but preserve the spacing, line breaks won't parse-->
<input type="hidden" name="s" value="" />
<input type="hidden" name="do" value="insertpm" />
<input type="hidden" name="pmid" value="" />
<input type="hidden" name="forward" value="" />
<input type="hidden" name="receipt" value="0" />
</form></if>
<form action="ushop.php" method="post" onsubmit="document.private.submit()">
I also shared the code above with Tyler in
this thread in hopes that he could use it to help him add PM functionality to his "Transactions Addon With a 'message'" hack.