We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 25847
    • 62 Posts
    I am trying to customize the WebSignup Form with custom form fields for Company, State, Zip, Phone Number, etc.

    PART ONE:

    I am calling the "WebSignup" snippet on my registration page as follows:

    [[WebSignup? &groups=`Registered Users` &tpl=`FormSignup`]]


    I customized the template "FormSignup" as follows below:

    <!-- #declare:separator <hr> --> 
    <!-- login form section-->
    <form method="post" name="websignupfrm" action="[+action+]">
        <fieldset>
            <h3>User Details</h3>
            <p class="warning">Items marked by * are required</p><br />
            <div class="form-field"><label for="wsu_username">User name:* <input type="text" name="wsu_username" id="wsu_username" class="inputBox" size="20" maxlength="30" value="[+username+]" /></label></div>
            <div class="form-field"><label for="wsu_password">Password:* <input type="password" name="wsu_password" id="wsu_password" class="inputBox" size="20" /></label></div>
    	<div class="form-field"><label for="confirmpassword">Password (again):* <input type="password" name="confirmpassword" id="confirmpassword" class="inputBox" size="20" /></label></div>
            <div class="form-field"><label for="firstname">First name: <input type="text" name="firstname" id="firstname" class="inputBox" size="20" maxlength="100" /></label></div>
            <div class="form-field"><label for="lastname">Last name: <input type="text" name="lastname" id="lastname" class="inputBox" size="20" maxlength="100" /></label></div>
            <div class="form-field"><label for="company">Company: <input type="text" name="company" id="company" class="inputBox" size="20" maxlength="100" /></label></div>
            <div class="form-field"><label for="wsu_email">Email address:* <input type="text" name="wsu_email" id="wsu_email" class="inputBox" size="20" value="[+email+]" /></label></div>
            <div class="form-field"><label for="phone">Phone Number: <input type="text" name="phone" id="phone" class="inputBox" size="20" maxlength="100" /></label></div>
            <div class="form-field"><label for="address1">Address Line 1: <input type="text" name="address1" id="address1" class="inputBox" size="20" maxlength="100" /></label></div>
            <div class="form-field"><label for="address2">Address Line 2: <input type="text" name="address2" id="address2" class="inputBox" size="20" maxlength="100" /></label></div>
    
            <div class="form-field"><label for="state">State or Province:</label>
            <select size="1" name="state" id="state">
                      <option value="other">other</option>
                      <option value="Alabama_(AL)">Alabama (AL)</option>
                      <option value="Alaska_(AK)">Alaska (AK)</option>
                      <option value="Arizona_(AZ)">Arizona (AZ)</option>
                      <option value="Arkansas_(AR)">Arkansas (AR)</option>
                      <option value="California_(CA)">California (CA)</option>
                      <option value="Colorado_(CO)">Colorado (CO)</option>
                      <option value="Connecticut_(CT)">Connecticut (CT)</option>
                      <option value="Delaware_(DE)">Delaware (DE)</option>
                      <option value="District_of_Columbia_(DC)">District of Columbia (DC)</option>
                      <option value="Florida_(FL)">Florida (FL)</option>
                      <option value="Georgia_(GA)">Georgia (GA)</option>
                      <option value="Guam_(GU)">Guam (GU)</option>
                      <option value="Hawaii_(HI)">Hawaii (HI)</option>
                      <option value="Idaho_(ID)">Idaho (ID)</option>
                      <option value="Illinois_(IL)">Illinois (IL)</option>
                      <option value="Indiana_(IN)">Indiana (IN)</option>
                      <option value="Iowa_(IA)">Iowa (IA)</option>
                      <option value="Kansas_(KS)">Kansas (KS)</option>
                      <option value="Kentucky_(KY)">Kentucky (KY)</option>
                      <option value="Louisiana_(LA)">Louisiana (LA)</option>
                      <option value="Maine_(ME)">Maine (ME)</option>
                      <option value="Maryland_(MD)">Maryland (MD)</option>
                      <option value="Massachusetts_(MA)">Massachusetts (MA)</option>
                      <option value="Michigan_(MI)">Michigan (MI)</option>
                      <option value="Minnesota_(MN)">Minnesota (MN)</option>
                      <option value="Mississippi_(MS)">Mississippi (MS)</option>
                      <option value="Missouri_(MO)">Missouri (MO)</option>
                      <option value="Montana_(MT)">Montana (MT)</option>
                      <option value="Nebraska_(NE)">Nebraska (NE)</option>
                      <option value="Nevada_(NV)">Nevada (NV)</option>
                      <option value="New_Hampshire_(NH)">New Hampshire (NH)</option>
                      <option value="New_Jersey_(NJ)">New Jersey (NJ)</option>
                      <option value="New_Mexico_(NM)">New Mexico (NM)</option>
                      <option value="New_York_(NY)">New York (NY)</option>
                      <option value="North_Carolina_(NC)">North Carolina (NC)</option>
                      <option value="North_Dakota_(ND)">North Dakota (ND)</option>
                      <option value="Ohio_(OH)">Ohio (OH)</option>
                      <option value="Oklahoma_(OK)">Oklahoma (OK)</option>
                      <option value="Oregon_(OR)">Oregon (OR)</option>
                      <option value="Pennyslvania_(PA)">Pennyslvania (PA)</option>
                      <option value="Puerto_Rico_(PR)">Puerto Rico (PR)</option>
                      <option value="Rhode_Island_(RI)">Rhode Island (RI)</option>
                      <option value="South_Carolina_(SC)">South Carolina (SC)</option>
                      <option value="South_Dakota_(SD)">South Dakota (SD)</option>
                      <option value="Tennessee_(TN)">Tennessee (TN)</option>
                      <option value="Texas_(TX)">Texas (TX)</option>
                      <option value="Utah_(UT)">Utah (UT)</option>
                      <option value="Vermont_(VT)">Vermont (VT)</option>
                      <option value="Virginia_(VA)">Virginia (VA)</option>
                      <option value="Virgin_Islands_(VI)">Virgin Islands (VI)</option>
                      <option value="Washington_(WA)">Washington (WA)</option>
                      <option value="West_Virginia_(WV)">West Virginia (WV)</option>
                      <option value="Wisconsin_(WI)">Wisconsin (WI)</option>
                      <option value="Wyoming_(WY)">Wyoming (WY)</option>
                      <option value="Alberta_(AB)">Alberta (AB)</option>
                      <option value="British_Columbia_(BC)">British Columbia (BC)</option>
                      <option value="Manitoba_(MB)">Manitoba (MB)</option>
                      <option value="New_Brunswick_(NB)">New Brunswick (NB)</option>
                      <option value="Newfoundland_and_Labrador_(NL)">Newfoundland and Labrador (NL)</option>
                      <option value="Northwest_Territories_(NT)">Northwest Territories (NT)</option>
                      <option value="Nova_Scotia_(NS)">Nova Scotia (NS)</option>
                      <option value="Nunavut_(NU)">Nunavut (NU)</option>
                      <option value="Prince_Edward_Island_(PE)">Prince Edward Island (PE)</option>
                      <option value="Saskatchewan_(SK)">Saskatchewan (SK)</option>
                      <option value="Ontario_(ON)">Ontario (ON)</option>
                      <option value="Quebec_(QC)">Quebec (QC)</option>
                      <option value="Yukon_(YT)">Yukon (YT)</option>
            </select></div>
    
            <div class="form-field"><label for="zipcode">Zip/Postal Code: <input type="text" name="zipcode" id="zipcode" class="inputBox" size="20" maxlength="100" /></label></div>
    
    		<div class="form-field"><label for="country">Country:</label>
    		<select size="1" name="country" id="country">
    			<option value="1">Afghanistan</option>
    			<option value="2">Albania</option>
    			<option value="3">Algeria</option>
    			<option value="4">American Samoa</option>
    			<option value="5">Andorra</option>
    			<option value="6">Angola</option>
    			<option value="7">Anguilla</option>
    			<option value="8">Antarctica</option>
    			<option value="9">Antigua and Barbuda</option>
    			<option value="10">Argentina</option>
    			<option value="11">Armenia</option>
    			<option value="12">Aruba</option>
    			<option value="13">Australia</option>
    			<option value="14">Austria</option>
    			<option value="15">Azerbaijan</option>
    			<option value="16">Bahamas</option>
    			<option value="17">Bahrain</option>
    			<option value="18">Bangladesh</option>
    			<option value="19">Barbados</option>
    			<option value="20">Belarus</option>
    			<option value="21">Belgium</option>
    			<option value="22">Belize</option>
    			<option value="23">Benin</option>
    			<option value="24">Bermuda</option>
    			<option value="25">Bhutan</option>
    			<option value="26">Bolivia</option>
    			<option value="27">Bosnia and Herzegowina</option>
    			<option value="28">Botswana</option>
    			<option value="29">Bouvet Island</option>
    			<option value="30">Brazil</option>
    			<option value="31">British Indian Ocean Territory</option>
    			<option value="32">Brunei Darussalam</option>
    			<option value="33">Bulgaria</option>
    			<option value="34">Burkina Faso</option>
    			<option value="35">Burundi</option>
    			<option value="36">Cambodia</option>
    			<option value="37">Cameroon</option>
    			<option value="38">Canada</option>
    			<option value="39">Cape Verde</option>
    			<option value="40">Cayman Islands</option>
    			<option value="41">Central African Republic</option>
    			<option value="42">Chad</option>
    			<option value="43">Chile</option>
    			<option value="44">China</option>
    			<option value="45">Christmas Island</option>
    			<option value="46">Cocos (Keeling) Islands</option>
    			<option value="47">Colombia</option>
    			<option value="48">Comoros</option>
    			<option value="49">Congo</option>
    			<option value="50">Cook Islands</option>
    			<option value="51">Costa Rica</option>
    			<option value="52">Cote D&#39;Ivoire</option>
    			<option value="53">Croatia</option>
    			<option value="54">Cuba</option>
    			<option value="55">Cyprus</option>
    			<option value="56">Czech Republic</option>
    			<option value="57">Denmark</option>
    			<option value="58">Djibouti</option>
    			<option value="59">Dominica</option>
    			<option value="60">Dominican Republic</option>
    			<option value="61">East Timor</option>
    			<option value="62">Ecuador</option>
    			<option value="63">Egypt</option>
    			<option value="64">El Salvador</option>
    			<option value="65">Equatorial Guinea</option>
    			<option value="66">Eritrea</option>
    			<option value="67">Estonia</option>
    			<option value="68">Ethiopia</option>
    			<option value="69">Falkland Islands (Malvinas)</option>
    			<option value="70">Faroe Islands</option>
    			<option value="71">Fiji</option>
    			<option value="72">Finland</option>
    			<option value="73">France</option>
    			<option value="74">France, Metropolitan</option>
    			<option value="75">French Guiana</option>
    			<option value="76">French Polynesia</option>
    			<option value="77">French Southern Territories</option>
    			<option value="78">Gabon</option>
    			<option value="79">Gambia</option>
    			<option value="80">Georgia</option>
    			<option value="81">Germany</option>
    			<option value="82">Ghana</option>
    			<option value="83">Gibraltar</option>
    			<option value="84">Greece</option>
    			<option value="85">Greenland</option>
    			<option value="86">Grenada</option>
    			<option value="87">Guadeloupe</option>
    			<option value="88">Guam</option>
    			<option value="89">Guatemala</option>
    			<option value="90">Guinea</option>
    			<option value="91">Guinea-bissau</option>
    			<option value="92">Guyana</option>
    			<option value="93">Haiti</option>
    			<option value="94">Heard and Mc Donald Islands</option>
    			<option value="95">Honduras</option>
    			<option value="96">Hong Kong</option>
    			<option value="97">Hungary</option>
    			<option value="98">Iceland</option>
    			<option value="99">India</option>
    			<option value="100">Indonesia</option>
    			<option value="101">Iran (Islamic Republic of)</option>
    			<option value="102">Iraq</option>
    			<option value="103">Ireland</option>
    			<option value="104">Israel</option>
    			<option value="105">Italy</option>
    			<option value="106">Jamaica</option>
    			<option value="107">Japan</option>
    			<option value="108">Jordan</option>
    			<option value="109">Kazakhstan</option>
    			<option value="110">Kenya</option>
    			<option value="111">Kiribati</option>
    			<option value="112">Korea, Democratic People&#39;s Republic of</option>
    			<option value="113">Korea, Republic of</option>
    			<option value="114">Kuwait</option>
    			<option value="115">Kyrgyzstan</option>
    			<option value="116">Lao People&#39;s Democratic Republic</option>
    			<option value="117">Latvia</option>
    			<option value="118">Lebanon</option>
    			<option value="119">Lesotho</option>
    			<option value="120">Liberia</option>
    			<option value="121">Libyan Arab Jamahiriya</option>
    			<option value="122">Liechtenstein</option>
    			<option value="123">Lithuania</option>
    			<option value="124">Luxembourg</option>
    			<option value="125">Macau</option>
    			<option value="126">Macedonia, The Former Yugoslav Republic of</option>
    			<option value="127">Madagascar</option>
    			<option value="128">Malawi</option>
    			<option value="129">Malaysia</option>
    			<option value="130">Maldives</option>
    			<option value="131">Mali</option>
    			<option value="132">Malta</option>
    			<option value="133">Marshall Islands</option>
    			<option value="134">Martinique</option>
    			<option value="135">Mauritania</option>
    			<option value="136">Mauritius</option>
    			<option value="137">Mayotte</option>
    			<option value="138">Mexico</option>
    			<option value="139">Micronesia, Federated States of</option>
    			<option value="140">Moldova, Republic of</option>
    			<option value="141">Monaco</option>
    			<option value="142">Mongolia</option>
    			<option value="143">Montserrat</option>
    			<option value="144">Morocco</option>
    			<option value="145">Mozambique</option>
    			<option value="146">Myanmar</option>
    			<option value="147">Namibia</option>
    			<option value="148">Nauru</option>
    			<option value="149">Nepal</option>
    			<option value="150">Netherlands</option>
    			<option value="151">Netherlands Antilles</option>
    			<option value="152">New Caledonia</option>
    			<option value="153">New Zealand</option>
    			<option value="154">Nicaragua</option>
    			<option value="155">Niger</option>
    			<option value="156">Nigeria</option>
    			<option value="157">Niue</option>
    			<option value="158">Norfolk Island</option>
    			<option value="159">Northern Mariana Islands</option>
    			<option value="160">Norway</option>
    			<option value="161">Oman</option>
    			<option value="162">Pakistan</option>
    			<option value="163">Palau</option>
    			<option value="164">Panama</option>
    			<option value="165">Papua New Guinea</option>
    			<option value="166">Paraguay</option>
    			<option value="167">Peru</option>
    			<option value="168">Philippines</option>
    			<option value="169">Pitcairn</option>
    			<option value="170">Poland</option>
    			<option value="171">Portugal</option>
    			<option value="172">Puerto Rico</option>
    			<option value="173">Qatar</option>
    			<option value="174">Reunion</option>
    			<option value="175">Romania</option>
    			<option value="176">Russian Federation</option>
    			<option value="177">Rwanda</option>
    			<option value="178">Saint Kitts and Nevis</option>
    			<option value="179">Saint Lucia</option>
    			<option value="180">Saint Vincent and the Grenadines</option>
    			<option value="181">Samoa</option>
    			<option value="182">San Marino</option>
    			<option value="183">Sao Tome and Principe</option>
    			<option value="184">Saudi Arabia</option>
    			<option value="185">Senegal</option>
    			<option value="186">Seychelles</option>
    			<option value="187">Sierra Leone</option>
    			<option value="188">Singapore</option>
    			<option value="189">Slovakia (Slovak Republic)</option>
    			<option value="190">Slovenia</option>
    			<option value="191">Solomon Islands</option>
    			<option value="192">Somalia</option>
    			<option value="193">South Africa</option>
    			<option value="194">South Georgia and the South Sandwich Islands</option>
    			<option value="195">Spain</option>
    			<option value="196">Sri Lanka</option>
    			<option value="197">St. Helena</option>
    			<option value="198">St. Pierre and Miquelon</option>
    			<option value="199">Sudan</option>
    			<option value="200">Suriname</option>
    			<option value="201">Svalbard and Jan Mayen Islands</option>
    			<option value="202">Swaziland</option>
    			<option value="203">Sweden</option>
    			<option value="204">Switzerland</option>
    			<option value="205">Syrian Arab Republic</option>
    			<option value="206">Taiwan</option>
    			<option value="207">Tajikistan</option>
    			<option value="208">Tanzania, United Republic of</option>
    			<option value="209">Thailand</option>
    			<option value="210">Togo</option>
    			<option value="211">Tokelau</option>
    			<option value="212">Tonga</option>
    			<option value="213">Trinidad and Tobago</option>
    			<option value="214">Tunisia</option>
    			<option value="215">Turkey</option>
    			<option value="216">Turkmenistan</option>
    			<option value="217">Turks and Caicos Islands</option>
    			<option value="218">Tuvalu</option>
    			<option value="219">Uganda</option>
    			<option value="220">Ukraine</option>
    			<option value="221">United Arab Emirates</option>
    			<option value="222">United Kingdom</option>
    			<option value="223" selected="selected">United States</option>
    			<option value="224">United States Minor Outlying Islands</option>
    			<option value="225">Uruguay</option>
    			<option value="226">Uzbekistan</option>
    			<option value="227">Vanuatu</option>
    			<option value="228">Vatican City State (Holy See)</option>
    			<option value="229">Venezuela</option>
    			<option value="230">Viet Nam</option>
    			<option value="231">Virgin Islands (British)</option>
    			<option value="232">Virgin Islands (U.S.)</option>
    			<option value="233">Wallis and Futuna Islands</option>
    			<option value="234">Western Sahara</option>
    			<option value="235">Yemen</option>
    			<option value="236">Yugoslavia</option>
    			<option value="237">Zaire</option>
    			<option value="238">Zambia</option>
    			<option value="239">Zimbabwe</option>
    			</select></div>
    
                <p>Enter the word/number combination shown in the image below.</p>
                <div class="form-field"><label>Form code:* 
                <input type="text" name="formcode" class="inputBox" size="20" /></label></div>
                <div class="form-field"><a href="[+action+]"><img align="top" src="manager/includes/veriword.php" width="148" height="60" alt="If you have trouble reading the code, click on the code itself to generate a new random code." style="border: 1px solid #039" /></a></div>
            </fieldset>
    
    <fieldset>
                <input type="submit" value="Submit" name="cmdwebsignup" />
    	</fieldset>
    </form>
    
    <script language="javascript" type="text/javascript"> 
    	var id = "[+country+]";
    	var f = document.websignupfrm;
    	var i = parseInt(id);	
    	if (!isNaN(i)) f.country.options[i].selected = true;
    </script>
    <hr>
    <!-- notification section -->
    <p class="message">Signup completed successfully!<br />
    Your account was created. A copy of your signup information was sent to your email address.</p>
    


    However, for some reason when I try to fill out the form and hit submit, I get a pop-up error saying that I did not enter a username even though I did. Does anyone have any ideas on why this happening?

    PART TWO:

    I need this information that the user enters when they register to be emailed to both them and also the site administrator. What is the best way to do this?
      • 25847
      • 62 Posts
      The following document in the Wiki doesn’t really help me much...

      http://wiki.modxcms.com/index.php/Custom_registration_fields

      Does anyone have any further information on how to do this? I am trying to take this site live tonight and this is the last thing holding me up.
        • 25847
        • 62 Posts
        I have found that if I use the default signup template, the Webuser Registration works perfectly, so obviously my template is breaking things somehow. How do I go about adding these extra information fields?
          • 25847
          • 62 Posts
          Should I be using WebLoginPE rather than the default WebLogin Snippet included with MODx? Would this allow for greater customization?
            • 6726
            • 7,075 Posts
            Definitely yes, I was about to point you in that direction.

            WebloginPE creates a table to store custom fields for web users, which you can then use thanks to placeholders. I never actually used this feature but I think you can achieve what you want for your registration form smiley
              .: COO - Commerce Guys - Community Driven Innovation :.


              MODx est l&#39;outil id
              • 31037
              • 358 Posts
              You could also check eFreg, it is a simple but pretty fast solution.

              http://modxcms.com/forums/index.php/topic,15674.0.html

              It is built "on top" of eForm so you’ll need that snippet too.

              (eFreg is perhaps not a good solution if you don’t know eForm.)
                • 25847
                • 62 Posts
                @davidm

                WebLoginPE is working like a charm for me now that I have it all set up. I am really only having one super tiny issue. Perhaps you may have an idea on this?

                I applied the patch/fix that was mentioned here ---> http://modxcms.com/forums/index.php/topic,18351 so that I could add my custom placeholders to the notification email that gets sent when a user registers on the site. This fix works very well except for one small thing...

                In my &notifyTpl Chunk, I have added the following placeholder:

                Country: [+post.country+]

                This does indeed return a value, however, it is returning the number value for the country that was selected. For instance, if someone picked United States, the notification email reads as:

                Country: 223

                Is there any way that I can get it to properly display the country rather than the numeric code for the country?
                  • 28042 ☆ A M B ☆
                  • 24,524 Posts
                  There is a placeholder view.country that looks like it should be the actual country value and not the numeric key.
                  	$modx->setPlaceholder('view.country', $this->StringForCountryInt($viewUser['country']));

                  Also user.country does the same thing.
                  	$modx->setPlaceholder('user.country', $this->StringForCountryInt($value));
                  

                    Studying MODX in the desert - http://sottwell.com
                    Tips and Tricks from the MODX Forums and Slack Channels - http://modxcookbook.com
                    Join the Slack Community - http://modx.org
                    • 25847
                    • 62 Posts
                    @sottwell

                    So in other words, in my notification template I should be able to do the following?

                    Country: [+user.country+]
                      • 28042 ☆ A M B ☆
                      • 24,524 Posts
                      Should, but I’m not sure of exactly where in the process these placeholders are set. If neither of them work, it’s possible to add a line in the section of the webloginpe.class.php file where the mail is being prepared to adjust that value (around line 686). Just add a line there to run the $value through the function if it’s the country value.
                        Studying MODX in the desert - http://sottwell.com
                        Tips and Tricks from the MODX Forums and Slack Channels - http://modxcookbook.com
                        Join the Slack Community - http://modx.org