Changeset 13122 for branches/9.0/src/bp-xprofile/bp-xprofile-functions.php
- Timestamp:
- 10/09/2021 05:20:55 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/9.0/src/bp-xprofile/bp-xprofile-functions.php
r13012 r13122 809 809 * 810 810 * @since 1.0.0 811 * 812 * @param int $user_id ID of the user to sync. 811 * @since 9.2.0 Adds the $args arguments to catch hook's additional arguments. 812 * 813 * @param int $user_id ID of the user to sync. 814 * @param array $args Hook's additional arguments. 813 815 * @return bool 814 816 */ 815 function xprofile_sync_wp_profile( $user_id = 0 ) {817 function xprofile_sync_wp_profile( $user_id = 0, ...$args ) { 816 818 817 819 // Bail if profile syncing is disabled. … … 828 830 } 829 831 830 $fullname = xprofile_get_field_data( bp_xprofile_fullname_field_id(), $user_id ); 832 $fullname_field_id = (int) bp_xprofile_fullname_field_id(); 833 $usermeta = array(); 834 $userdata = array(); 835 836 if ( isset( $args[1]['meta'] ) ) { 837 $usermeta = $args[1]['meta']; 838 } elseif ( isset( $args[3] ) ) { 839 $usermeta = $args[3]; 840 } 841 842 if ( isset( $usermeta['profile_field_ids'] ) ) { 843 $xprofile_fields = wp_parse_id_list( $usermeta['profile_field_ids'] ); 844 $xprofile_fields = array_diff( $xprofile_fields, array( $fullname_field_id ) ); 845 846 foreach ( $xprofile_fields as $xprofile_field_id ) { 847 $field_type = bp_xprofile_get_field_type( $xprofile_field_id ); 848 849 $field_key = 'field_' . $xprofile_field_id; 850 if ( isset( $field_type->wp_user_key ) && isset( $usermeta[ $field_key ] ) && $usermeta[ $field_key ] ) { 851 $userdata[ $field_type->wp_user_key ] = $usermeta[ $field_key ]; 852 } 853 } 854 } 855 856 $fullname = xprofile_get_field_data( $fullname_field_id, $user_id ); 831 857 $space = strpos( $fullname, ' ' ); 832 858 833 859 if ( false === $space ) { 834 $firstname = $fullname; 835 $lastname = ''; 860 if ( ! isset( $userdata['first_name'] ) ) { 861 $userdata['first_name'] = $fullname; 862 } 863 864 if ( ! isset( $userdata['last_name'] ) ) { 865 $userdata['last_name'] = ''; 866 } 836 867 } else { 837 $firstname = substr( $fullname, 0, $space ); 838 $lastname = trim( substr( $fullname, $space, strlen( $fullname ) ) ); 868 if ( ! isset( $userdata['first_name'] ) ) { 869 $userdata['first_name'] = substr( $fullname, 0, $space ); 870 } 871 872 if ( ! isset( $userdata['last_name'] ) ) { 873 $userdata['last_name'] = trim( substr( $fullname, $space, strlen( $fullname ) ) ); 874 } 839 875 } 840 876 841 877 bp_update_user_meta( $user_id, 'nickname', $fullname ); 842 bp_update_user_meta( $user_id, 'first_name', $ firstname);843 bp_update_user_meta( $user_id, 'last_name', $ lastname);878 bp_update_user_meta( $user_id, 'first_name', $userdata['first_name'] ); 879 bp_update_user_meta( $user_id, 'last_name', $userdata['last_name'] ); 844 880 845 881 wp_update_user( array( 'ID' => $user_id, 'display_name' => $fullname ) ); 846 882 } 847 add_action( 'bp_core_signup_user', 'xprofile_sync_wp_profile');848 add_action( 'bp_core_activated_user', 'xprofile_sync_wp_profile');883 add_action( 'bp_core_signup_user', 'xprofile_sync_wp_profile', 10, 5 ); 884 add_action( 'bp_core_activated_user', 'xprofile_sync_wp_profile', 10, 3 ); 849 885 850 886 /**
Note: See TracChangeset
for help on using the changeset viewer.