Page 1 of 1

Registration fields

PostPosted: July 15th, 2010, 3:30 pm
by gwc_wd
I think this is likely not strictly an S2Member issue, though it is related by way of the registration system.

I've found quite a few posts on registration and profile fields but none exactly about my problem (which makes me think I'm missing something very basic or others would have posted about it.)

I'm running WP+Buddypress both current.

In the WP Profile there are separate fields for User Name, First Name, Last Name and Nick name with the ability to choose which you wish displayed. If these fields are changed in the WP Profile they are displayed properly in BuddyPress. But I see no way to allow users to access these fields in their Edit Profile page in BP or to include them in the BP registration form.

I definitely need the First Name and Last Name fields to be separate as they are in the WP profile and I want to allow users to choose what form of name is displayed.

Is anyone familiar with this issue?

Is there something basic I'm missing about the integration of WP and BP?

Any links to suggested sources or other guidance greatly appreciated.

Re: Registration fields

PostPosted: July 16th, 2010, 1:04 am
by Jason Caldwell
Thanks for the great question.

This is more of a BuddyPress issue. However, I do understand your concern; we've taken a look at this in the past. There is a ticket in place regarding this issue [ http://trac.buddypress.org/ticket/2225 ]

For now ( given the current limitations ), I recommend changing the default "Name" field in BuddyPress, to "First Name", and adding a "Last Name" field using the Profile Fields editor with BuddyPress. Either that, or see if you can find a BuddyPress plugin that implements a work-around for this issue.

Re: Registration fields

PostPosted: July 16th, 2010, 1:47 pm
by gwc_wd
Thanks for that. At least I am able to proceed knowing that it is not actually something I am doing or not doing and that's the main thing -- save me many hours of fiddling. I'll test out the work around you suggest.

Thanks!

Drop-downs in registration form?

PostPosted: July 17th, 2010, 11:46 am
by martonic
Hi Jason,

My client does not need buddypress, but they need 2smember! :mrgreen:

However, they really want the registration form to have drop-down lists ("select" fields) for things like state and country (parts of the mailing address) and month, day, year (parts of the birth date, which they require).

Any suggestions? :?: Thanks in advance!

Re: Registration fields

PostPosted: July 18th, 2010, 2:15 am
by Jason Caldwell
Gotchya. Yea, this is a feature that we're working on as well. Custom Registration Fields are being revamped to support many new features in a future version of s2Member. The hold-up is the UI portion. As you can imagine, the UI for this has to be very inutitive; so we're taking our time on that part.

Until then, you could use Hooks/Filters for s2Member.

Inside /s2member/includes/functions/register-access.inc.php
you will find this function: ws_plugin__s2member_custom_registration_fields()
which integrates several Hooks that you can use to add things of your own ( i.e. custom code ).

Here is an example, which adds a drop down SELECT menu.
( put something like this inside the functions.php for your WP theme )
Code: Select all
<?php

$hook = "ws_plugin__s2member_during_custom_registration_fields_after_last_name";
add_action($hook, "my_custom_fields");
function my_custom_fields($vars = FALSE)
{
echo '<select name="ws_plugin__s2member_custom_reg_field_state">';
echo '<option value="GA">Georgia</option>';
echo '<option value="FL">Flordia</option>';
echo '</select>';
}

$hook = "ws_plugin__s2member_before_configure_user_registration";
add_action($hook, "add_my_custom_fields");
function add_my_custom_fields($vars = FALSE)
{
$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"] .= ",State";
}

?>

Or, if you really need to; you can just make some direct edits inside this file:
/s2member/includes/functions/register-access.inc.php

Re: Registration fields

PostPosted: July 18th, 2010, 11:40 am
by martonic
Hi Jason,

Very helpful, thank you.

Is there a quick way to get at the custom fields (in this case, state) for display elsewhere.

The issue, of course, is that I need the same drop-downs to appear in "Edit User" - with the right items already selected -

.. can you point me to the include file triggered during "edit user" - thanks.

"Select" Registration fields - make visible to admin?

PostPosted: July 21st, 2010, 6:33 pm
by martonic
Hi Jason,

If I add custom_registration_fields using "select" inputs as shown below, how can I make the results visible (or even editable) to Site Administrators? They do not come up on the User - Edit page. Even just making them visible would be useful!

EDIT: **** it does work, no problem! I just have to make sure the custom fields in s2member options are configured to read EXACTLY THE SAME as the ones I add. Fantastic!

