I just loaded the code into an editor, and reformatted for clarity
<?php
/*
Plugin Name: jbs_own_plugin
(etc....)
*/
add_filter( 'get_profile_info_keys',
array('user_email' => array(1, __('Email')),
'user_url' => array(0, __('Website')),
'from' => array(0, __('Location')),
'occ' => array(0, __('Occupation')),
'interest' => array(0, __('Interests')),
'extra' => array(0, __('Extra'))));
?>
Basically, it was missing a closing ) and semi-colon on the line. I cant promise that it does exactly what you are after, but this ought to solve the PHP syntax error. Good luck.
Thanks, Paul,
That corrected it to the point that it was happy with it and allowed it to activate.
Unfortunately, the impact of the thing was that other than the passwords the fields and their content disappared from the Profile and Edit Profile pages, so there’s obviously a bit more to ardentfrost’s approach other than this so far (as I’m sure you corrected the code right), if you or anyone else know what it needs? It seemed to be an officially approved approach to doing the thing on that other forum page.
So I’ve de-activated it for now, and fortunately the fields and their content were still there and returned.
Thanks again, Paul.
James
I lifted the following list from functions.bb-core.php
where bbPress defines the set of fields that should make up the user profile:
'first_name' => array(0, __('First name')),
'last_name' => array(0, __('Last name')),
'display_name' => array(1, __('Display name as')),
'user_email' => array(1, __('Email'), 'email'),
'user_url' => array(0, __('Website'), 'url'),
'from' => array(0, __('Location')),
'occ' => array(0, __('Occupation'), 'role'),
'interest' => array(0, __('Interests'))
If you want any of these fields to appear in your custom profile, you will need to add them to the list of fields you were building. Basically, the filter in your plugin takes over defining the definitive list that will be used, not a list of additions above-and-beyond the defaults given by bbPress … least I think that is what the code is telling me!
What you are saying, basically, is instead of using the built in profile form use mine. So you need to replicate it then add anything, or take out anything you want.
I’ve done that on my site so people can put in a visible email field for others to contact them, and added an explanation for the signup page.
function extra_profile_keys() {
return apply_filters(
'extra_profile_keys', array(
'first_name' => array(0, __('First name')),
'last_name' => array(0, __('Last name')),
'display_name' => array(1, __('Display name as')),
'user_email' => array(1, __('Email'), 'email'),
'user_url' => array(0, __('Website'), 'url'),
'from' => array(0, __('Location')),
'occ' => array(0, __('Occupation'), 'role'),
'interest' => array(0, __('Interests')),
'visible_email' => array(0, __('Visible Email')),
) );
}
function add_descriptions() {
echo '<fieldset><legend>'.__("Visible Email").'</legend>';
echo '<p>'.__("<span style="font-size: 1.2em;">Visible Email allows you to place an email address so others can contact you. This is visible to ALL!</span><br/>e.g. <span style="font-weight: bold;">meATexampleDOTcom</span>").'</p>';
echo '</fieldset>';
}
// hooks
add_filter('get_profile_info_keys', 'extra_profile_keys');
add_action('extra_profile_info', 'add_descriptions',10);
What I haven’t figured out is how to create checkboxes and other form elements instead of just fields.
That’s great! That’s brilliant Tom, thanks very much. I was obviously missing a few commands there!
Thanks both of you, you just made a lot of integral practitioners very happy with their new found ability to register what they’re doing with their practice for mind, body, spirit and shadow on their new forum. Here’s the handiwork in action: http://wholelifewholeworld.com/forums/profile/james-blacker
Presumably if I changed (or removed) the spelling of the codes in the names (not that I will), it would break and any info people had put in previously would be lost.
And I’ve increased the number parameter at the end of your add_action(‘extra_profile_info’, ‘add_descriptions’,15); – even I could work out that was important.
Tom, if you’re on a roll, do you have an insight for the one I posted on why linking poster names to their Profile doesn’t support usernames with spaces? Presumably you’ve linked Posts to people’s Profiles on your forum having done the extra work to modify your own profile pages?: https://bbpress.org/forums/topic/are-usernames-with-spaces-sensible
Thanks again, both, greatly appreciated.
Cheers, James.
PS. Paul, no relation to my colleague, Gary Hawke, presumably? http://integral-uk-symposium.wholelifewholeworld.com/meet-the-people/gary-hawke/
Presumably if I changed (or removed) the spelling of the codes in the names (not that I will), it would break and any info people had put in previously would be lost.
Only if you changed the name of the value. i.e.
'first_name' => array(0, __('What do they call you?')),
should be fine, as long as the first_name stays intact.
And I’ve increased the number parameter at the end of your add_action(‘extra_profile_info’, ‘add_descriptions’,15); – even I could work out that was important.
That number is the priority that the function should get in relation to everything else that’s loading on the page. Read about that here: https://codex.wordpress.org/Function_Reference/add_action
My code, btw, was at point got from this forum somewhere, so I can’t take credit for it. But it shows that anything in the functions.bb-pluggable.php file is easily replaced or manipulated.
Thanks, Tom. Just having a read of the codex now.
Cheers,
James
Ah, I’ll change that back to 10 then.
Currently I am aiming to do a similar thing. Did they truly not implement a way to add onto a current filter. because if this is true that means that if you have more than 1 plug in modifying profile fields won’t they overwrite eachother’s changes?
Sweet I think I found a way. Not plugin submit worthy yet. But I will be adding one. Look for one in about 1 month . If you don’t see 1 bother me on Twitter. Same username (Just @ me)