@@ -33,26 +33,64 @@ public function __construct( $args ) {
33
33
34
34
}
35
35
36
+ protected function get_attachment_id_by_filename ( $ filename ) {
37
+ global $ wpdb ;
38
+
39
+ return $ wpdb ->get_var ( $ wpdb ->prepare (
40
+ "SELECT ID FROM $ wpdb ->posts WHERE post_type = 'attachment' AND guid LIKE %s LIMIT 1 " ,
41
+ '% ' . $ wpdb ->esc_like ( $ filename ) . '% '
42
+ ));
43
+ }
44
+
36
45
function update_user_image_field ( $ user_id , $ feed , $ entry ) {
37
46
if ( $ entry ['form_id ' ] == $ this ->_args ['form_id ' ] && is_callable ( 'gp_media_library ' ) ) {
38
47
39
48
$ form = GFAPI ::get_form ( $ entry ['form_id ' ] );
40
- $ value = gp_media_library ()->acf_get_field_value ( $ this ->_args ['format ' ], $ entry , GFFormsModel::get_field ( $ form , $ this ->_args ['field_id ' ] ), $ this ->_args ['is_multi ' ] );
49
+ $ value = gp_media_library ()->acf_get_field_value (
50
+ $ this ->_args ['format ' ],
51
+ $ entry ,
52
+ GFFormsModel::get_field ( $ form , $ this ->_args ['field_id ' ] ),
53
+ $ this ->_args ['is_multi ' ]
54
+ );
41
55
42
56
if ( $ value && $ this ->_args ['is_multi ' ] && $ this ->_args ['append ' ] ) {
43
57
$ current_value = wp_list_pluck ( (array ) get_field ( $ this ->_args ['meta_key ' ], 'user_ ' . $ user_id ), 'ID ' );
44
58
$ value = array_merge ( $ current_value , $ value );
45
59
}
46
60
61
+ $ raw_json = $ _POST ['gform_uploaded_files ' ] ?? '' ;
62
+ $ field_id = $ this ->_args ['field_id ' ];
63
+ $ key = 'input_ ' . $ field_id ;
64
+
65
+ if ( empty ( $ value ) && $ raw_json ) {
66
+ $ uploaded_files_array = json_decode ( stripslashes ( $ raw_json ), true );
67
+ if ( isset ( $ uploaded_files_array [ $ key ][0 ]['uploaded_filename ' ] ) ) {
68
+ $ filename = $ uploaded_files_array [ $ key ][0 ]['uploaded_filename ' ];
69
+ $ attachment_id = $ this ->get_attachment_id_by_filename ( $ filename );
70
+ if ( $ attachment_id ) {
71
+ $ value = $ attachment_id ;
72
+ }
73
+ }
74
+ }
75
+
76
+ $ field = GFFormsModel::get_field ( $ form , $ field_id );
77
+ if ( empty ( $ value ) && ! $ field ->multipleFiles && isset ( $ _FILES [ $ key ] ) && ! empty ( $ _FILES [ $ key ]['name ' ] ) ) {
78
+ $ filename = $ _FILES [ $ key ]['name ' ];
79
+ $ attachment_id = $ this ->get_attachment_id_by_filename ( $ filename );
80
+ if ( $ attachment_id ) {
81
+ $ value = $ attachment_id ;
82
+ }
83
+ }
84
+
47
85
if ( empty ( $ value ) && ! $ this ->_args ['remove_if_empty ' ] ) {
48
86
return ;
49
87
}
50
88
51
89
update_field ( $ this ->_args ['meta_key ' ], $ value , 'user_ ' . $ user_id );
52
-
53
90
}
54
91
}
55
92
93
+
56
94
}
57
95
58
96
# Configuration
0 commit comments