Jason Caldwell wrote:Gotchya. Yea, this is a feature that we're working on as well. Custom Registration Fields are being revamped to support many new features in a future version of s2Member. The hold-up is the UI portion. As you can imagine, the UI for this has to be very inutitive; so we're taking our time on that part.

Until then, you could use Hooks/Filters for s2Member.

Inside /s2member/includes/functions/register-access.inc.php
you will find this function: ws_plugin__s2member_custom_registration_fields()
which integrates several Hooks that you can use to add things of your own ( i.e. custom code ).

Here is an example, which adds a drop down SELECT menu.
( put something like this inside the functions.php for your WP theme )
Code: Select all
<?php

$hook = "ws_plugin__s2member_during_custom_registration_fields_after_last_name";
add_action($hook, "my_custom_fields");
function my_custom_fields($vars = FALSE)
{
echo '<select name="ws_plugin__s2member_custom_reg_field_state">';
echo '<option value="GA">Georgia</option>';
echo '<option value="FL">Flordia</option>';
echo '</select>';
}

$hook = "ws_plugin__s2member_before_configure_user_registration";
add_action($hook, "add_my_custom_fields");
function add_my_custom_fields($vars = FALSE)
{
$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"] .= ",State";
}

?>

Or, if you really need to; you can just make some direct edits inside this file:
/s2member/includes/functions/register-access.inc.php

Re: Registration fields

PostPosted: July 22nd, 2010, 6:21 pm
by Jason Caldwell
Thanks for reporting back on this. Much appreciated.
~ Please let me know if you have this resolved;
or if there is a question you had that is still unanswered.

Registration - hooks, notifications and custom fields

PostPosted: July 23rd, 2010, 10:38 am
by martonic
Hi again Jason,

Thanks in advance for looking at my questions.

1) Are "Custom Registration Fields" passed through API Notifications - Registration?

If so, how can I send and receive them?

2) The following hook:

ws_plugin__s2member_during_handle_profile_modifications
(in functions/profile_modification_inc.php)

--> is this invoked BOTH when a user modifies their own profile, and when an administrator does it?

If not, what do I need to use to catch both cases?

Thanks! :mrgreen:

Re: Registration fields

PostPosted: July 23rd, 2010, 11:21 am
by martonic
Ah, I'm having another problem.

I put in two custom registration drop-downs using the hook method.

Then, if I add the same fields in s2Member General Options - Custom Registration Fields, they can be modified - but they appear TWICE on the registration page. If I don't add them, they can't be modified during Profile Modifications - also a problem.

Any thoughts?

Re: Registration fields

PostPosted: July 23rd, 2010, 1:02 pm
by martonic
Hi again,

It seems that if I want to have drop-downs on the registration page, I have to keep everything related to those fields in lower-case letters. I also hacked register-access.inc.php so it would not request duplicate information. Then, it works okay.

However, I can't find a hook that will deliver all of the registration information, including custom registration field values as entered by the end user (whether I'm using drop-downs, or not). Is there a hook that I can use for this?

Thanks, Marty

Re: Registration fields

PostPosted: July 27th, 2010, 8:26 pm
by johnny g
I have not added ANY custom fields but my registration page does not show up. I know for several reason;
(1) just attempted to go there, and (2) I have had 3 users from old site attempt to register and they can not.

Any help-

Johnny G.
http://beatthestreets.1urbanwarrior.com

Re: Registration fields

PostPosted: July 28th, 2010, 7:20 am
by Jason Caldwell
martonic wrote:Hi again,

It seems that if I want to have drop-downs on the registration page, I have to keep everything related to those fields in lower-case letters. I also hacked register-access.inc.php so it would not request duplicate information. Then, it works okay.

However, I can't find a hook that will deliver all of the registration information, including custom registration field values as entered by the end user (whether I'm using drop-downs, or not). Is there a hook that I can use for this?

Thanks, Marty

Hi Marty. You might take a look in your WP Dashboard, under:
s2Member -> API Scripting -> API Contants

Code: Select all
S2MEMBER_CURRENT_USER_FIELDS
This will always be a JSON encoded array, in (string) format. An empty JSON encoded array, in (string) format, if not logged in. This JSON encoded array will contain the following fields: id, ip, email, login, first_name, last_name, display_name, subscr_id, custom. If you've configured additional Custom Fields, those Custom Fields will also be added to this array. For example, if you configured the Custom Field: Street Address, it would be included in this array as: street_address. Custom Field references are converted to lowercase format, and spaces are replaced by underscores. You can do print_r(json_decode(S2MEMBER_CURRENT_USER_FIELDS, true)); to get a full list for testing.

