Skip to content

Commit fd8f672

Browse files
committed
Fix handling of ArrayAccess since PHPStan still would hang
1 parent 61f8a11 commit fd8f672

1 file changed

Lines changed: 35 additions & 1 deletion

File tree

src/wp-includes/user.php

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2211,7 +2211,41 @@ function wp_insert_user( $userdata ) {
22112211
$userdata = $userdata->to_array();
22122212
} elseif ( $userdata instanceof Traversable ) {
22132213
$userdata = iterator_to_array( $userdata );
2214-
} elseif ( ! ( $userdata instanceof ArrayAccess ) ) {
2214+
} elseif ( $userdata instanceof ArrayAccess ) {
2215+
$userdata_obj = $userdata;
2216+
$userdata = array();
2217+
foreach (
2218+
array(
2219+
'ID',
2220+
'user_pass',
2221+
'user_login',
2222+
'user_nicename',
2223+
'user_url',
2224+
'user_email',
2225+
'display_name',
2226+
'nickname',
2227+
'first_name',
2228+
'last_name',
2229+
'description',
2230+
'rich_editing',
2231+
'syntax_highlighting',
2232+
'comment_shortcuts',
2233+
'admin_color',
2234+
'use_ssl',
2235+
'user_registered',
2236+
'user_activation_key',
2237+
'spam',
2238+
'show_admin_bar_front',
2239+
'role',
2240+
'locale',
2241+
'meta_input',
2242+
) as $key
2243+
) {
2244+
if ( isset( $userdata_obj[ $key ] ) ) {
2245+
$userdata[ $key ] = $userdata_obj[ $key ];
2246+
}
2247+
}
2248+
} else {
22152249
$userdata = (array) $userdata;
22162250
}
22172251

0 commit comments

Comments
 (0)