Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save kimcoleman/24d8207e01560294afc6777d0f23cde8 to your computer and use it in GitHub Desktop.
Save kimcoleman/24d8207e01560294afc6777d0f23cde8 to your computer and use it in GitHub Desktop.
Adds Billing Address and Shipping Address (via the Shipping Add On) to the Edit User profile, frontend Member Profile Edit, and the Add Member Admin page.
<?php
/*
* Adds Billing Address and Shipping Address (via the Shipping Add On) to the Edit User profile,
* frontend Member Profile Edit, and the 'Add Member' page in the WordPress admin.
*
* 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 add_billing_shipping_fields_to_profile_and_add_member() {
//check for register helper
if ( ! function_exists( 'pmprorh_add_registration_field' ) ) {
return;
}
//define the fields
$fields = array();
// Billing Address fields added to profile (true) and addmember (true).
$fields[] = new PMProRH_Field( 'pmpro_baddress1', 'text', array( 'label' => 'Billing Address 1', 'size' => 40, 'profile' => true, 'required' => false, 'addmember' => true ) );
$fields[] = new PMProRH_Field( 'pmpro_baddress2', 'text', array( 'label' => 'Billing Address 2', 'size' => 40, 'profile' => true, 'required' => false, 'addmember' => true ) );
$fields[] = new PMProRH_Field( 'pmpro_bcity', 'text', array( 'label' => 'Billing City', 'size' => 40, 'profile' => true, 'required' => false, 'addmember' => true ) );
$fields[] = new PMProRH_Field( 'pmpro_bstate', 'text', array( 'label' => 'Billing State', 'size' => 10, 'profile' => true, 'required' => false, 'addmember' => true ) );
$fields[] = new PMProRH_Field( 'pmpro_bzipcode', 'text', array( 'label' => 'Billing Postal Code', 'size' => 10, 'profile' => true, 'required' => false, 'addmember' => true ) );
$fields[] = new PMProRH_Field( 'pmpro_bcountry', 'text', array( 'label' => 'Billing Country', 'profile '=>true, 'required' => false, 'addmember' => true));
$fields[] = new PMProRH_Field( 'pmpro_bphone', 'text', array( 'label' => 'Billing Phone', 'size' => 40, 'profile' => true, 'required' => false, 'addmember' => true ) );
// Shipping Address fields added to addmember (true). These fields are already shown on profile by the Add On.
$fields[] = new PMProRH_Field( 'pmpro_saddress1', 'text', array( 'label' => 'Shipping Address 1', 'size' => 40, 'required' => false, 'addmember' => true));
$fields[] = new PMProRH_Field( 'pmpro_saddress2', 'text', array( 'label' => 'Shipping Address 2', 'size' => 40, 'required' => false, 'addmember' => true));
$fields[] = new PMProRH_Field( 'pmpro_scity', 'text', array( 'label' => 'Shipping City', 'size' => 40, 'required' => false, 'addmember' => true));
$fields[] = new PMProRH_Field( 'pmpro_sstate', 'text', array( 'label' => 'Shipping State', 'size' => 10, 'required' => false, 'addmember' => true ) );
$fields[] = new PMProRH_Field( 'pmpro_szipcode', 'text', array( 'label' => 'Shipping Postal Code', 'size' => 10, 'required' => false, 'addmember' => true));
$fields[] = new PMProRH_Field( 'pmpro_scountry', 'text', array( 'label' => 'Shipping Country', 'required' => false, 'addmember' => true));
$fields[] = new PMProRH_Field( 'pmpro_sphone', 'text', array( 'label' => 'Shipping Phone', 'size' => 40, 'required' => false, 'addmember' => true));
// Add the fields into the profile.
foreach ( $fields as $field ) {
pmprorh_add_registration_field( 'profile', $field );
}
}
add_action( 'init', 'add_billing_shipping_fields_to_profile_and_add_member' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment