Profile photo upload locked at 600px. Ultimate Member Registration Form
-
This is the plugin that generates a profile photo upload button:
https://github.com/ultimatemember/Extended/blob/main/um-profile-photo/um-profile-photo.php
if ( ! defined( 'ABSPATH' ) ) exit; /** * Add new predefined field "Profile Photo" in UM Form Builder. * * @param array $arr field array settings. */ function um_predefined_fields_hook_profile_photo( $arr ) { $arr['register_profile_photo'] = array( 'title' => __( 'Profile Photo', 'ultimate-member' ), 'metakey' => 'register_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, 'editable' => 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; } add_filter( 'um_predefined_fields_hook', 'um_predefined_fields_hook_profile_photo', 99999, 1 ); /** * Multiply Profile Photo with different sizes * * @param integer $user_id the user ID. */ function um_registration_set_profile_photo( $user_id, $args ) { if( isset( $args['form_id'] )) $req = 'register_profile_photo-' . $args['form_id']; else $req = 'register_profile_photo'; if( ! isset( $_REQUEST[$req] ) ) return; //if ( strpos( $_REQUEST['register_profile_photo'], '_temp.') <= -1 ) { //return; //} if( is_user_logged_in() ) { UM()->files()->delete_core_user_photo( $user_id, 'profile_photo' ); } $user_basedir = UM()->uploader()->get_upload_user_base_dir( $user_id, true ); $temp_dir = UM()->uploader()->get_core_temp_dir() . DIRECTORY_SEPARATOR; $temp_profile_photo = array_slice( scandir( $temp_dir ), 2); $temp_profile_id = isset( $_COOKIE['um-register-profile-photo'] ) ? $_COOKIE['um-register-profile-photo'] : null; if( empty( $temp_profile_photo ) ) return; foreach( $temp_profile_photo as $i => $p ){ if ( strpos($p, "_photo_{$temp_profile_id}_temp") !== false ) { $profile_p = $p; } } if( empty( $profile_p ) ) return; $temp_image_path = $temp_dir . DIRECTORY_SEPARATOR . $profile_p; $new_image_path = $user_basedir . DIRECTORY_SEPARATOR . $profile_p; $image = wp_get_image_editor( $temp_image_path ); $file_info = wp_check_filetype_and_ext( $temp_image_path, $profile_p ); $ext = $file_info['ext']; $new_image_name = str_replace( $profile_p, "profile_photo.{$ext}", $new_image_path ); $sizes = UM()->options()->get( 'photo_thumb_sizes' ); $quality = UM()->options()->get( 'image_compression' ); if ( ! is_wp_error( $image ) ) { $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}" ); update_user_meta( $user_id, 'register_profile_photo', "profile_photo.{$ext}" ); @unlink( $temp_image_path ); } } add_action( 'um_after_user_account_updated', 'um_registration_set_profile_photo', 1, 2 ); add_action( 'um_registration_set_extra_data', 'um_registration_set_profile_photo', 1, 2 ); /** * Set Temporary user id */ function um_register_profile_photo_set_temp_user_id() { $temp_profile_id = isset( $_COOKIE['um-register-profile-photo'] ) ? $_COOKIE['um-register-profile-photo'] : null; if ( ! $temp_profile_id ) { setcookie( 'um-register-profile-photo', md5( time() ), time() + 3600, COOKIEPATH, COOKIE_DOMAIN ); } } add_action( 'template_redirect', 'um_register_profile_photo_set_temp_user_id' ); /** * Set handler callback for filename */ function um_register_profile_photo_upload_handler( $override_handler ) { if ( 'stream_photo' == UM()->uploader()->upload_image_type && 'register_profile_photo' == UM()->uploader()->field_key ) { $override_handler['unique_filename_callback'] = 'um_register_profile_photo_name'; } return $override_handler; } add_filter( 'um_image_upload_handler_overrides__register_profile_photo', 'um_register_profile_photo_upload_handler', 99999 ); /** * Change filename */ function um_register_profile_photo_name( $dir, $filename, $ext ) { $temp_profile_id = isset( $_COOKIE['um-register-profile-photo'] ) ? $_COOKIE['um-register-profile-photo'] : null; return "profile_photo_{$temp_profile_id}_temp{$ext}"; } /** * Support profile photo uploader in Account form */ function um_register_display_profile_photo_in_account( $field_atts, $key, $data ) { if ( 'register_profile_photo' == $key && um_is_core_page( 'account' ) ) { $profile_photo = UM()->uploader()->get_upload_base_url() . um_user( 'ID' ) . DIRECTORY_SEPARATOR . um_profile( 'profile_photo' ) . '?ts=' . current_time( 'timestamp' ); $field_atts['data-profile_photo'] = array( $profile_photo ); } return $field_atts; } add_filter( 'um_field_extra_atts', 'um_register_display_profile_photo_in_account', 10, 3 ); /** * Clear profile photo cache */ function um_register_display_profile_photo_script() { if( ! um_is_core_page( 'account' ) ) return; ?> <script type="text/javascript"> jQuery(document).on("ready", function(){ setTimeout(() => { var register_profile_photo = jQuery("div[data-key='register_profile_photo']"); register_profile_photo.find(".um-field-area").find(".um-single-image-preview").find("img").attr("src", register_profile_photo.data("profile_photo")); }, 1000); var account_small_avatar = jQuery(".um-account-meta-img-b").find("a").find("img"); account_small_avatar.attr("src", account_small_avatar.attr("src") + "?ts=" + Math.floor(Date.now() / 1000) ); jQuery(document).ajaxSuccess(function(event, xhr, settings) { if( typeof settings.data.indexOf !== "undefined" ){ if (settings.data.indexOf("action=um_resize_image") > -1) { jQuery(".um-account .um-form form").submit(); } } }); }); </script> <?php } add_action( 'wp_footer', 'um_register_display_profile_photo_script' ); /** * Delete profile photo viam the account form */ function um_register_delete_profile_photo_from_account() { if( isset( $_REQUEST['mode'] ) && "account" == $_REQUEST['mode'] ) { UM()->files()->delete_core_user_photo( get_current_user_id(), 'profile_photo' ); } wp_send_json_success(); } add_action( 'wp_ajax_um_remove_file', 'um_register_delete_profile_photo_from_account', 1 );
When uploading the profile photo from the registration form with the 1:1 crop, it does not allow uploading a photo smaller than 600px, since it is not linked to the ultimate member settings.
This lock at 600px is located at line 1799 in the path
ultimatemember/includes/core/class-fields.php
https://github.com/ultimatemember/ultimatemember/blob/master/includes/core/class-fields.phpif ( $array['min_width'] == '' && $array['crop'] == 1 ) { $array['min_width'] = 600; } if ( $array['min_height'] == '' && $array['crop'] == 1 ) { $array['min_height'] = 600; } if ( $array['min_width'] == '' && $array['crop'] == 3 ) { $array['min_width'] = 600; } if ( $array['min_height'] == '' && $array['crop'] == 3 ) { $array['min_height'] = 600;
Let’s see if you can help me in the first code to unlock that 600px value and if you can, link it with the Ultimate Member profile photo settings.
Thank you very much for everything and greetings to the community.
- The topic ‘Profile photo upload locked at 600px. Ultimate Member Registration Form’ is closed to new replies.