<?php $fields = json_decode(S2MEMBER_CURRENT_USER_FIELDS, true); ?>
<?php echo $fields["first_name"]; ?> <?php echo $fields["last_name"]; ?>
This would output the first and last name for the current user.

Custom Fields are also included in the JSON decoded array.
<?php print_r(json_decode(S2MEMBER_CURRENT_USER_FIELDS, true)); ?>
( Displays a full list of all associative array elements. )

Either that, or just do this in PHP code:
Code: Select all
<?php
$user = wp_get_current_user();
$fields = get_usermeta($user->ID, "s2member_custom_fields");
print_r($fields);
?>

Let me know if that does NOT answer your question. I was not entirely sure what you meant by "deliver".

Re: Registration fields

PostPosted: July 28th, 2010, 11:27 am
by martonic
Hi Jason,

Thanks for your answer. I found an easy way to get the custom fields after using a "Registration" notification.

Here it is:

Code: Select all
// get custom registration fields set by s2member
$telephone = "";
$address   = "";
$gender    = "M";
$year      = 1900;

$key = "s2member_custom_fields";
$fields = get_user_meta($wp_id, $key, false);

@$gender    = $fields[0]["gender"];
@$year      = $fields[0]["birthyear"];
@$address   = $fields[0]["mailing_address"];
@$telephone = $fields[0]["telephone"];


However, I still had to hack register-access.inc.php to prevent it from showing duplicate input rows for the gender and year fields that were "hooked" in to present them as select items.

Re: Registration fields

PostPosted: July 29th, 2010, 2:13 pm
by Jason Caldwell
Thanks for the feedback Martonic.

@TODO :: Check the register-access-inc.php routines to see if they can be adjusted for more greater flexibility in this regard. Completed / s2Member v3.5+.

Re: Registration fields

PostPosted: July 29th, 2010, 6:30 pm
by johnny g
okay guys, it's nice that all you gentlemen read, write and talk php. But I am a self-defense instructor and studying to be a video journalist. My computer language skills go no higher than basic html.. The analogy is high school to master degree or a rookie street punk compared to an experienced combat vet.

If I can not control and get registration to function properly-since this is a membership site-the software does me no good.

THIS MAKES ME SAD, as I am not a rich man.

How about a little cooperation here.

Sincerely Johnny G

Re: Registration fields

PostPosted: July 29th, 2010, 7:23 pm
by martonic
Hi Johnny,

In your Admin Dashboard, look at S2Member -> General Options -> Open Registration / Free Subscribers.

Make sure it is set to YES (allow open registration / free subscribers)

Please let us know if this does any good.

Otherwise, can you post a link to your site?

Regards, Marty (budding s2Member user)

Re: Registration fields

PostPosted: July 29th, 2010, 8:15 pm
by johnny g
hey, thanks for the reply. My brother that is one of the first things I did and double checked. The wierd thing is the first day several were able to accomplish it but since than, I have been in contact with several that can not through contact form.

I have no problem loging out and entering back in either, so I have know idea what's happening.

Re: Registration fields

PostPosted: July 29th, 2010, 8:31 pm
by martonic
Well, post a link so we can have a look.

Re: Registration fields

PostPosted: July 30th, 2010, 12:50 pm
by johnny g

Re: Registration fields

PostPosted: July 30th, 2010, 1:18 pm
by martonic
Hi, here is the URL for your registration page:

http://beatthestreets.1urbanwarrior.com/wp-login.php?action=register

I see a link to this on your membership options page.

However, you have made ALL FIELDS REQUIRED, including even "Website URL".

This will definitely make it hard for people to register.

Got to s2member -> General Options -> Custom Registration Fields and remove some of those * symbols that are forcing all of your registration fields to be REQUIRED.

Re: Registration fields

PostPosted: July 30th, 2010, 10:55 pm
by johnny g
yeah, this time I saw it also.

I have removed astericks from website Url,city and state, left them on zip,just because I like to chart where members will becoming from regionally.

You think this will work okay than?

Thanks for the insight.

Re: Registration fields

PostPosted: July 31st, 2010, 6:54 pm
by martonic
Hi Johnny,

As long as your users can find the Registration Page, and don't mind entering zip codes, it should work. Good luck with this! Cheers, Marty