davelassanske
Forum Replies Created
-
Forum: Plugins
In reply to: [Plugin: MailPress] Custom fields for subscription formI will try and get in touch with the author – the mailpress.org site seems to be having some difficulties at the moment though.
Forum: Plugins
In reply to: [Plugin: MailPress] Custom fields for subscription formI also needed this for a client. So I hobbled together a hack. Here it is. You’ll have to update 2 files: mailpress/mp-includes/class/MP_Widget.class.php and mailpress/mp-includes/class/MP_User.class.php.
In MP_Widget.class.php look for “<!– start of code generated by MailPress –>” it’s around line 108. You’ll find the form there. It currently just have the email input field, but I added a first and last name fields, and a zip code field. The names of the fields were ‘first’,’last’,and ‘zip’ respectively. I basically just copied the current email code and just changed the variables and names.
<input class='MailPressFormEmail' type='text' name='email' value="<?php echo $email; ?>" size='25' onfocus="if(this.value=='<?php echo js_escape($options['txtfield']); ?>') this.value='';" onblur="if(this.value=='') this.value='<?php echo js_escape($email); ?>';" /> <input class='MailPressFormEmail' type='text' name='first' value="<?php echo $first; ?>" size='25' onfocus="if(this.value=='<?php echo js_escape($options['txtfield']); ?>') this.value='';" onblur="if(this.value=='') this.value='<?php echo js_escape($first); ?>';" /> <input class='MailPressFormEmail' type='text' name='last' value="<?php echo $last; ?>" size='25' onfocus="if(this.value=='<?php echo js_escape($options['txtfield']); ?>') this.value='';" onblur="if(this.value=='') this.value='<?php echo js_escape($last); ?>';" /> <input class='MailPressFormEmail' type='text' name='zip' value="<?php echo $zip; ?>" size='25' onfocus="if(this.value=='<?php echo js_escape($options['txtfield']); ?>') this.value='';" onblur="if(this.value=='') this.value='<?php echo js_escape($zip); ?>';" />
Then find this code around line 170ish:
“$email = ( isset($_POST[’email’]) ) ? $_POST[’email’] : ”;”
and replicate this line for each of your extra fields, mine looked like this:$email = ( isset($_POST['email']) ) ? $_POST['email'] : ''; $first = ( isset($_POST['first']) ) ? $_POST['first'] : ''; $last = ( isset($_POST['last']) ) ? $_POST['last'] : ''; $zip = ( isset($_POST['zip']) ) ? $_POST['zip'] : '';
A few more lines down find the if statement that checks to see if the fields are filled out:
“if ( ” == $email || $defaults[‘txtfield’] == $email )”
and add the extra fields to the if statement, mine looked like this:
if ( '' == $email || $defaults['txtfield'] == $email || '' == $first || '' == $last || '' == $zip )
And finally for the Widgets class page, find this:
“$add = MP_User::add($email);” and change to:$add = MP_User::add($email,$first,$last,$zip);
.
Now let’s go to the MP_User.class.php file. Around line 362, find “public static function add($email){” and add in your extra field’s variables. Mine looked like this:
“public static function add($email,$first,$last,$zip) {“.
Finally, find the if statement around line 400 that says “if ( self::insert($email, $key) )” and add your extra fields like this:if ( self::insert($email, $key) ) { MP_Usermeta::add(self::get_id_by_email($email),'First',$first); MP_Usermeta::add(self::get_id_by_email($email),'Last',$last); MP_Usermeta::add(self::get_id_by_email($email),'Zip',$zip); $return['result'] = true; $return['message'] = $defaults['txtwaitconf'] ; return $return; }
Save and upload. These changes should then change the functionality of your form so that when a user initially signs up, their record will also be given custom fields generated from your form. Hope this helps!