1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
function epl_property_admin_contact( $contactmethods ) {
$contactmethods['mobile'] = __( 'Mobile', 'easy-property-listings' );
$contactmethods['office_phone'] = __( 'Office Phone', 'easy-property-listings' );
$contactmethods['skype'] = __( 'Skype', 'easy-property-listings' );
$contactmethods['twitter'] = __( 'Twitter', 'easy-property-listings' );
$contactmethods['facebook'] = __( 'Facebook', 'easy-property-listings' );
$contactmethods['linkedin'] = __( 'LinkedIn', 'easy-property-listings' );
$contactmethods['instagram'] = __( 'Instagram', 'easy-property-listings' );
$contactmethods['pinterest'] = __( 'Pinterest', 'easy-property-listings' );
$contactmethods['youtube'] = __( 'Youtube', 'easy-property-listings' );
return $contactmethods;
}
add_filter( 'user_contactmethods', 'epl_property_admin_contact', 10, 1 );
function epl_get_custom_user_profile_fields() {
return apply_filters(
'epl_custom_user_profile_fields',
array(
array(
'name' => 'position',
'label' => __( 'Position', 'easy-property-listings' ),
'description' => __( 'Please enter your title/position.', 'easy-property-listings' ),
'class' => 'regular-text',
'type' => 'text',
),
array(
'name' => 'slogan',
'label' => __( 'Slogan', 'easy-property-listings' ),
'description' => __( 'Please enter your slogan.', 'easy-property-listings' ),
'class' => 'regular-text',
'type' => 'text',
),
array(
'name' => 'video',
'label' => __( 'Youtube Video Url', 'easy-property-listings' ),
'description' => __( 'Please enter your YouTube Profile Video URL.', 'easy-property-listings' ),
'class' => 'regular-text',
'type' => 'text',
),
array(
'name' => 'contact-form',
'label' => __( 'Contact Form short code', 'easy-property-listings' ),
'description' => __( 'Please enter your form short code for author contact tab.', 'easy-property-listings' ),
'class' => 'regular-text',
'type' => 'text',
),
)
);
}
function epl_add_custom_user_profile_fields( $user ) { ?>
<h3><?php esc_html_e( 'Easy Property Listings: Author Box Profile', 'easy-property-listings' ); ?></h3>
<p><?php esc_html_e( 'The following details will appear in your author box and widgets.', 'easy-property-listings' ); ?></p>
<table class="form-table">
<?php
$user_fields = epl_get_custom_user_profile_fields();
foreach ( $user_fields as $user_field ) {
?>
<tr>
<th>
<label for="<?php echo esc_attr( $user_field['name'] ); ?>">
<?php echo esc_attr( $user_field['label'] ); ?>
</label>
</th>
<td>
<input
type="text"
name="<?php echo esc_attr( $user_field['name'] ); ?>"
id="<?php echo esc_attr( $user_field['name'] ); ?>"
value="<?php echo wp_kses_post( get_the_author_meta( $user_field['name'], $user->ID ) ); ?>"
class="regular-text"
/><br />
<span class="description">
<?php
echo isset( $user_field['description'] ) ? wp_kses_post( $user_field['description'] ) : '';
?>
</span>
</td>
</tr>
<?php
}
?>
</table>
<?php
}
function epl_save_custom_user_profile_fields( $user_id ) {
if ( ! current_user_can( 'edit_user', $user_id ) ) {
return false;
}
$user_fields = epl_get_custom_user_profile_fields();
foreach ( $user_fields as $user_field ) {
if ( isset( $_POST[ $user_field['name'] ] ) ) {
update_user_meta( $user_id, $user_field['name'], sanitize_text_field( wp_unslash( $_POST[ $user_field['name'] ] ) ) );
}
}
}
add_action( 'show_user_profile', 'epl_add_custom_user_profile_fields' );
add_action( 'edit_user_profile', 'epl_add_custom_user_profile_fields' );
add_action( 'personal_options_update', 'epl_save_custom_user_profile_fields' );
add_action( 'edit_user_profile_update', 'epl_save_custom_user_profile_fields' );