1. Home
  2. Docs
  3. Developer Guide
  4. Miscellaneous and Snippet...
  5. Add Address Fields To Registration Form

Add Address Fields To Registration Form

add_filter('propertyhive_user_details_form_fields', 'add_address_fields');
function add_address_fields( $fields )
{
    if ( is_user_logged_in() )
    {
        $current_user = wp_get_current_user();

        if ( $current_user instanceof WP_User )
        {
            $contact = new PH_Contact( '', $current_user->ID );
        }
    }

    $fields['address_name_number'] = array(
        'type' => 'text',
        'label' => __( 'House Name / Number', 'propertyhive' ),
        'required' => false
    );
    if ( is_user_logged_in() && $current_user instanceof WP_User )
    {
        $fields['address_name_number']['value'] = $contact->address_name_number;
    }

    $fields['address_street'] = array(
        'type' => 'text',
        'label' => __( 'Street', 'propertyhive' ),
        'required' => false
    );
    if ( is_user_logged_in() && $current_user instanceof WP_User )
    {
        $fields['address_street']['value'] = $contact->address_street;
    }

    $fields['address_two'] = array(
        'type' => 'text',
        'label' => __( 'Address Line 2', 'propertyhive' ),
        'required' => false
    );
    if ( is_user_logged_in() && $current_user instanceof WP_User )
    {
        $fields['address_two']['value'] = $contact->address_two;
    }

    $fields['address_three'] = array(
        'type' => 'text',
        'label' => __( 'Town / City', 'propertyhive' ),
        'required' => false
    );
    if ( is_user_logged_in() && $current_user instanceof WP_User )
    {
        $fields['address_three']['value'] = $contact->address_three;
    }

    $fields['address_four'] = array(
        'type' => 'text',
        'label' => __( 'County', 'propertyhive' ),
        'required' => false
    );
    if ( is_user_logged_in() && $current_user instanceof WP_User )
    {
        $fields['address_four']['value'] = $contact->address_four;
    }

    $fields['address_postcode'] = array(
        'type' => 'text',
        'label' => __( 'Postcode', 'propertyhive' ),
        'required' => false
    );
    if ( is_user_logged_in() && $current_user instanceof WP_User )
    {
        $fields['address_postcode']['value'] = $contact->address_postcode;
    }
    
    // Assumes you have an additional field setup using the Template Assistant add on called 'Pets'
    $fields['pets'] = array(
        'type' => 'checkbox',
        'label' => __( 'Pets', 'propertyhive' ),
        'required' => false
    );
    if ( is_user_logged_in() && $current_user instanceof WP_User && $contact->pets == 'yes' )
    {
        $fields['pets']['checked'] = true;
    }

    return $fields;
}

add_action( 'propertyhive_account_details_updated', 'save_address_fields', 10, 2 );
add_action( 'propertyhive_applicant_registered', 'save_address_fields', 10, 2 );
function save_address_fields( $contact_post_id, $user_id )
{
    update_post_meta( $contact_post_id, '_address_name_number', sanitize_text_field($_POST['address_name_number']) );
    update_post_meta( $contact_post_id, '_address_street', sanitize_text_field($_POST['address_street']) );
    update_post_meta( $contact_post_id, '_address_two', sanitize_text_field($_POST['address_two']) );
    update_post_meta( $contact_post_id, '_address_three', sanitize_text_field($_POST['address_three']) );
    update_post_meta( $contact_post_id, '_address_four', sanitize_text_field($_POST['address_four']) );
    update_post_meta( $contact_post_id, '_address_postcode', sanitize_text_field($_POST['address_postcode']) );

    update_post_meta( $contact_post_id, '_pets', ( isset($_POST['pets']) ? sanitize_text_field($_POST['pets']) : '' ) );
}
Was this article helpful to you? No Yes

How can we help?