3ответ(ов) в теме
Попробовал, но загружается только большая исходная картинка без создания миниатюр.
Сделал видоизмененную версию функции rcl_avatar_upload
с созданием миниатюр
function rcl_avatar_url_upload($img_url, $user_id) { require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); global $rcl_avatar_sizes; $upload = array(); $tmpname = current_time( 'timestamp' ) . '.jpg'; $dir_path = RCL_UPLOAD_PATH . 'avatars/'; $dir_url = RCL_UPLOAD_URL . 'avatars/'; if ( ! is_dir( $dir_path ) ) { mkdir( $dir_path ); chmod( $dir_path, 0755 ); } $tmp_path = $dir_path . 'tmp/'; $tmp_url = $dir_url . 'tmp/'; if ( ! is_dir( $tmp_path ) ) { mkdir( $tmp_path ); chmod( $tmp_path, 0755 ); } else { foreach ( glob( $tmp_path . '*' ) as $file ) { unlink( $file ); } } $data = base64_encode( file_get_contents($img_url) ); $data = str_replace( 'data:image/png;base64,', '', $data ); $data = str_replace( ' ', '+', $data ); $data = base64_decode( $data ); $upload['file']['type'] = 'image/png'; $upload['file']['name'] = $tmpname; $upload['file']['tmp_name'] = $tmp_path . $tmpname; $upload['file']['size'] = file_put_contents( $upload['file']['tmp_name'], $data ); $mime = explode( '/', $upload['file']['type'] ); $kb = $upload['file']['size'] / 1024; if ( $kb > rcl_get_option( 'avatar_weight', 1024 ) ) { wp_send_json( array( 'error' => __( 'Size exceeded', 'wp-recall' ) ) ); } $ext = explode( '.', $filename ); if ( $mime[0] != 'image' ) { wp_send_json( array( 'error' => __( 'The file is not an image', 'wp-recall' ) ) ); } list($width, $height) = getimagesize( $upload['file']['tmp_name'] ); if ( $width > $height ) $src_size = $height; else $src_size = $width; array_map( "unlink", glob( $dir_path . $user_id . "-*.jpg" ) ); $rcl_avatar_sizes[999] = $src_size; foreach ( $rcl_avatar_sizes as $key => $size ) { $filename = ''; if ( $key != 999 ) { $filename = $user_id . '-' . $size . '.jpg'; } else { $filename = $user_id . '.jpg'; $srcfile_url = $dir_url . $filename; } $file_src = $dir_path . $filename; $rst = rcl_crop( $upload['file']['tmp_name'], $size, $size, $file_src ); } if ( function_exists( 'ulogin_get_avatar' ) ) { delete_user_meta( $user_id, 'ulogin_photo' ); } update_user_meta( $user_id, 'rcl_avatar', $srcfile_url ); }
Редакции сообщения
19.07.2020 04:53Причина: не указано
19.07.2020 04:54Причина: не указано
19.07.2020 04:54Причина: не указано
19.07.2020 04:55Причина: не указано
Вы не имеете права на публикацию сообщений в этой теме