Skip to content

Instantly share code, notes, and snippets.

@ideadude
Created June 29, 2018 14:07
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ideadude/7ec7373a747b9f627f8e3fd216b2c35d to your computer and use it in GitHub Desktop.
Save ideadude/7ec7373a747b9f627f8e3fd216b2c35d to your computer and use it in GitHub Desktop.
Example of defining PMPro Register Helper Fields Synchronized to BuddyPress XProfile Fields
/**
* Based on the Register Helper example.
* We've added a "buddypress" option for each field
* set to the XProfile name we used when setting up
* the fields in the BuddyPress extended profile.
* If the PMPro BuddyPress Add On is activated
* then the fields will be synchronized.
* Register Helper: https://www.paidmembershipspro.com/add-ons/pmpro-register-helper-add-checkout-and-profile-fields/
* PMPro BuddyPress: https://www.paidmembershipspro.com/add-ons/buddypress-integration/
*/
function my_pmprorh_init()
{
//don't break if Register Helper is not loaded
if(!function_exists( 'pmprorh_add_registration_field' )) {
return false;
}
//define the fields
$fields = array();
$fields[] = new PMProRH_Field(
'company', // input name, will also be used as meta key
'text', // type of field
array(
'buddypress'=> 'Company', // XProfile Field Name <-- !!!
'label' => 'Company', // custom field label
'size' => 40, // input size
'class' => 'company', // custom class
'profile' => true, // show in user profile
'required' => true, // make this field required
'levels' => array(1,2) // only levels 1 and 2 should have the company field
)
);
$fields[] = new PMProRH_Field(
'referral', // input name, will also be used as meta key
'text', // type of field
array(
'buddypress'=> 'Referreral' // XProfile Field Name <-- !!!
'label' => 'Referral Code', // custom field label
'profile' => 'only_admin' // only show in profile for admins
)
);
//add the fields into a new checkout_boxes are of the checkout page
foreach($fields as $field)
pmprorh_add_registration_field(
'checkout_boxes', // location on checkout page
$field // PMProRH_Field object
);
//that's it. see the PMPro Register Helper readme for more information and examples.
}
add_action( 'init', 'my_pmprorh_init' );
@grifini
Copy link

grifini commented May 3, 2019

Hey,
The problem with the code is;
1- when I use profile=>'only admin' or 'only', it never shows that particular field.
2- if I use profile=> true , it duplicates the field one is generated in profile and the other is made in extended profile for user.
3- if I use profile=> false, it stops duplicating but does not help with profile visibility.
4-Profile visibility is not affected through changes via buddypress profile fields.
I could not solve it so far. So, if you come up with any solution please let me know. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment