Skip to content

Instantly share code, notes, and snippets.

@kerijacoby
Forked from kimwhite/my-pmpro-custom-fields.php
Last active October 27, 2022 19:50
Show Gist options
  • Save kerijacoby/4e3c254a017b8ba07375578480ec9b37 to your computer and use it in GitHub Desktop.
Save kerijacoby/4e3c254a017b8ba07375578480ec9b37 to your computer and use it in GitHub Desktop.
NRGSCapps Custom Registration Fields
<?php // do not copy this line.
/**
* This recipe creates custom fields for your PMPro checkout page.
*
* You can add this recipe to your site by creating a custom plugin
* or using the Code Snippets plugin available for free in the WordPress repository.
* Read this companion article for step-by-step directions on either method.
* https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
function my_pmprorh_custom_fields() {
// 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(
'birthday›', // input field name, used as meta key
'date', // field type
array(
'label' => 'Your Birthday', // field label
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => true, // make field required
)
);
// TEXT FIELD
$fields[] = new PMProRH_Field(
'spouse_name', // input field name, used as meta key
'text', // field type
array(
'label' => 'Spouse/Partner Name *If you are a single parent list a child here', // display custom label, if not used field name will be used
'levels' => array( 2 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => true, // make field required
)
);
$fields[] = new PMProRH_Field(
'spouse_birthday', // input field name, used as meta key
'date', // field type
array(
'label' => 'Spouse/Partner Birthday', // field label
'levels' => array( 2 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => false, // make field required
'class' => 'css_class_name', // custum class for input field
'divclass' => 'css_class_name_for_div', // custom class for container div
)
);
// Additional Family #1
$fields[] = new PMProRH_Field(
'family1_name', // input field name, used as meta key
'text', // field type
array(
'label' => 'Family Member #1 Name', // display custom label, if not used field name will be used
'levels' => array( 2 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => false, // make field required
'class' => 'family_name', // custum class for input field
'divclass' => 'family_name', // custom class for container div
)
);
$fields[] = new PMProRH_Field(
'family1_birthday', // input field name, used as meta key
'date', // field type
array(
'label' => 'Family Member #1 Birthday', // field label
'levels' => array( 2 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => false, // make field required
'class' => 'family_bday', // custum class for input field
'divclass' => 'family_bday', // custom class for container div
)
);
// End Additional Family #1
// Additional Family #2
$fields[] = new PMProRH_Field(
'family2_name', // input field name, used as meta key
'text', // field type
array(
'label' => 'Family Member #2 Name', // display custom label, if not used field name will be used
'levels' => array( 2 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => false, // make field required
'class' => 'family_name', // custum class for input field
'divclass' => 'family_name', // custom class for container div
)
);
$fields[] = new PMProRH_Field(
'family2_birthday', // input field name, used as meta key
'date', // field type
array(
'label' => 'Family Member #2 Birthday', // field label
'levels' => array( 2 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => false, // make field required
'class' => 'family_bday', // custum class for input field
'divclass' => 'family_bday', // custom class for container div
)
);
// Additional Family #3
$fields[] = new PMProRH_Field(
'family3_name', // input field name, used as meta key
'text', // field type
array(
'label' => 'Family Member #3 Name', // display custom label, if not used field name will be used
'levels' => array( 2 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => false, // make field required
'class' => 'family_name', // custum class for input field
'divclass' => 'family_name', // custom class for container div
)
);
$fields[] = new PMProRH_Field(
'family3_birthday', // input field name, used as meta key
'date', // field type
array(
'label' => 'Family Member #3 Birthday', // field label
'levels' => array( 2 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => false, // make field required
'class' => 'family_bday', // custum class for input field
'divclass' => 'family_bday', // custom class for container div
)
);
// End Additional Family #3
// Additional Family 4
$fields[] = new PMProRH_Field(
'family4_name', // input field name, used as meta key
'text', // field type
array(
'label' => 'Family Member #4 Name', // display custom label, if not used field name will be used
'levels' => array( 2 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => false, // make field required
'class' => 'family_name', // custum class for input field
'divclass' => 'family_name', // custom class for container div
)
);
$fields[] = new PMProRH_Field(
'family4_birthday', // input field name, used as meta key
'date', // field type
array(
'label' => 'Family Member #4 Birthday', // field label
'levels' => array( 2 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => false, // make field required
'class' => 'family_bday', // custum class for input field
'divclass' => 'family_bday', // custom class for container div
)
);
// ONE day pass FIELD
$fields[] = new PMProRH_Field(
'member_host_name', // input field name, used as meta key
'text', // field type
array(
'label' => 'Name of the NRGSC Member who is your host for the day', // display custom label, if not used field name will be used
'levels' => array( 3 ), // levels to display field for
'profile' => true, // show on profile
'memberslistcsv' => true, // include when using export members to csv
'addmember' => true, // include when using add member from admin
'required' => true, // make field required
)
);
// CHECKBOX
$fields[] = new PMProRH_Field(
'renewing_member', // input field name, used as meta key
'checkbox', // field type
array(
'label' => 'Check this box if you are a renewing member',
'levels' => array( 1, 2 ), // levels to show this field
'profile' => true,
'memberslistcsv' => true,
'addmember' => true,
)
);
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_custom_fields' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment