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