Search Results for 'profile fields'
-
AuthorSearch Results
-
December 19, 2013 at 2:04 pm #175772
In reply to: Error: Missing argument 2 for wpdb::prepare
Shmoo
ParticipantIt’s my theme and I code WordPress themes for like 5 years now but I don’t see myself as a Developer it’s more a hobby 🙂
I’m solid at HTML-CSS and can read PHP when I see it happen but I can’t write PHP it out of the box.
This error shows up when I try to hide a complete xProfile-group-ID or just an unique xProfile-field-ID from the loop.
This is what I did.
Inside: my-theme/buddypress/members/single/profile/profile-loop.php
I found the start of the loop<?php if ( bp_has_profile() ) : ?> ....My first thought was, maybe there are default options here to control the output of which ID’s will be visible so I started the search how the bp_has_profile() was build and looked into plugins/buddypress/bp-xprofile/bp-xprofile-template.php and found this at line 150:
.... $defaults = array( 'user_id' => bp_displayed_user_id(), 'profile_group_id' => false, 'hide_empty_groups' => true, 'hide_empty_fields' => $hide_empty_fields_default, 'fetch_fields' => true, 'fetch_field_data' => true, 'fetch_visibility_level' => $fetch_visibility_level_default, 'exclude_groups' => false, // Comma-separated list of profile field group IDs to exclude 'exclude_fields' => false // Comma-separated list of profile field IDs to exclude );This looks very familiar to bbPress so my first thoughts was lets try to add one of those Array’s to the loop and overwrite the default value.
Just like this.<?php if ( bp_has_profile( array ( 'exclude_groups' => 1 ) ) ) : ?> ...This works perfect, it hides all xProfile-fields from the first Base primary Tab (back-end). Just like I wanted it because I didn’t want all the fields to show up front-end, I’ve got a few xProfile-fields that I use for user-customization of the profile-page. Each user can add color-codes to change the default menu-color and add background-images to their profile-page to make each profile a little more unique.
Those field-ID’s are just urls or color-codes and don’t have to be visable to the public, thats why I try to hide them front-end.
December 17, 2013 at 10:02 pm #175668modemlooper
ModeratorThis code is just a start, I did not test to see if field groups will break it but you can get an example of spitting out fields as an object array variable on profile load and then using the variable to get the values instead of requesting each time.
put this in bp-custom.php
// creates global object array from profile fields function bp_profile_fields_array() { global $fields; $fields = array(); if ( bp_has_profile() ) : while ( bp_profile_groups() ) : bp_the_profile_group(); if ( bp_profile_group_has_fields() ) : while ( bp_profile_fields() ) : bp_the_profile_field(); if ( bp_field_has_data() ) : $field_name = bp_get_the_profile_field_name(); $field_value = bp_get_the_profile_field_value(); $field = array( 'field_name' => $field_name, 'field_value' => $field_value, ); $fields[] = $field; endif; endwhile; endif; endwhile; endif; return $fields; } add_action( 'bp_before_member_header', 'bp_profile_fields_array' ); // echoes value of field from object array based on param function bp_get_single_profile_field( $param ) { global $fields; foreach ( $fields as $key => $val ) { if ( $val['field_name'] === $param ) { echo $val['field_value']; } } }Then in your member templates:
<?php bp_get_single_profile_field('PROFILE FIELD NAME'); ?>December 17, 2013 at 4:35 pm #175655Shmoo
ParticipantIn the profile-loop.php ( members/single/profile )
Instead of this loop.
<?php while ( bp_profile_fields() ) : bp_the_profile_field(); ?> <?php if ( bp_field_has_data() ) : ?> <tr<?php bp_field_css_class(); ?>> <td class="label"><?php bp_the_profile_field_name(); ?></td> <td class="data"><?php bp_the_profile_field_value(); ?></td> </tr> <?php endif; ?> <?php do_action( 'bp_profile_field_item' ); ?> <?php endwhile; ?>December 17, 2013 at 3:06 pm #175645Shmoo
ParticipantI know, but what if I duplicated the code above for all 20 profile fields ?
– country
– about
– gender
– ageI would like to know how bad this would be for performance on the site, from my understanding it has something to do with Database Query’s ?
Trying to make a Tab view of the profile info, on the first tab I would like to show all general stuff and on the second tab I would like to show work info + social media options.
December 17, 2013 at 9:48 am #175632Henry
MemberHi @macpresss
What do you mean by ‘export all profile fields by a conditional tag’?
Doing what you’ve done above is good practice because if Country is an optional field and it has not been completed by the member then nothing will be outputted:
<?php if ( $data = bp_get_profile_field_data( 'field=Country ' ) ) : ?> <!-- do something --> <?php endif ?>If you’re doing something with a single profile field then there is no need to loop through them all. It’s basically wasted effort and slower performance.
December 9, 2013 at 9:22 am #175308danbp
Participanthi @matt-mcfarland,
i’m not a dev but consider this, to get a user ID:
$user_id = bp_get_member_user_id();To answer the sql question, here’s a function that doesn’t exist in buddypress, which let you get the xprofile_group name by it’s ID For inspiration…
function bpfr_get_xprofile_group_id_by_name( $name = '' ) { global $wpdb; $bp = buddypress(); if( empty( $name ) ) return false; return $wpdb->get_var( $wpdb->prepare( "SELECT id FROM {$bp->profile->table_name_groups} WHERE name = %s", $name ) ); }For the output, you have to create another function containing at least:
$user_id = bp_get_member_user_id(); $xprofile_group_id = bpfr_get_xprofile_group_id_by_name( 'the groupe name' ); if( !class_exists( 'BP_XProfile_Group' ) ) return false; $args = array( 'profile_group_id' => $xprofile_group_id, 'user_id' => $user_id, 'fetch_fields' => true, 'fetch_field_data' => true );May this help you !
December 8, 2013 at 12:55 pm #175261In reply to: Passing user role to custom xprofile field
Henry
MemberHi @noizeburger, glad you finally got this working. I’m sure your tutorial will be helpful to many people too. I especially like the last snippet which shows you how to disable the editing of certain fields on the edit profile screen!
December 6, 2013 at 11:53 am #175184adamjd
ParticipantStill no easy solution to this one? It’s odd that BP has been around for so long and more people aren’t having an issue with the extra profile fields not being sent upon registration.
December 4, 2013 at 2:44 pm #175130In reply to: Custom Homepage. Please help
koendb
ParticipantCould for instance add dropdown boxes with categories to users extended profile pages.
Get the value of those profile fields from your home template and use it in a query.December 4, 2013 at 12:25 pm #175121In reply to: Passing user role to custom xprofile field
noizeburger
ParticipantHi again, @henrywright-1
just wanted to let you know, that I’ve requested some help from the developer of BP Custom xprofile Fields – donmik
I asked him, if it is possible, to use a custom xprofile field (selectbox) to choose the user role and pass it over to wordpress. He gave me this function or – you can say – hint:
function custom_bp_core_signup_user($user_id) { $user_role = strtolower(xprofile_get_field_data('NAME OF THE XPROFILE FIELD', $user_id)); switch($user_role) { case "role 1": $new_role = 'Contributor'; break; case "role 2": $new_role = 'Author'; break; default: case "role 3": $new_role = 'Suscriber'; break; } wp_update_user(array( 'ID' => $user_id, 'role' => $new_role )); } add_action( 'bp_core_signup_user', 'custom_bp_core_signup_user', 10, 1);I put this code in my bp-custom.php, but it does not work. I think there’s something missing. Maybe you have an idea, or @modemlooper?
December 3, 2013 at 4:30 pm #175090In reply to: edit profile fields missing
shanebp
Moderator>Wow, so basically in order for members to have access to edit all of the fields that they entered while signing up, we have to pay for a custom plugin to get access to those fields?
Let me repeat:
They are accessed on the front-end on a member’s profile page.
your-site.com/members/peteratomic/profile/If it’s your profile or you are an admin, you will clearly see an ‘Edit’ button.
>Utterly mind-boggling why this functionality isn’t built in to BP.
It is built into BP.December 3, 2013 at 3:14 pm #175085In reply to: edit profile fields missing
shanebp
Moderator> they’re totally inaccessible afterward
They are accessed on the front-end on a member’s profile page.
your-site.com/members/peteratomic/profile/>Clicking the “your profile” link in the backend brings up a page
In the Dashboard, that link takes you to the DashBoard > User > Edit screen which is a standard WordPress screen.
If you want to view and edit BuddyPress Extended Profile fields on that screen,
then you might be interested in this premium plugin:
http://www.philopress.com/products/bp-dashboard-user-profile-edit/December 3, 2013 at 1:27 pm #175081In reply to: edit profile fields missing
peteratomic
ParticipantP.S. I found profile-wp.php and deleted out the fields in my custom template that I don’t want to display, but they still show up. LOST.
December 3, 2013 at 12:10 am #175053In reply to: Linking Front End Fields to Back End Fields
shanebp
ModeratorWe have a premium plugin that shows xprofile fields on the User > Edit screen in the Dashboard:
http://www.philopress.com/products/bp-dashboard-user-profile-edit/
November 30, 2013 at 10:32 am #174991glyndavidson
ParticipantThanks @mercime. Am I right in thinking then, that out of the box, the normal functionality is to have buddypress extended-profile-fields, groups, and member-lists shared across the network?
I.e. if an admin deletes a group or profile-field from a child-blog, it effects the entire network?
And, there’s nothing I can do to prevent this without a third party plugin or my own hacks?
November 29, 2013 at 9:51 pm #174973In reply to: Bulk edit xprofile field
Paul Wong-Gibbs
KeymasterNo direct way of bulk-editing profile fields; sounds dangerously powerful. If you are a PHP/WordPress developer, or know someone who is, I’d suggest writing a script to make these changes for you.
November 28, 2013 at 10:19 am #174926In reply to: Shortcode use in profile fields
Hugo Ashmore
ParticipantYou could do this by adding a conditional check around the tr markup in the while loop that generates the field name and data
while ( bp_profile_fields() ) : bp_the_profile_field();With that check in place you would then remove the
bp_the_profile_field_value()function and replace it with something likeecho do_shortcode( '[myshortcode user_id=' . bp_displayed_user_id() '] );November 27, 2013 at 11:49 pm #174906auch07
ParticipantNot utilizing the profile search plugin alone. If you were using a custom registration form like Gravity Forms Registration you could create additional profile groups with the fields worded how you want and the gravityforms registration could automatically update both sets of profile fields accordingly to how you set them up.
November 23, 2013 at 10:58 pm #174699In reply to: Member Search
auch07
ParticipantUpon further reflection what I had thought would work in fact does not. Does anyone know how I could string together a search for the 2 fields? The issue isn’t the member type itself its that the member types both have profile fields with the same value in it. (IE: Childcare)
So searching /members/?s=Childcare will return both Employers and Jobseekers that have selected childcare. I would like to be able to filter those results between Employers and Jobseekers.
November 21, 2013 at 9:32 pm #174646In reply to: HTML filtering of profile feilds
Henry
MemberTo my knowledge, profile fields accept HTML. Have you tried inserting tags to see? try adding
<strong>test</strong>to a profile field to see if the text is bolded.November 21, 2013 at 12:11 pm #174619In reply to: Passing user role to custom xprofile field
noizeburger
ParticipantHi @henrywright-1 again,
your logic is right, but I wanted to avoid editing templates. That’s the reason why I use Buddypress xprofiles acl plugin. This makes it possible to choose which role can see and use the different profile tabs. For the music embed I use BP Profile Widgets, the needed input fields are only visible to members with the userrole “band”, all other members can only see the output of the widget – music.
Your last post makes me think about other things that could be done beside those plugins I use, but that goes too far at the moment. As I tried to explain before, the really important thing about passing over the roles to xprofile-fields would be the possibility to show the roles for each member in a searchable and clickable way that always leads the user to the right member-directory.
Maybe you have more ideas, however, thanks for your ideas and help.November 20, 2013 at 4:41 am #174519In reply to: 2.0 top features – ideas
Martyn_
Participant* Better options for users to self delete
Expanding. Without backend access, it would be nice for a site allow a user to delete in several ways. Purge all their profile fields and networks (‘destroy all personal data’), Retain their profile fields and networks whilst making it look like they have vanished (‘hide’ if you like), Delete Uterly.
* Multiple networks. We have friends, and with plugins one sided friendships (aka followers). sometimes its useful to have different types of relationships identified – “close friends” or “have done business with” or “merely online buddies”. It would be nice for an admin to be able to define additional types of friendships either independently, or by associating a scale (an integer valued friendship, 1=I want to see your feed stuff 2=online mates 3=actual real life chums 4=we’re married).
November 19, 2013 at 7:53 pm #174474In reply to: Passing user role to custom xprofile field
noizeburger
ParticipantThank you @henrywright-1,
this would be a nice alternative to my own approach, but what about my original idea? Remember you asked the same question in another thread few weeks ago.
If there would be a way to pass over the different user-roles to xprofile-fields there would be no need to create templates. You could output the field in the member-loop and make it searchable. This would be the simplest way. What do you think about it?
As an example: a user registers on my site as “band” (which is a wordpress user role). The selected field would be inserted into a (maybe) hidden xprofile-field also called “profiletype”. This field could be echoed everywhere inside buddypress (clickable, searchable). I know this could be done with only xprofile-fields too, but without the possiblity to use bp-xprofile-acl an the advantage of different user capabilities. Am I clear?
November 19, 2013 at 1:25 pm #174451In reply to: Passing user role to custom xprofile field
Henry
Member@noizeburger I think I get what you mean. To show all members of type ‘fan’ in a “fan directory” you would do this
<?php $fans = get_users( array( 'role' => 'fan' ,'fields'=>'ID') ); $fans = implode( ',', $fans ); if ( bp_has_members( '&include=' . $fans ) ) : while ( bp_members() ) : bp_the_member(); // you can output whatever you like here such as member name, avatar, role and so on // we will output just member name for now echo bp_member_name(); endwhile; else: echo 'Sorry, no fans'; endif; ?>November 17, 2013 at 8:04 pm #174355In reply to: Member Profile Meta Key Value
hughshields
ParticipantThe WPUF Pro plugin uses a field they are calling “Meta Key” on each of their user registration fields. The BP Integration Add On maps each of the custom registration fields to the Buddypress XProfile field. Unfortunately the value in the Meta Key field seems to be not syncing with whatever value Buddypress assigns to member profile fields. So I end up with two sets of member profile fields that are not updating correctly.
So I am trying to locate the naming convention for Buddypress Extended profile fields or find out what each field is called. What the user meta value is I guess?
I am installing PHP MyAdmin and will try to find there but hoped there was a naming convention or place to see this in the Admin. -
AuthorSearch Results