Skip to:

03/22/2021 07:45:24 PM (3 years ago)

Prepare the xProfile component to handle the WordPress field types

  • Add a cache group to cache usermeta IDs by user IDs to avoid requesting information more than necessary when it hasn't been updated.
  • Edit the Profile field sanitization filter bp_xprofile_escape_field_data so that WordPress fields are escaped the way WordPress does.
  • Add the two new Field types wp-biography & wp-textbox to the available ones. See bp_xprofile_get_field_types().
  • Introduce the bp_xprofile_get_field_type() function to get the fied type of a field thanks to its ID.
  • Introduce a new filter bp_xprofile_set_field_data_pre_save. This filter returns false by default. You can use it to avoid using the Profile data DB table to save a field value by returning a WP_Error object or true. This filter is used by the WordPress field types to avoid duplicating the corresponding usermeta values into the Profile data DB table.
  • Introduce the bp_xprofile_get_wp_user_keys() function to inform about the supported WordPress fields (first_name, last_name, user_url, description and potential WP contact methods).
  • Edit the BP_XProfile_ProfileData methods to fetch field data so that they now try to fetch data within the usermeta table if the xProfile field has a WordPress field type.
  • Deprecate the BP_XProfile_ProfileData::get_value_byfieldname() as it's no more used into BP Core code.
  • Edit the function used to output the fields into the WP Admin/Extended profile screen so that WordPress fields are ignored as they can be updated from the WP Admin regular profile.

Props DJPaul, Offereins, needle, netweb, vapvarun

See #7162

1 edited


  • trunk/src/bp-xprofile/bp-xprofile-cache.php

    r12529 r12869  
    303303// List actions to clear super cached pages on, if super cache is installed.
    304304add_action( 'xprofile_updated_profile', 'bp_core_clear_cache' );
     307 * Resets the User Metadata ids cache.
     308 *
     309 * @since 8.0.0
     310 *
     311 * @param integer $user_id The user ID.
     312 */
     313function bp_xprofile_reset_user_mid_cache( $user_id ) {
     314    wp_cache_delete( $user_id, 'bp_user_mid' );
     316add_action( 'profile_update', 'bp_xprofile_reset_user_mid_cache', 10, 1 );
Note: See TracChangeset for help on using the changeset viewer.