Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save champsupertramp/a7ce812c702865cb973445c9fe7a9544 to your computer and use it in GitHub Desktop.
Save champsupertramp/a7ce812c702865cb973445c9fe7a9544 to your computer and use it in GitHub Desktop.
Ultimate Member 2.0 - Add Profile Photo in Register Form
/**
* Add new predefined field "Profile Photo" in UM Form Builder.
*/
add_filter("um_predefined_fields_hook","um_predefined_fields_hook_profile_photo", 99999, 1 );
function um_predefined_fields_hook_profile_photo( $arr ){
$arr['profile_photo'] = array(
'title' => __('Profile Photo','ultimate-member'),
'metakey' => 'profile_photo',
'type' => 'image',
'label' => __('Change your profile photo','ultimate-member'),
'upload_text' => __('Upload your photo here','ultimate-member'),
'icon' => 'um-faicon-camera',
'crop' => 1,
'max_size' => ( UM()->options()->get('profile_photo_max_size') ) ? UM()->options()->get('profile_photo_max_size') : 999999999,
'min_width' => str_replace('px','',UM()->options()->get('profile_photosize')),
'min_height' => str_replace('px','',UM()->options()->get('profile_photosize')),
);
return $arr;
}
/**
* Multiply Profile Photo with different sizes
*/
add_action( 'um_registration_set_extra_data', 'um_registration_set_profile_photo', 9999, 2 );
function um_registration_set_profile_photo( $user_id, $args ){
if ( empty( $args['custom_fields'] ) ) return;
if( ! isset( $args['form_id'] ) ) return;
if( ! isset( $args['profile_photo'] ) || empty( $args['profile_photo'] ) ) return;
// apply this to specific form
//if( $args['form_id'] != 12345 ) return;
$files = array();
$fields = unserialize( $args['custom_fields'] );
$user_basedir = UM()->uploader()->get_upload_user_base_dir( $user_id, true );
$profile_photo = get_user_meta( $user_id, 'profile_photo', true );
$image_path = $user_basedir . DIRECTORY_SEPARATOR . $profile_photo;
$image = wp_get_image_editor( $image_path );
$file_info = wp_check_filetype_and_ext( $image_path, $profile_photo );
$ext = $file_info['ext'];
$new_image_name = str_replace( $profile_photo, "profile_photo.".$ext, $image_path );
$sizes = UM()->options()->get( 'photo_thumb_sizes' );
$quality = UM()->options()->get( 'image_compression' );
if ( ! is_wp_error( $image ) ) {
$max_w = UM()->options()->get('image_max_width');
if ( $src_w > $max_w ) {
$image->resize( $max_w, $src_h );
}
$image->save( $new_image_name );
$image->set_quality( $quality );
$sizes_array = array();
foreach( $sizes as $size ){
$sizes_array[ ] = array ('width' => $size );
}
$image->multi_resize( $sizes_array );
delete_user_meta( $user_id, 'synced_profile_photo' );
update_user_meta( $user_id, 'profile_photo', "profile_photo.{$ext}" );
@unlink( $image_path );
}
}
@Shubh9540
Copy link

Screenshot 2024-06-06 150944

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment