WordPress.org

Plugin Directory

Ticket #1287: register-plus-redux.php.6.patch

File register-plus-redux.php.6.patch, 64.2 KB (added by garnser, 3 years ago)
Line 
1*** a/register-plus-redux/register-plus-redux.php       2010-11-18 15:53:22.000000000 +0100
2--- b/register-plus-redux/register-plus-redux.php       2011-03-11 14:25:04.000000000 +0100
3***************
4*** 28,33 ****
5--- 28,34 ----
6                        add_filter("registration_redirect", array($this, "filter_registration_redirect"));
7 
8                        add_action("login_form", array($this, "AlterLoginForm")); //Runs just before the end of the HTML head section of the login page.
9+                       add_action("profile_form", array($this, "AlterProfileForm"));
10                       
11                        //add_action("wpmu_activate_user", array($this, "UpdateSignup"), 10, 3);
12                        //add_action("signup_extra_fields", array($this, "AlterSignupForm"));
13***************
14*** 81,86 ****
15--- 82,103 ----
16                                }
17                                if ( !empty($update) ) update_option("register_plus_redux_options", $options);
18                        }
19+                       $default = $this->defaultFields();
20+                       if ( !get_option("register_plus_redux_fields") ) {
21+                         //Check if fields exist, add defaults if necessary
22+                         add_option("register_plus_redux_fields", $default);
23+                       } else {
24+                         //Check settings for new fields, add as necessary
25+                         $options = get_option("register_plus_redux_fields");
26+                         for ($row = 0; $row < count($default); $row++) {
27+                           foreach ( $default[$row] as $k => $v ) {
28+                             if ( !isset($options[$k] ) ) {
29+                               $options[$k] = $v;
30+                               $update = true;
31+                             }
32+                           }
33+                         }
34+                       }
35                }
36 
37                function DeleteExpiredUsers() {
38***************
39*** 179,184 ****
40--- 196,203 ----
41                                                                .append("<option value=\"date\"><?php esc_attr_e("Date Field", "register-plus-redux"); ?></option>")
42                                                                .append("<option value=\"url\"><?php esc_attr_e("URL Field", "register-plus-redux"); ?></option>")
43                                                                .append("<option value=\"hidden\"><?php esc_attr_e("Hidden Field", "register-plus-redux"); ?></option>")
44+                                                               .append("<option value=\"password\"><?php esc_attr_e("Password Field", "register-plus-redux"); ?></option>")
45+                                                               .append("<option value=\"sectiontitle\"><?php esc_attr_e("Section Title", "register-plus-redux"); ?></option>")
46                                                        )
47                                                )
48                                                .append(jQuery("<td>")
49***************
50*** 405,411 ****
51                                });
52 
53                                jQuery(".enableDisableOptions").live("change", function() {
54!                                       if ( jQuery(this).val() == "select" || jQuery(this).val() == "checkbox" || jQuery(this).val() == "radio" )
55                                                jQuery(this).parent().next().find("input").removeAttr("readonly");
56                                        else
57                                                jQuery(this).parent().next().find("input").attr("readonly", "readonly");
58--- 424,430 ----
59                                });
60 
61                                jQuery(".enableDisableOptions").live("change", function() {
62!                                       if ( jQuery(this).val() == "select" || jQuery(this).val() == "checkbox" || jQuery(this).val() == "radio")
63                                                jQuery(this).parent().next().find("input").removeAttr("readonly");
64                                        else
65                                                jQuery(this).parent().next().find("input").attr("readonly", "readonly");
66***************
67*** 508,564 ****
68                                                <td><label><input type="checkbox" name="double_check_email" value="1" <?php if ( !empty($options["double_check_email"]) ) echo "checked='checked'"; ?> />&nbsp;<?php _e("Require new users to enter e-mail address twice during registration.", "register-plus-redux"); ?></label></td>
69                                        </tr>
70                                        <tr valign="top">
71-                                               <th scope="row"><?php _e("Profile Fields", "register-plus-redux"); ?></th>
72-                                               <td>
73-                                                       <table>
74-                                                               <thead valign="top">
75-                                                                       <td style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px;"></td>
76-                                                                       <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><?php _e("Show", "register-plus-redux"); ?></td>
77-                                                                       <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><?php _e("Require", "register-plus-redux"); ?></td>
78-                                                               </thead>
79-                                                               <tbody>
80-                                                                       <?php if ( !is_array($options["show_fields"]) ) $options["show_fields"] = array(); ?>
81-                                                                       <?php if ( !is_array($options["required_fields"]) ) $options["required_fields"] = array(); ?>
82-                                                                       <tr valign="center">
83-                                                                               <td style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px;"><?php _e("First Name", "register-plus-redux"); ?></td>
84-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="show_fields[]" value="first_name" <?php if ( in_array("first_name", $options["show_fields"]) ) echo "checked='checked'"; ?> class="modifyNextCellInput" /></td>
85-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="required_fields[]" value="first_name" <?php if ( in_array("first_name", $options["required_fields"]) ) echo "checked='checked'"; ?> <?php if ( !in_array("first_name", $options["show_fields"]) ) echo "disabled='disabled'"; ?> /></td>
86-                                                                       </tr>
87-                                                                       <tr valign="center">
88-                                                                               <td style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px;"><?php _e("Last Name", "register-plus-redux"); ?></td>
89-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="show_fields[]" value="last_name" <?php if ( in_array("last_name", $options["show_fields"]) ) echo "checked='checked'"; ?> class="modifyNextCellInput" /></td>
90-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="required_fields[]" value="last_name" <?php if ( in_array("last_name", $options["required_fields"]) ) echo "checked='checked'"; ?> <?php if ( !in_array("last_name", $options["show_fields"]) ) echo "disabled='disabled'"; ?> /></td>
91-                                                                       </tr>
92-                                                                       <tr valign="center">
93-                                                                               <td style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px;"><?php _e("Website", "register-plus-redux"); ?></td>
94-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="show_fields[]" value="user_url" <?php if ( in_array("user_url", $options["show_fields"]) ) echo "checked='checked'"; ?> class="modifyNextCellInput" /></td>
95-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="required_fields[]" value="user_url" <?php if ( in_array("user_url", $options["required_fields"]) ) echo "checked='checked'"; ?> <?php if ( !in_array("user_url", $options["show_fields"]) ) echo "disabled='disabled'"; ?> /></td>
96-                                                                       </tr>
97-                                                                       <tr valign="center">
98-                                                                               <td style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px;"><?php _e("AIM", "register-plus-redux"); ?></td>
99-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="show_fields[]" value="aim" <?php if ( in_array("aim", $options["show_fields"]) ) echo "checked='checked'"; ?> class="modifyNextCellInput" /></td>
100-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="required_fields[]" value="aim" <?php if ( in_array("aim", $options["required_fields"]) ) echo "checked='checked'"; ?> <?php if ( !in_array("aim", $options["show_fields"]) ) echo "disabled='disabled'"; ?> /></td>
101-                                                                       </tr>
102-                                                                       <tr valign="center">
103-                                                                               <td style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px;"><?php _e("Yahoo IM", "register-plus-redux"); ?></td>
104-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="show_fields[]" value="yahoo" <?php if ( in_array("yahoo", $options["show_fields"]) ) echo "checked='checked'"; ?> class="modifyNextCellInput" /></td>
105-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="required_fields[]" value="yahoo" <?php if ( in_array("yahoo", $options["required_fields"]) ) echo "checked='checked'"; ?> <?php if ( !in_array("yahoo", $options["show_fields"]) ) echo "disabled='disabled'"; ?> /></td>
106-                                                                       </tr>
107-                                                                       <tr valign="center">
108-                                                                               <td style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px;"><?php _e("Jabber / Google Talk", "register-plus-redux"); ?></td>
109-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="show_fields[]" value="jabber" <?php if ( in_array("jabber", $options["show_fields"]) ) echo "checked='checked'"; ?> class="modifyNextCellInput" /></td>
110-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="required_fields[]" value="jabber" <?php if ( in_array("jabber", $options["required_fields"]) ) echo "checked='checked'"; ?> <?php if ( !in_array("jabber", $options["show_fields"]) ) echo "disabled='disabled'"; ?> /></td>
111-                                                                       </tr>
112-                                                                       <tr valign="center">
113-                                                                               <td style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px;"><?php _e("About Yourself", "register-plus-redux"); ?></td>
114-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="show_fields[]" value="about" <?php if ( in_array("about", $options["show_fields"]) ) echo "checked='checked'"; ?> class="modifyNextCellInput" /></td>
115-                                                                               <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><input type="checkbox" name="required_fields[]" value="about" <?php if ( in_array("about", $options["required_fields"]) ) echo "checked='checked'"; ?> <?php if ( !in_array("about", $options["show_fields"]) ) echo "disabled='disabled'"; ?> /></td>
116-                                                                       </tr>
117-                                                               </tbody>
118-                                                       </table>
119-                                               </td>
120-                                       </tr>
121-                                       <tr valign="top">
122                                                <th scope="row"><?php _e("User Set Password", "register-plus-redux"); ?></th>
123                                                <td>
124                                                        <label><input type="checkbox" name="user_set_password" id="user_set_password" value="1" <?php if ( !empty($options["user_set_password"]) ) echo "checked='checked'"; ?> class="showHideSettings" />&nbsp;<?php _e("Require new users enter a password during registration...", "register-plus-redux"); ?></label><br />
125--- 527,532 ----
126***************
127*** 732,739 ****
128                                                </td>
129                                        </tr>
130                                </table>
131!                               <h3 class="title"><?php _e("Additional Fields", "register-plus-redux"); ?></h3>
132!                               <p><?php _e("Enter additional fields to show on the User Profile and/or Registration Pages. Additional fields will be shown after existing profile fields on User Profile, and after selected profile fields on Registration Page but before Password, Invitation Code, Disclaimer, License Agreement, or Privacy Policy (if any of those fields are enabled). Options must be entered for Select, Checkbox, and Radio fields. Options should be entered with commas seperating each possible value. For example, a Radio field named \"Gender\" could have the following options, \"Male,Female\".", "register-plus-redux"); ?></p>
133                                <table id="custom_fields" style="width: 80%;">
134                                        <thead valign="top">
135                                                <td style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px;"><?php _e("Name", "register-plus-redux"); ?></td>
136--- 700,707 ----
137                                                </td>
138                                        </tr>
139                                </table>
140!                               <h3 class="title"><?php _e("Fields", "register-plus-redux"); ?></h3>
141!                               <p><?php _e("Enter additional fields to show on the User Profile and/or Registration Pages. Options must be entered for Select, Checkbox, and Radio fields. Options should be entered with commas seperating each possible value. For example, a Radio field named \"Gender\" could have the following options, \"Male,Female\".", "register-plus-redux"); ?></p>
142                                <table id="custom_fields" style="width: 80%;">
143                                        <thead valign="top">
144                                                <td style="padding-top: 0px; padding-bottom: 0px; padding-left: 0px;"><?php _e("Name", "register-plus-redux"); ?></td>
145***************
146*** 745,758 ****
147                                                <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><?php _e("Actions", "register-plus-redux"); ?></td>
148                                        </thead>
149                                        <tbody>
150!                                               <?php
151!                                               $custom_fields = get_option("register_plus_redux_custom_fields");
152                                                if ( !is_array($custom_fields) ) $custom_fields = array();
153                                                foreach ( $custom_fields as $k => $v ) {
154                                                        echo "\n<tr valign='center' class='custom_field'>";
155!                                                       echo "\n        <td style='padding-top: 0px; padding-bottom: 0px;'><input type='text' name='custom_field_name[$k]' value=\"", stripslashes($v["custom_field_name"]), "\" style='width: 100%;' /></td>";
156                                                        echo "\n        <td style='padding-top: 0px; padding-bottom: 0px;'>";
157!                                                       echo "\n                <select name='custom_field_type[$k]' class='enableDisableOptions' style='width: 100%;'>";
158                                                        echo "\n                        <option value='text'"; if ( $v["custom_field_type"] == "text" ) echo " selected='selected'"; echo ">", __("Text Field", "register-plus-redux"), "</option>";
159                                                        echo "\n                        <option value='select'"; if ( $v["custom_field_type"] == "select" ) echo " selected='selected'"; echo ">", __("Select Field", "register-plus-redux"), "</option>";
160                                                        echo "\n                        <option value='checkbox'"; if ( $v["custom_field_type"] == "checkbox" ) echo " selected='selected'"; echo ">", __("Checkbox Fields", "register-plus-redux"), "</option>";
161--- 713,730 ----
162                                                <td align="center" style="padding-top: 0px; padding-bottom: 0px;"><?php _e("Actions", "register-plus-redux"); ?></td>
163                                        </thead>
164                                        <tbody>
165! <?php
166!                                               $custom_fields = get_option("register_plus_redux_fields");
167                                                if ( !is_array($custom_fields) ) $custom_fields = array();
168+                                               ?>
169+
170+ <?php
171                                                foreach ( $custom_fields as $k => $v ) {
172                                                        echo "\n<tr valign='center' class='custom_field'>";
173!                                                       if ($v["required_field"] == 0) { echo "\n       <td style='padding-top: 0px; padding-bottom: 0px;'><input type='text' name='custom_field_name[$k]' value=\"", stripslashes($v["custom_field_name"]), "\" style='width: 100%;' /></td>"; } else { echo "\n       <td style='padding-top: 0px; padding-bottom: 0px;'><input type='text' name='custom_field_name[$k]' value=\"", stripslashes($v["custom_field_name"]), "\" style='width: 100%;' readonly='readonly' /></td>"; }
174                                                        echo "\n        <td style='padding-top: 0px; padding-bottom: 0px;'>";
175!                                                       if ( $v["required_field"] == 1 ) echo "<input type='hidden' value='text' name='custom_field_type[$k]' />";
176!                                                       echo "\n                <select name='custom_field_type[$k]' class='enableDisableOptions' style='width: 100%;'"; if ( $v["required_field"] == 1 ) echo 'disabled="disabled"'; echo ">";
177                                                        echo "\n                        <option value='text'"; if ( $v["custom_field_type"] == "text" ) echo " selected='selected'"; echo ">", __("Text Field", "register-plus-redux"), "</option>";
178                                                        echo "\n                        <option value='select'"; if ( $v["custom_field_type"] == "select" ) echo " selected='selected'"; echo ">", __("Select Field", "register-plus-redux"), "</option>";
179                                                        echo "\n                        <option value='checkbox'"; if ( $v["custom_field_type"] == "checkbox" ) echo " selected='selected'"; echo ">", __("Checkbox Fields", "register-plus-redux"), "</option>";
180***************
181*** 761,800 ****
182                                                        echo "\n                        <option value='date'"; if ( $v["custom_field_type"] == "date" ) echo " selected='selected'"; echo ">", __("Date Field", "register-plus-redux"), "</option>";
183                                                        echo "\n                        <option value='url'"; if ( $v["custom_field_type"] == "url" ) echo " selected='selected'"; echo ">", __("URL Field", "register-plus-redux"), "</option>";
184                                                        echo "\n                        <option value='hidden'"; if ( $v["custom_field_type"] == "hidden" ) echo " selected='selected'"; echo ">", __("Hidden Field", "register-plus-redux"), "</option>";
185                                                        echo "\n                </select>";
186                                                        echo "\n        </td>";
187!                                                       echo "\n        <td style='padding-top: 0px; padding-bottom: 0px;'><input type='text' name='custom_field_options[$k]' value=\"", stripslashes($v["custom_field_options"]), "\""; if ( $v["custom_field_type"] != "select" && $v["custom_field_type"] != "checkbox" && $v["custom_field_type"] != "radio" ) echo " readonly='readonly'"; echo " style='width: 100%;' /></td>";
188                                                        echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'><input type='checkbox' name='show_on_profile[$k]' value='1'"; if ( !empty($v["show_on_profile"]) ) echo " checked='checked'"; echo " /></td>";
189!                                                       echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'><input type='checkbox' name='show_on_registration[$k]' value='1'"; if ( !empty($v["show_on_registration"]) ) echo " checked='checked'"; echo " class='modifyNextCellInput' /></td>";
190!                                                       echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'><input type='checkbox' name='required_on_registration[$k]' value='1'"; if ( !empty($v["required_on_registration"]) ) echo " checked='checked'"; if ( empty($v["show_on_registration"]) ) echo " disabled='disabled'"; echo " /></td>";
191                                                        echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'>";
192!                                                       echo "\n        <img src='", plugins_url("images\delete.png", __FILE__), "' alt='", __("Remove Field", "register-plus-redux"), "' title='", __("Remove Field", "register-plus-redux"), "' class='removeCustomField' style='cursor: pointer;' />";
193!                                                       echo "\n        <img src='", plugins_url("images\arrow_up.png", __FILE__), "' alt='", __("Move this Field Up", "register-plus-redux"), "' title='", __("Move this Field Up", "register-plus-redux"), "' class='up' style='cursor: pointer;' />";
194!                                                       echo "\n        <img src='", plugins_url("images\arrow_down.png", __FILE__), "' alt='", __("Move this Field Down", "register-plus-redux"), "' title='", __("Move this Field Down", "register-plus-redux"), "' class='down' style='cursor: pointer;' />";
195!                                                       echo "\n        </td>";
196!                                                       echo "\n</tr>";
197!                                               }
198!                                               if ( empty($custom_fields) ) {
199!                                                       echo "\n<tr valign='center' class='custom_field'>";
200!                                                       echo "\n        <td style='padding-top: 0px; padding-bottom: 0px; padding-left: 0px;'><input type='text' name='custom_field_name[]' value='' style='width: 100%;'/></td>";
201!                                                       echo "\n        <td style='padding-top: 0px; padding-bottom: 0px;'>";
202!                                                       echo "\n                <select name='custom_field_type[]' class='enableDisableOptions' style='width: 100%;'>";
203!                                                       echo "\n                        <option value='text'>", __("Text Field", "register-plus-redux"), "</option>";
204!                                                       echo "\n                        <option value='select'>", __("Select Field", "register-plus-redux"), "</option>";
205!                                                       echo "\n                        <option value='checkbox'>", __("Checkbox Fields", "register-plus-redux"), "</option>";
206!                                                       echo "\n                        <option value='radio'>", __("Radio Fields", "register-plus-redux"), "</option>";
207!                                                       echo "\n                        <option value='textarea'>", __("Text Area", "register-plus-redux"), "</option>";
208!                                                       echo "\n                        <option value='date'>", __("Date Field", "register-plus-redux"), "</option>";
209!                                                       echo "\n                        <option value='url'>", __("URL Field", "register-plus-redux"), "</option>";
210!                                                       echo "\n                        <option value='hidden'>", __("Hidden Field", "register-plus-redux"), "</option>";
211!                                                       echo "\n                </select>";
212!                                                       echo "\n        </td>";
213!                                                       echo "\n        <td style='padding-top: 0px; padding-bottom: 0px;'><input type='text' name='custom_field_options[]' value='' readonly='readonly' style='width: 100%;'/></td>";
214!                                                       echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'><input type='checkbox' name='show_on_profile[]' value='1' /></td>";
215!                                                       echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'><input type='checkbox' name='show_on_registration[]' value='1' class='modifyNextCellInput' /></td>";
216!                                                       echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'><input type='checkbox' name='required_on_registration[]' value='1' disabled='disabled' /></td>";
217                                                        echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'>";
218!                                                       echo "\n        <img src='", plugins_url("images\delete.png", __FILE__), "' alt='", __("Remove Field", "register-plus-redux"), "' title='", __("Remove Field", "register-plus-redux"), "' class='removeCustomField' style='cursor: pointer;' />";
219                                                        echo "\n        <img src='", plugins_url("images\arrow_up.png", __FILE__), "' alt='", __("Move this Field Up", "register-plus-redux"), "' title='", __("Move this Field Up", "register-plus-redux"), "' class='up' style='cursor: pointer;' />";
220                                                        echo "\n        <img src='", plugins_url("images\arrow_down.png", __FILE__), "' alt='", __("Move this Field Down", "register-plus-redux"), "' title='", __("Move this Field Down", "register-plus-redux"), "' class='down' style='cursor: pointer;' />";
221                                                        echo "\n        </td>";
222--- 733,754 ----
223                                                        echo "\n                        <option value='date'"; if ( $v["custom_field_type"] == "date" ) echo " selected='selected'"; echo ">", __("Date Field", "register-plus-redux"), "</option>";
224                                                        echo "\n                        <option value='url'"; if ( $v["custom_field_type"] == "url" ) echo " selected='selected'"; echo ">", __("URL Field", "register-plus-redux"), "</option>";
225                                                        echo "\n                        <option value='hidden'"; if ( $v["custom_field_type"] == "hidden" ) echo " selected='selected'"; echo ">", __("Hidden Field", "register-plus-redux"), "</option>";
226+                                                       echo "\n                        <option value='password'"; if ( $v["custom_field_type"] == "password" ) echo " selected='selected'"; echo ">", __("Password Field", "register-plus-redux"), "</option>";
227+                                                       echo "\n                        <option value='sectiontitle'"; if ( $v["custom_field_type"] == "sectiontitle" ) echo " selected='selected'"; echo ">", __("Section Title", "register-plus-redux"), "</option>";
228                                                        echo "\n                </select>";
229                                                        echo "\n        </td>";
230!                                                       echo "\n        <td style='padding-top: 0px; padding-bottom: 0px;'><input type='text' name='custom_field_options[$k]' value=\"", stripslashes($v["custom_field_options"]), "\""; if ( $v["custom_field_type"] != "select" && $v["custom_field_type"] != "checkbox" && $v["custom_field_type"] != "radio") echo " readonly='readonly'"; echo " style='width: 100%;' /></td>";
231                                                        echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'><input type='checkbox' name='show_on_profile[$k]' value='1'"; if ( !empty($v["show_on_profile"]) ) echo " checked='checked'"; echo " /></td>";
232!                                                       echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'><input type='checkbox' name='show_on_registration[$k]' value='1'"; if ( !empty($v["show_on_registration"]) ) echo " checked='checked'"; if ($v["custom_field_type"] != "sectiontitle" && $v["custom_field_type"] != "password") { echo " class='modifyNextCellInput'"; }; echo "/></td>";
233                                                        echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'>";
234!                                                         echo "<input type='checkbox' name='required_on_registration[$k]' value='1'"; if ( !empty($v["required_on_registration"]) ) echo " checked='checked'"; if ( empty($v["show_on_registration"]) || $v["custom_field_type"] == "sectiontitle" || $v["custom_field_type"] == "password") echo " disabled='disabled'"; echo " />";
235!                                                       echo "</td>";
236                                                        echo "\n        <td align='center' style='padding-top: 0px; padding-bottom: 0px;'>";
237!                                                       if ($v["required_field"] == 0) {
238!                                                         echo "\n      <img src='", plugins_url("images\delete.png", __FILE__), "' alt='", __("Remove Field", "register-plus-redux"), "' title='", __("Remove Field", "register-plus-redux"), "' class='removeCustomField' style='cursor: pointer;' />";
239!                                                       } else {
240!                                                         echo "\n      <img src='", plugins_url("images\delete_gray.png", __FILE__), "' alt='", __("Remove Field", "register-plus-redux"), "' title='", __("Remove Field", "register-plus-redux"), "' style='cursor: pointer;' />";
241!                                                       };
242                                                        echo "\n        <img src='", plugins_url("images\arrow_up.png", __FILE__), "' alt='", __("Move this Field Up", "register-plus-redux"), "' title='", __("Move this Field Up", "register-plus-redux"), "' class='up' style='cursor: pointer;' />";
243                                                        echo "\n        <img src='", plugins_url("images\arrow_down.png", __FILE__), "' alt='", __("Move this Field Down", "register-plus-redux"), "' title='", __("Move this Field Down", "register-plus-redux"), "' class='down' style='cursor: pointer;' />";
244                                                        echo "\n        </td>";
245***************
246*** 1083,1096 ****
247 
248                        if ( isset($_POST["custom_field_name"]) ) {
249                                foreach ( $_POST["custom_field_name"] as $k => $v ) {
250!                                       if ( !empty($v) ) {
251                                                $custom_fields[$k] = array(
252                                                        "custom_field_name" => $v,
253                                                        "custom_field_type" => isset($_POST["custom_field_type"][$k]) ? $_POST["custom_field_type"][$k] : "",
254                                                        "custom_field_options" => isset($_POST["custom_field_options"][$k]) ? $_POST["custom_field_options"][$k] : "",
255                                                        "show_on_profile" => isset($_POST["show_on_profile"][$k]) ? $_POST["show_on_profile"][$k] : "",
256                                                        "show_on_registration" => isset($_POST["show_on_registration"][$k]) ? $_POST["show_on_registration"][$k] : "",
257!                                                       "required_on_registration" => isset($_POST["required_on_registration"][$k]) ? $_POST["required_on_registration"][$k] : "");
258                                        }
259                                }
260                        }
261--- 1037,1060 ----
262 
263                        if ( isset($_POST["custom_field_name"]) ) {
264                                foreach ( $_POST["custom_field_name"] as $k => $v ) {
265!                                       if ( !empty($v) ) {
266!                                         $required_fields = array("First Name" => "first_name", "Last Name" => "last_name", "Website" => "url", "AIM" => "aim", "Yahoo IM" => "yahoo", "Jabber / Google Talk" => "jabber", "About Yourself" => "about", "E-mail" => "user_email", "Username" => "user_login");
267!                               $required_field = 0;
268!                               $required_field_key = "";
269!
270!                               if ( isset($required_fields["$v"])) {
271!                                 $required_field = 1;
272!                                 $required_field_key = $required_fields["$v"];
273!                               }
274                                                $custom_fields[$k] = array(
275                                                        "custom_field_name" => $v,
276                                                        "custom_field_type" => isset($_POST["custom_field_type"][$k]) ? $_POST["custom_field_type"][$k] : "",
277                                                        "custom_field_options" => isset($_POST["custom_field_options"][$k]) ? $_POST["custom_field_options"][$k] : "",
278                                                        "show_on_profile" => isset($_POST["show_on_profile"][$k]) ? $_POST["show_on_profile"][$k] : "",
279                                                        "show_on_registration" => isset($_POST["show_on_registration"][$k]) ? $_POST["show_on_registration"][$k] : "",
280!                                                       "required_on_registration" => isset($_POST["required_on_registration"][$k]) ? $_POST["required_on_registration"][$k] : "",
281!                                                       "required_field" => $required_field,
282!                                                       "required_field_key" => $required_field_key);
283                                        }
284                                }
285                        }
286***************
287*** 1135,1141 ****
288                        $options["disable_url_fopen"] = isset($_POST["disable_url_fopen"]) ? $_POST["disable_url_fopen"] : "";
289 
290                        update_option("register_plus_redux_options", $options);
291!                       update_option("register_plus_redux_custom_fields", $custom_fields);
292                }
293 
294                function UnverifiedUsersPage() {
295--- 1099,1105 ----
296                        $options["disable_url_fopen"] = isset($_POST["disable_url_fopen"]) ? $_POST["disable_url_fopen"] : "";
297 
298                        update_option("register_plus_redux_options", $options);
299!                       update_option("register_plus_redux_fields", $custom_fields);
300                }
301 
302                function UnverifiedUsersPage() {
303***************
304*** 1323,1329 ****
305                                <?php
306                        }
307                        if ( isset($_GET["action"]) && $_GET["action"] == "register" ) {
308!                               $custom_fields = get_option("register_plus_redux_custom_fields");
309                                if ( !is_array($custom_fields) ) $custom_fields = array();
310                                foreach ( $custom_fields as $k => $v ) {
311                                        if ( !empty($v["show_on_registration"]) ) {
312--- 1287,1293 ----
313                                <?php
314                        }
315                        if ( isset($_GET["action"]) && $_GET["action"] == "register" ) {
316!                               $custom_fields = get_option("register_plus_redux_fields");
317                                if ( !is_array($custom_fields) ) $custom_fields = array();
318                                foreach ( $custom_fields as $k => $v ) {
319                                        if ( !empty($v["show_on_registration"]) ) {
320***************
321*** 1539,1628 ****
322                                $tabindex++;
323                        }
324                        if ( !is_array($options["show_fields"]) ) $options["show_fields"] = array();
325!                       if ( in_array("first_name", $options["show_fields"]) ) {
326!                               if ( isset($_GET["first_name"]) ) $_POST["first_name"] = $_GET["first_name"];
327!                               echo "\n<p id='first_name-p'><label id='first_name-label'>";
328!                               if ( !empty($options["required_fields_asterisk"]) && in_array("first_name", $options["required_fields"]) ) echo "*";
329!                               echo __("First Name", "register-plus-redux"), "<br /><input type='text' name='first_name' id='first_name' class='input' value='", $_POST["first_name"],"' size='25' ";
330!                               if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
331!                               echo "/></label></p>";
332!                               $tabindex++;
333!                       }
334!                       if ( in_array("last_name", $options["show_fields"]) ) {
335!                               if ( isset($_GET["last_name"]) ) $_POST["last_name"] = $_GET["last_name"];
336!                               echo "\n<p id='last_name-p'><label id='last_name-label'>";
337!                               if ( !empty($options["required_fields_asterisk"]) && in_array("last_name", $options["required_fields"]) ) echo "*";
338!                               echo __("Last Name", "register-plus-redux"), "<br /><input type='text' name='last_name' id='last_name' class='input' value='", $_POST["last_name"], "' size='25' ";
339!                               if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
340!                               echo "/></label></p>";
341!                               $tabindex++;
342!                       }
343!                       if ( in_array("user_url", $options["show_fields"]) ) {
344!                               if ( isset($_GET["url"]) ) $_POST["url"] = $_GET["url"];
345!                               echo "\n<p id='user_url-p'><label id='user_url-label'>";
346!                               if ( !empty($options["required_fields_asterisk"]) && in_array("user_url", $options["required_fields"]) ) echo "*";
347!                               echo __("Website", "register-plus-redux"), "<br /><input type='text' name='url' id='user_url' class='input' value='", $_POST["url"], "' size='25' ";
348!                               if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
349!                               echo "/></label></p>";
350!                               $tabindex++;
351!                       }
352!                       if ( in_array("aim", $options["show_fields"]) ) {
353!                               if ( isset($_GET["aim"]) ) $_POST["aim"] = $_GET["aim"];
354!                               echo "\n<p id='aim-p'><label id='aim-label'>";
355!                               if ( !empty($options["required_fields_asterisk"]) && in_array("aim", $options["required_fields"]) ) echo "*";
356!                               echo __("AIM", "register-plus-redux"), "<br /><input type='text' name='aim' id='aim' class='input' value='", $_POST["aim"], "' size='25' ";
357!                               if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
358!                               echo "/></label></p>";
359!                               $tabindex++;
360!                       }
361!                       if ( in_array("yahoo", $options["show_fields"]) ) {
362!                               if ( isset($_GET["yahoo"]) ) $_POST["yahoo"] = $_GET["yahoo"];
363!                               echo "\n<p id='yahoo-p'><label id='yahoo-label'>";
364!                               if ( !empty($options["required_fields_asterisk"]) && in_array("yahoo", $options["required_fields"]) ) echo "*";
365!                               echo __("Yahoo IM", "register-plus-redux"), "<br /><input type='text' name='yahoo' id='yahoo' class='input' value='", $_POST["yahoo"], "' size='25' ";
366!                               if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
367!                               echo "/></label></p>";
368!                               $tabindex++;
369!                       }
370!                       if ( in_array("jabber", $options["show_fields"]) ) {
371!                               if ( isset($_GET["jabber"]) ) $_POST["jabber"] = $_GET["jabber"];
372!                               echo "\n<p id='jabber-p'><label id='jabber-label'>";
373!                               if ( !empty($options["required_fields_asterisk"]) && in_array("jabber", $options["required_fields"]) ) echo "*";
374!                               echo __("Jabber / Google Talk", "register-plus-redux"), "<br /><input type='text' name='jabber' id='jabber' class='input' value='", $_POST["jabber"], "' size='25' ";
375!                               if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
376!                               echo "/></label></p>";
377!                               $tabindex++;
378!                       }
379!                       if ( in_array("about", $options["show_fields"]) ) {
380!                               if ( isset($_GET["about"]) ) $_POST["about"] = $_GET["about"];
381!                               echo "\n<p id='about-p'><label id='about-label' for='about'>";
382!                               if ( !empty($options["required_fields_asterisk"]) && in_array("about", $options["required_fields"]) ) echo "*";
383!                               echo __("About Yourself", "register-plus-redux"), "</label><br />";
384!                               echo "\n<small id='about_msg'>", __("Share a little biographical information to fill out your profile. This may be shown publicly.", "register-plus-redux"), "</small><br />";
385!                               echo "\n<textarea name='about' id='about' cols='25' rows='5'";
386!                               if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
387!                               echo ">", stripslashes($_POST["about"]), "</textarea></p>";
388!                               $tabindex++;
389!                       }
390!                       $custom_fields = get_option("register_plus_redux_custom_fields");
391                        if ( !is_array($custom_fields) ) $custom_fields = array();
392                        foreach ( $custom_fields as $k => $v ) {
393                                if ( !empty($v["show_on_registration"]) ) {
394!                                       $key = $this->sanitizeText($v["custom_field_name"]);
395                                        if ( isset($_GET[$key]) ) $_POST[$key] = $_GET[$key];
396                                        switch ( $v["custom_field_type"] ) {
397                                                case "text":
398!                                                       echo "\n<p id='$key-p'><label id='$key-label'>";
399                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
400!                                                       echo stripslashes($v["custom_field_name"]), "<br /><input type='text' name='$key' id='$key' class='input' value='", $_POST[$key], "' size='25' ";
401                                                        if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
402                                                        echo "/></label></p>";
403                                                        $tabindex++;
404                                                        break;
405                                                case "select":
406!                                                       echo "\n<p id='$key-p'><label id='$key-label'>";
407                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
408!                                                       echo stripslashes($v["custom_field_name"]), "<br />";
409                                                        echo "\n<select name='$key' id='$key'";
410                                                        if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
411                                                        echo ">";
412--- 1503,1533 ----
413                                $tabindex++;
414                        }
415                        if ( !is_array($options["show_fields"]) ) $options["show_fields"] = array();
416!                       $custom_fields = get_option("register_plus_redux_fields");
417                        if ( !is_array($custom_fields) ) $custom_fields = array();
418                        foreach ( $custom_fields as $k => $v ) {
419                                if ( !empty($v["show_on_registration"]) ) {
420!                                 if ( !empty($v["required_field_key"])) {
421!                                   $key = $v["required_field_key"];
422!                                   $key_id = $key;
423!                                 } else {
424!                                   $key = $this->sanitizeText($v["custom_field_name"]);
425!                                   $key_id = "$key-p";
426!                                 }
427                                        if ( isset($_GET[$key]) ) $_POST[$key] = $_GET[$key];
428                                        switch ( $v["custom_field_type"] ) {
429                                                case "text":
430!                                                       echo "\n<p id='$key_id'><label id='$key-label'>";
431                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
432!                                                       echo stripslashes($v["custom_field_name"]), "<input type='text' name='$key' id='$key' class='input' value='", $_POST[$key], "' size='25' ";
433                                                        if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
434                                                        echo "/></label></p>";
435                                                        $tabindex++;
436                                                        break;
437                                                case "select":
438!                                                       echo "\n<p id='$key_id'><label id='$key-label'>";
439                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
440!                                                       echo stripslashes($v["custom_field_name"]);
441                                                        echo "\n<select name='$key' id='$key'";
442                                                        if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
443                                                        echo ">";
444***************
445*** 1638,1646 ****
446                                                        echo "\n</label></p>";
447                                                        break;
448                                                case "checkbox":
449!                                                       echo "\n<p id='$key-p' style='margin-bottom:16px;'><label id='$key-label'>";
450                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
451!                                                       echo stripslashes($v["custom_field_name"]), "</label><br />";
452                                                        $custom_field_options = explode(",", $v["custom_field_options"]);
453                                                        foreach ( $custom_field_options as $custom_field_option ) {
454                                                                $option = $this->sanitizeText($custom_field_option);
455--- 1543,1551 ----
456                                                        echo "\n</label></p>";
457                                                        break;
458                                                case "checkbox":
459!                                                       echo "\n<p id='$key_id' style='margin-bottom:16px;'><label id='$key-label'>";
460                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
461!                                                       echo stripslashes($v["custom_field_name"]), "</label>";
462                                                        $custom_field_options = explode(",", $v["custom_field_options"]);
463                                                        foreach ( $custom_field_options as $custom_field_option ) {
464                                                                $option = $this->sanitizeText($custom_field_option);
465***************
466*** 1648,1693 ****
467                                                                if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
468                                                                if ( is_array($_POST[$key]) && in_array(stripslashes($custom_field_option), $_POST[$key]) ) echo " checked='checked'";
469                                                                if ( !is_array($_POST[$key]) && $_POST[$key] == stripslashes($custom_field_option) ) echo " checked='checked'";
470!                                                               echo " /><label id='$option-label' class='$key' for='$option'>&nbsp;", stripslashes($custom_field_option), "</label><br />";
471                                                                $tabindex++;
472                                                        }
473                                                        echo "\n</p>";
474                                                        break;
475                                                case "radio":
476!                                                       echo "\n<p id='$key-p' style='margin-bottom:16px;'><label id='$key-label'>";
477                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
478!                                                       echo stripslashes($v["custom_field_name"]), "</label><br />";
479                                                        $custom_field_options = explode(",", $v["custom_field_options"]);
480                                                        foreach ( $custom_field_options as $custom_field_option ) {
481                                                                $option = $this->sanitizeText($custom_field_option);
482                                                                echo "\n<input type='radio' name='$key' id='$option' value=\"", stripslashes($custom_field_option), "\"";
483                                                                if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
484                                                                if ( $_POST[$key] == stripslashes($custom_field_option) ) echo " checked='checked'";
485!                                                               echo " /><label id='$option-label' class='$key' for='$option'>&nbsp;", stripslashes($custom_field_option), "</label><br />";
486                                                                $tabindex++;
487                                                        }
488                                                        echo "\n</p>";
489                                                        break;
490                                                case "textarea":
491!                                                       echo "\n<p id='$key-p'><label id='$key-label'>";
492                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
493!                                                       echo stripslashes($v["custom_field_name"]), "<br /><textarea name='$key' id='$key' cols='25' rows='5'";
494                                                        if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
495                                                        echo ">", $_POST[$key], "</textarea></label></p>";
496                                                        $tabindex++;
497                                                        break;
498                                                case "date":
499!                                                       echo "\n<p id='$key-p'><label id='$key-label'>";
500                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
501!                                                       echo stripslashes($v["custom_field_name"]), "<br /><input type='text' name='$key' id='$key' class='datepicker' value='", $_POST[$key], "' size='25' ";
502                                                        if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
503                                                        echo " /></label></p>";
504                                                        $tabindex++;
505                                                        break;
506                                                case "url":
507!                                                       echo "\n<p id='$key-p'><label id='$key-label'>";
508                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
509!                                                       echo stripslashes($v["custom_field_name"]), "<br /><input type='text' name='$key' id='$key' class='input' value='", $_POST[$key], "' size='25' ";
510                                                        if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
511                                                        echo "/></label></p>";
512                                                        $tabindex++;
513--- 1553,1598 ----
514                                                                if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
515                                                                if ( is_array($_POST[$key]) && in_array(stripslashes($custom_field_option), $_POST[$key]) ) echo " checked='checked'";
516                                                                if ( !is_array($_POST[$key]) && $_POST[$key] == stripslashes($custom_field_option) ) echo " checked='checked'";
517!                                                               echo " /><label id='$option-label' class='$key' for='$option'>&nbsp;", stripslashes($custom_field_option), "</label>";
518                                                                $tabindex++;
519                                                        }
520                                                        echo "\n</p>";
521                                                        break;
522                                                case "radio":
523!                                                       echo "\n<p id='$key_id' style='margin-bottom:16px;'><label id='$key-label'>";
524                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
525!                                                       echo stripslashes($v["custom_field_name"]), "</label>";
526                                                        $custom_field_options = explode(",", $v["custom_field_options"]);
527                                                        foreach ( $custom_field_options as $custom_field_option ) {
528                                                                $option = $this->sanitizeText($custom_field_option);
529                                                                echo "\n<input type='radio' name='$key' id='$option' value=\"", stripslashes($custom_field_option), "\"";
530                                                                if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
531                                                                if ( $_POST[$key] == stripslashes($custom_field_option) ) echo " checked='checked'";
532!                                                               echo " /><label id='$option-label' class='$key' for='$option'>&nbsp;", stripslashes($custom_field_option), "</label>";
533                                                                $tabindex++;
534                                                        }
535                                                        echo "\n</p>";
536                                                        break;
537                                                case "textarea":
538!                                                       echo "\n<p id='$key_id'><label id='$key-label'>";
539                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
540!                                                       echo stripslashes($v["custom_field_name"]), "<textarea name='$key' id='$key' cols='25' rows='5'";
541                                                        if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
542                                                        echo ">", $_POST[$key], "</textarea></label></p>";
543                                                        $tabindex++;
544                                                        break;
545                                                case "date":
546!                                                       echo "\n<p id='$key_id'><label id='$key-label'>";
547                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
548!                                                       echo stripslashes($v["custom_field_name"]), "<input type='text' name='$key' id='$key' class='datepicker' value='", $_POST[$key], "' size='25' ";
549                                                        if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
550                                                        echo " /></label></p>";
551                                                        $tabindex++;
552                                                        break;
553                                                case "url":
554!                                                       echo "\n<p id='$key_id'><label id='$key-label'>";
555                                                        if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
556!                                                       echo stripslashes($v["custom_field_name"]), "<input type='text' name='$key' id='$key' class='input' value='", $_POST[$key], "' size='25' ";
557                                                        if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
558                                                        echo "/></label></p>";
559                                                        $tabindex++;
560***************
561*** 1698,1725 ****
562                                                        echo "/>";
563                                                        $tabindex++;
564                                                        break;
565                                        }
566                                }
567                        }
568!                       if ( !empty($options["user_set_password"]) ) {
569!                               if ( isset($_GET["password"]) ) $_POST["password"] = $_GET["password"];
570!                               echo "\n<p id='pass1-p'><label id='pass1-label'>";
571!                               if ( !empty($options["required_fields_asterisk"]) ) echo "*";
572!                               echo __("Password", "register-plus-redux"), "<br /><input type='password' autocomplete='off' name='pass1' id='pass1' value='", $_POST["password"], "' size='25' ";
573!                               if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
574!                               echo "/></label></p>";
575!                               $tabindex++;
576!                               echo "\n<p id='pass2-p'><label id='pass2-label'>";
577!                               if ( !empty($options["required_fields_asterisk"]) ) echo "*";
578!                               echo __("Confirm Password", "register-plus-redux"), "<br /><input type='password' autocomplete='off' name='pass2' id='pass2' value='", $_POST["password"], "' size='25' ";
579!                               if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
580!                               echo "/></label></p>";
581!                               $tabindex++;
582!                               if ( !empty($options["show_password_meter"]) ) {
583!                                       echo "\n<div id='pass-strength-result'>", stripslashes($options["message_empty_password"]), "</div>";
584!                                       echo "\n<small id='pass_strength_msg'>", sprintf(__("Your password must be at least %d characters long. To make your password stronger, use upper and lower case letters, numbers, and the following symbols !@#$%%^&amp;*()", "register-plus-redux"), $options["min_password_length"]), "</small>";
585!                               }
586!                       }
587                        if ( !empty($options["enable_invitation_code"]) ) {
588                                if ( isset($_GET["invitation_code"]) ) $_POST["invitation_code"] = $_GET["invitation_code"];
589                                echo "\n<p id='invitation_code-p'><label id='invitation_code-label'>";
590--- 1603,1638 ----
591                                                        echo "/>";
592                                                        $tabindex++;
593                                                        break;
594+                                               case "password":
595+                                                 if ( !empty($options["user_set_password"]) ) {
596+                                                   if ( isset($_GET["password"]) ) $_POST["password"] = $_GET["password"];
597+                                                   echo "\n<p id='pass1-p'><label id='pass1-label'>";
598+                                                   if ( !empty($options["required_fields_asterisk"]) ) echo "*";
599+                                                   echo __("Password", "register-plus-redux"), "<input type='password' autocomplete='off' name='pass1' id='pass1' value='", $_POST["password"], "' size='25' ";
600+                                                   if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
601+                                                   echo "/></label></p>";
602+                                                   $tabindex++;
603+                                                   echo "\n<p id='pass2-p'><label id='pass2-label'>";
604+                                                   if ( !empty($options["required_fields_asterisk"]) ) echo "*";
605+                                                   echo __("Confirm Password", "register-plus-redux"), "<input type='password' autocomplete='off' name='pass2' id='pass2' value='", $_POST["password"], "' size='25' ";
606+                                                   if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
607+                                                   echo "/></label></p>";
608+                                                   $tabindex++;
609+                                                   if ( !empty($options["show_password_meter"]) ) {
610+                                                     echo "\n<div id='pass-strength-result'>", stripslashes($options["message_empty_password"]), "</div>";
611+                                                     echo "\n<small id='pass_strength_msg'>", sprintf(__("Your password must be at least %d characters long. To make your password stronger, use upper and lower case letters, numbers, and the following symbols !@#$%%^&amp;*()", "register-plus-redux"), $options["min_password_length"]), "</small>";
612+                                                   }
613+                                                 }
614+                                                 break;
615+                                               case "sectiontitle":
616+                                                       echo "\n<h2>";
617+                                                       echo stripslashes($v["custom_field_name"]), "</h2>";
618+                                                       $tabindex++;
619+                                                       break;
620                                        }
621                                }
622                        }
623!
624                        if ( !empty($options["enable_invitation_code"]) ) {
625                                if ( isset($_GET["invitation_code"]) ) $_POST["invitation_code"] = $_GET["invitation_code"];
626                                echo "\n<p id='invitation_code-p'><label id='invitation_code-label'>";
627***************
628*** 1796,1806 ****
629                                        $errors->add("empty_first_name", __("<strong>ERROR</strong>: Please enter your first name.", "register-plus-redux"));
630                                }
631                        }
632!                       if ( in_array("last_name", $options["show_fields"]) && in_array("last_name", $options["required_fields"]) ) {
633                                if ( empty($_POST["last_name"]) ) {
634                                        $errors->add("empty_last_name", __("<strong>ERROR</strong>: Please enter your last name.", "register-plus-redux"));
635                                }
636!                       }
637                        if ( in_array("user_url", $options["show_fields"]) && in_array("user_url", $options["required_fields"]) ) {
638                                if ( empty($_POST["url"]) ) {
639                                        $errors->add("empty_user_url", __("<strong>ERROR</strong>: Please enter your website URL.", "register-plus-redux"));
640--- 1709,1719 ----
641                                        $errors->add("empty_first_name", __("<strong>ERROR</strong>: Please enter your first name.", "register-plus-redux"));
642                                }
643                        }
644!                       /*                      if ( in_array("last_name", $options["show_fields"]) && in_array("last_name", $options["required_fields"]) ) {
645                                if ( empty($_POST["last_name"]) ) {
646                                        $errors->add("empty_last_name", __("<strong>ERROR</strong>: Please enter your last name.", "register-plus-redux"));
647                                }
648!                               }*/
649                        if ( in_array("user_url", $options["show_fields"]) && in_array("user_url", $options["required_fields"]) ) {
650                                if ( empty($_POST["url"]) ) {
651                                        $errors->add("empty_user_url", __("<strong>ERROR</strong>: Please enter your website URL.", "register-plus-redux"));
652***************
653*** 1826,1836 ****
654                                        $errors->add("empty_about", __("<strong>ERROR</strong>: Please enter some information about yourself.", "register-plus-redux"));
655                                }
656                        }
657!                       $custom_fields = get_option("register_plus_redux_custom_fields");
658                        if ( !is_array($custom_fields) ) $custom_fields = array();
659                        foreach ( $custom_fields as $k => $v ) {
660                                if ( !empty($v["show_on_registration"]) && !empty($v["required_on_registration"]) ) {
661!                                       $key = $this->sanitizeText($v["custom_field_name"]);
662                                        if ( empty($_POST[$key]) ) {
663                                                $errors->add("empty_$key", sprintf(__("<strong>ERROR</strong>: Please complete %s.", "register-plus-redux"), $v["custom_field_name"]));
664                                        }
665--- 1739,1753 ----
666                                        $errors->add("empty_about", __("<strong>ERROR</strong>: Please enter some information about yourself.", "register-plus-redux"));
667                                }
668                        }
669!                       $custom_fields = get_option("register_plus_redux_fields");
670                        if ( !is_array($custom_fields) ) $custom_fields = array();
671                        foreach ( $custom_fields as $k => $v ) {
672                                if ( !empty($v["show_on_registration"]) && !empty($v["required_on_registration"]) ) {
673!                                 if ( !empty($v["required_field_key"])) {
674!                                   $key = $v["required_field_key"];
675!                                 } else {
676!                                   $key = $this->sanitizeText($v["custom_field_name"]);
677!                                 }
678                                        if ( empty($_POST[$key]) ) {
679                                                $errors->add("empty_$key", sprintf(__("<strong>ERROR</strong>: Please complete %s.", "register-plus-redux"), $v["custom_field_name"]));
680                                        }
681***************
682*** 1881,1886 ****
683--- 1798,1944 ----
684                        }
685                }
686 
687+               function AlterProfileForm( $profileuser ) {
688+                 //              print_r($profileuser);
689+                 //              echo $profileuser->data->first_name;
690+                 //              $profileuser = $profileuser["data"];
691+                 $profileuser = $profileuser->data;
692+                 $options = get_option("register_plus_redux_options");
693+                 if ( !empty($options["starting_tabindex"]) ) $tabindex = $options["starting_tabindex"];
694+                       if ( !is_array($options["profile_fields"]) ) $options["profile_fields"] = array();
695+                       $custom_fields = get_option("register_plus_redux_fields");
696+                       if ( !is_array($custom_fields) ) $custom_fields = array();
697+                       foreach ( $custom_fields as $k => $v ) {
698+                         /*echo "$k => <pre>";
699+                         print_r($v);
700+                         echo "</pre><br />";*/
701+                               if ( !empty($v["show_on_profile"]) ) {
702+                                 if ( !empty($v["required_field_key"])) {
703+                                   $key = $v["required_field_key"];
704+                                   $key_id = $key;
705+                                 } else {
706+                                   $key = $this->sanitizeText($v["custom_field_name"]);
707+                                   $key_id = "$key-p";
708+                                 }
709+                                       if ( isset($_GET[$key]) ) $_POST[$key] = $_GET[$key];
710+                                       switch ( $v["custom_field_type"] ) {
711+                                               case "text":
712+                                                       echo "\n<p id='$key_id'><label id='$key-label'>";
713+                                                       if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
714+                                                       echo stripslashes($v["custom_field_name"]), "<input type='text' name='"; if ($key == "user_email") { echo "email"; } else { echo $key; }; echo "' id='"; if ($key == "user_email") { echo "email"; } else { echo $key; }; echo"' class='input' value='", $profileuser->$key, "' size='25' ";
715+                                                       if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
716+                                                       echo "/></label></p>";
717+                                                       $tabindex++;
718+                                                       break;
719+                                               case "select":
720+                                                       echo "\n<p id='$key_id'><label id='$key-label'>";
721+                                                       if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
722+                                                       echo stripslashes($v["custom_field_name"]);
723+                                                       echo "\n<select name='$key' id='$key'";
724+                                                       if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
725+                                                       echo ">";
726+                                                       $tabindex++;
727+                                                       $custom_field_options = explode(",", $v["custom_field_options"]);
728+                                                       foreach ( $custom_field_options as $custom_field_option ) {
729+                                                               $option = $this->sanitizeText($custom_field_option);
730+                                                               echo "<option id='$option' value=\"", stripslashes($custom_field_option), "\"";
731+                                                               if ( $profileuser->$key == stripslashes($custom_field_option) ) echo " selected='selected'";
732+                                                               echo ">", stripslashes($custom_field_option), "</option>";
733+                                                       }
734+                                                       echo "</select>";
735+                                                       echo "\n</label></p>";
736+                                                       break;
737+                                               case "checkbox":
738+                                                       echo "\n<p id='$key_id' style='margin-bottom:16px;'><label id='$key-label'>";
739+                                                       if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
740+                                                       echo stripslashes($v["custom_field_name"]), "</label>";
741+                                                       $custom_field_options = explode(",", $v["custom_field_options"]);
742+                                                       foreach ( $custom_field_options as $custom_field_option ) {
743+                                                               $option = $this->sanitizeText($custom_field_option);
744+                                                               echo "\n<input type='checkbox' name='", $key, "[]' id='$option' value=\"", stripslashes($custom_field_option), "\"";
745+                                                               if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
746+                                                               if ( is_array($profileuser->$key) && in_array(stripslashes($custom_field_option), $profileuser->$key) ) echo " checked='checked'";
747+                                                               if ( !is_array($profileuser->$key) && $profileuser->$key == stripslashes($custom_field_option) ) echo " checked='checked'";
748+                                                               echo " /><label id='$option-label' class='$key' for='$option'>&nbsp;", stripslashes($custom_field_option), "</label>";
749+                                                               $tabindex++;
750+                                                       }
751+                                                       echo "\n</p>";
752+                                                       break;
753+                                               case "radio":
754+                                                       echo "\n<p id='$key_id' style='margin-bottom:16px;'><label id='$key-label'>";
755+                                                       if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
756+                                                       echo stripslashes($v["custom_field_name"]), "</label>";
757+                                                       $custom_field_options = explode(",", $v["custom_field_options"]);
758+                                                       foreach ( $custom_field_options as $custom_field_option ) {
759+                                                               $option = $this->sanitizeText($custom_field_option);
760+                                                               echo "\n<input type='radio' name='$key' id='$option' value=\"", stripslashes($custom_field_option), "\"";
761+                                                               if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
762+                                                               if ( $profileuser->$key == stripslashes($custom_field_option) ) echo " checked='checked'";
763+                                                               echo " /><label id='$option-label' class='$key' for='$option'>&nbsp;", stripslashes($custom_field_option), "</label>";
764+                                                               $tabindex++;
765+                                                       }
766+                                                       echo "\n</p>";
767+                                                       break;
768+                                               case "textarea":
769+                                                       echo "\n<p id='$key_id'><label id='$key-label'>";
770+                                                       if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
771+                                                       echo stripslashes($v["custom_field_name"]), "<textarea name='$key' id='$key' cols='25' rows='5'";
772+                                                       if ( !empty($options["starting_tabindex"]) ) echo " tabindex='$tabindex'";
773+                                                       echo ">", $profileuser->$key, "</textarea></label></p>";
774+                                                       $tabindex++;
775+                                                       break;
776+                                               case "date":
777+                                                       echo "\n<p id='$key_id'><label id='$key-label'>";
778+                                                       if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
779+                                                       echo stripslashes($v["custom_field_name"]), "<input type='text' name='$key' id='$key' class='datepicker' value='", $profileuser->$key, "' size='25' ";
780+                                                       if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
781+                                                       echo " /></label></p>";
782+                                                       $tabindex++;
783+                                                       break;
784+                                               case "url":
785+                                                       echo "\n<p id='$key_id'><label id='$key-label'>";
786+                                                       if ( !empty($options["required_fields_asterisk"]) && !empty($v["required_on_registration"]) ) echo "*";
787+                                                       echo stripslashes($v["custom_field_name"]), "<input type='text' name='$key' id='$key' class='input' value='", $profileuser->$key, "' size='25' ";
788+                                                       if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
789+                                                       echo "/></label></p>";
790+                                                       $tabindex++;
791+                                                       break;
792+                                               case "hidden":
793+                                                       echo "\n<input type='hidden' name='$key' id='$key' value='", $profileuser->$key, "' ";
794+                                                       if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
795+                                                       echo "/>";
796+                                                       $tabindex++;
797+                                                       break;
798+                                               case "password":
799+                                                 if ( !empty($options["user_set_password"]) ) {
800+                                                   echo "\n<p id='pass1-p'><label id='pass1-label'>";
801+                                                   echo __("Password", "register-plus-redux"), "<input type='password' autocomplete='off' name='pass1' id='pass1' value='' size='25' ";
802+                                                   if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
803+                                                   echo "/></label></p>";
804+                                                   $tabindex++;
805+                                                   echo "\n<p id='pass2-p'><label id='pass2-label'>";
806+                                                   echo __("Confirm Password", "register-plus-redux"), "<input type='password' autocomplete='off' name='pass2' id='pass2' value='' size='25' ";
807+                                                   if ( !empty($options["starting_tabindex"]) ) echo "tabindex='$tabindex' ";
808+                                                   echo "/></label></p>";
809+                                                   $tabindex++;
810+                                                   if ( !empty($options["show_password_meter"]) ) {
811+                                                     echo "\n<div id='pass-strength-result'>", stripslashes($options["message_empty_password"]), "</div>";
812+                                                     echo "\n<small id='pass_strength_msg'>", sprintf(__("Your password must be at least %d characters long. To make your password stronger, use upper and lower case letters, numbers, and the following symbols !@#$%%^&amp;*()", "register-plus-redux"), $options["min_password_length"]), "</small>";
813+                                                   }
814+                                                 }
815+                                                 break;
816+                                               case "sectiontitle":
817+                                                       echo "\n<h2>";
818+                                                       echo stripslashes($v["custom_field_name"]), "</h2>";
819+                                                       $tabindex++;
820+                                                       break;
821+                                       }
822+                               }
823+                       }
824+
825+
826+               }
827+
828                function AlterLoginForm() {
829                        $options = get_option("register_plus_redux_options");
830                        if ( isset($_GET["verification_code"]) ) {
831***************
832*** 1915,1921 ****
833                function DatepickerHead() {
834                        //global $pagenow;
835                        //echo $pagenow;
836!                       $custom_fields = get_option("register_plus_redux_custom_fields");
837                        if ( !is_array($custom_fields) ) $custom_fields = array();
838                        foreach ( $custom_fields as $k => $v ) {
839                                if ( !empty($v["show_on_profile"]) ) {
840--- 1973,1979 ----
841                function DatepickerHead() {
842                        //global $pagenow;
843                        //echo $pagenow;
844!                       $custom_fields = get_option("register_plus_redux_fields");
845                        if ( !is_array($custom_fields) ) $custom_fields = array();
846                        foreach ( $custom_fields as $k => $v ) {
847                                if ( !empty($v["show_on_profile"]) ) {
848***************
849*** 1941,1947 ****
850                }
851 
852                function ShowCustomFields( $profileuser ) {
853!                       $custom_fields = get_option("register_plus_redux_custom_fields");
854                       
855                        if ( !empty($profileuser->invitation_code) || is_array($custom_fields) ) {
856                                echo "<h3>", __("Additional Information", "register-plus-redux"), "</h3>";
857--- 1999,2005 ----
858                }
859 
860                function ShowCustomFields( $profileuser ) {
861!                       $custom_fields = get_option("register_plus_redux_fields");
862                       
863                        if ( !empty($profileuser->invitation_code) || is_array($custom_fields) ) {
864                                echo "<h3>", __("Additional Information", "register-plus-redux"), "</h3>";
865***************
866*** 2019,2025 ****
867 
868                function SaveCustomFields( $user_id ) {
869                        global $wpdb;
870!                       $custom_fields = get_option("register_plus_redux_custom_fields");
871                        if ( !is_array($custom_fields) ) $custom_fields = array();
872                        foreach ( $custom_fields as $k => $v ) {
873                                if ( !empty($v["show_on_profile"]) ) {
874--- 2077,2083 ----
875 
876                function SaveCustomFields( $user_id ) {
877                        global $wpdb;
878!                       $custom_fields = get_option("register_plus_redux_fields");
879                        if ( !is_array($custom_fields) ) $custom_fields = array();
880                        foreach ( $custom_fields as $k => $v ) {
881                                if ( !empty($v["show_on_profile"]) ) {
882***************
883*** 2130,2135 ****
884--- 2188,2212 ----
885                                return $default;
886                }
887 
888+               function defaultFields( $key = '' )
889+               {
890+                 $default = array(
891+                                  array("custom_field_name" => "First Name","custom_field_type" => "text","custom_field_options" => "","show_on_profile" => "","show_on_registration" => "","required_on_registration" => "","required_field" => 1,"required_field_key" => "first_name"),
892+                                  array("custom_field_name" => "Last Name","custom_field_type" => "text","custom_field_options" => "","show_on_profile" => "","show_on_registration" => "","required_on_registration" => "","required_field" => 1,"required_field_key" => "last_name"),
893+                                  array("custom_field_name" => "Website","custom_field_type" => "text","custom_field_options" => "","show_on_profile" => "","show_on_registration" => "","required_on_registration" => "","required_field" => 1,"required_field_key" => "url"),
894+                                  array("custom_field_name" => "AIM","custom_field_type" => "text","custom_field_options" => "","show_on_profile" => "","show_on_registration" => "","required_on_registration" => "","required_field" => 1,"required_field_key" => "aim"),
895+                                  array("custom_field_name" => "Yahoo IM","custom_field_type" => "text","custom_field_options" => "","show_on_profile" => "","show_on_registration" => "","required_on_registration" => "","required_field" => 1,"required_field_key" => "yahoo"),
896+                                  array("custom_field_name" => "Jabber / Google Talk","custom_field_type" => "text","custom_field_options" => "","show_on_profile" => "","show_on_registration" => "","required_on_registration" => "","required_field" => 1,"required_field_key" => "jabber"),
897+                                  array("custom_field_name" => "About Yourself","custom_field_type" => "text","custom_field_options" => "","show_on_profile" => "","show_on_registration" => "","required_on_registration" => "","required_field" => 1,"required_field_key" => "about"),
898+                                  array("custom_field_name" => "E-mail","custom_field_type" => "text","custom_field_options" => "","show_on_profile" => "","show_on_registration" => "","required_on_registration" => "","required_field" => 1,"required_field_key" => "user_email"),
899+                                  array("custom_field_name" => "Username","custom_field_type" => "text","custom_field_options" => "","show_on_profile" => "","show_on_registration" => "","required_on_registration" => "","required_field" => 1,"required_field_key" => "user_login")
900+                                  );
901+                 if ( !empty($key) )
902+                   return $default[$key];
903+                 else
904+                   return $default;
905+               }
906+
907                function sendVerificationMessage ( $user_id ) {
908                        $user_info = get_userdata($user_id);
909                        $options = get_option("register_plus_redux_options");
910***************
911*** 2227,2233 ****
912                        $message = str_replace("%jabber%", get_user_meta($user_info->ID, "jabber", true), $message);
913                        $message = str_replace("%about%", stripslashes(get_user_meta($user_info->ID, "about", true)), $message);
914                        $message = str_replace("%invitation_code%", get_user_meta($user_info->ID, "invitation_code", true), $message);
915!                       $custom_fields = get_option("register_plus_redux_custom_fields");
916                        if ( !is_array($custom_fields) ) $custom_fields = array();
917                        foreach ( $custom_fields as $k => $v ) {
918                                $key = $this->sanitizeText($v["custom_field_name"]);
919--- 2304,2310 ----
920                        $message = str_replace("%jabber%", get_user_meta($user_info->ID, "jabber", true), $message);
921                        $message = str_replace("%about%", stripslashes(get_user_meta($user_info->ID, "about", true)), $message);
922                        $message = str_replace("%invitation_code%", get_user_meta($user_info->ID, "invitation_code", true), $message);
923!                       $custom_fields = get_option("register_plus_redux_fields");
924                        if ( !is_array($custom_fields) ) $custom_fields = array();
925                        foreach ( $custom_fields as $k => $v ) {
926                                $key = $this->sanitizeText($v["custom_field_name"]);
927***************
928*** 2346,2352 ****
929                if ( in_array("yahoo", $options["show_fields"]) && !empty($_POST["yahoo"]) ) update_user_meta($user_id, "yim", $wpdb->prepare($_POST["yahoo"]));
930                if ( in_array("jabber", $options["show_fields"]) && !empty($_POST["jabber"]) ) update_user_meta($user_id, "jabber", $wpdb->prepare($_POST["jabber"]));
931                if ( in_array("about", $options["show_fields"]) && !empty($_POST["about"]) ) update_user_meta($user_id, "description", $wpdb->prepare($_POST["about"]));
932!               $custom_fields = get_option("register_plus_redux_custom_fields");
933                if ( !is_array($custom_fields) ) $custom_fields = array();
934                foreach ( $custom_fields as $k => $v ) {
935                        $key = $registerPlusRedux->sanitizeText($v["custom_field_name"]);
936--- 2423,2429 ----
937                if ( in_array("yahoo", $options["show_fields"]) && !empty($_POST["yahoo"]) ) update_user_meta($user_id, "yim", $wpdb->prepare($_POST["yahoo"]));
938                if ( in_array("jabber", $options["show_fields"]) && !empty($_POST["jabber"]) ) update_user_meta($user_id, "jabber", $wpdb->prepare($_POST["jabber"]));
939                if ( in_array("about", $options["show_fields"]) && !empty($_POST["about"]) ) update_user_meta($user_id, "description", $wpdb->prepare($_POST["about"]));
940!               $custom_fields = get_option("register_plus_redux_fields");
941                if ( !is_array($custom_fields) ) $custom_fields = array();
942                foreach ( $custom_fields as $k => $v ) {
943                        $key = $registerPlusRedux->sanitizeText($v["custom_field_name"]);