How to add a custom field to an existing metabox on the edit listing page
You can easily add additional fields to existing meta boxes when editing a listing in the dashboard.
This is based on the filter epl_meta_groups_{group_id}
Available metabox groups names
- property_heading
- listing_agents
- listing_type
- display_details
- house_features
- land_details
- internal
- external
- heating_cooling
- address_block
- pricing
- sale_details
- rental_pricing
- rural_features
- commercial_leasing
- tenant_n_outgoings
- commercial_features
- business_categories
- files_n_links
- files_n_links_2
- owner_details
Register your new field to the pricing meta box
<?php /** * Add custom text field in pricing section * @uses EPL Filter epl_meta_groups_{group_id} */ function my_epl_add_pricing_fields($group) { $group['fields'][] = array( 'name' => 'my_custom_field', 'label' => __('Custom Field', 'easy-property-listings' ), 'type' => 'text', ); return $group; } add_filter('epl_meta_groups_pricing', 'my_epl_add_pricing_fields');
Register multiple fields
<?php /** * Add custom text field in pricing section * @uses EPL Filter epl_meta_groups_{group_id} */ function my_epl_add_multiple_pricing_fields($group) { $group['fields'][] = array( 'name' => 'property_pricing_class', 'label' => __( 'Pricing Class', 'easy-property-listings' ), 'type' => 'text', ); $group['fields'][] = array( 'name' => 'property_tenancy', 'label' => __( 'Tenancy', 'easy-property-listings' ), 'type' => 'text', ); return $group; } add_filter('epl_meta_groups_pricing', 'my_epl_add_multiple_pricing_fields');
Display your new field
<?php function my_custom_text_field_callback() { global $property; $custom_text_field = $property->get_property_meta('my_custom_field'); if ( isset($custom_text_field) ) { echo $custom_text_field; } } // Add after the_content of the listing add_action( 'epl_property_content_after' , 'my_custom_text_field_callback' );
Add the field before other fields in the same group
<?php /** * Add custom text field before other fields * @uses EPL Filter epl_meta_groups_{group_id} */ function my_epl_add_house_age_fields( $group ) { $new_fields['fields'] = array( 'name' => 'my_custom_field', 'label' => __('Custom Field', 'easy-property-listings' ), 'type' => 'text', ); $group['fields'] = $new_fields + $group['fields']; return $group; } add_filter( 'epl_meta_groups_house_features', 'my_epl_add_house_age_fields' );