Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
02/14/2014 07:02:16 PM (11 years ago)
Author:
boonebgorges
Message:

Add delete_all support for all _delete_meta() functions

The delete_all parameter allows you to delete all meta items matching the
specified meta_key, regardless of the associated object.

Because our meta delete functions also support the deletion of all metadata
associated with an object (by leaving out the meta_key param), a decision had
to be made regarding the behavior when _delete_meta() is called with delete_all

true and meta_key = false. The most logical (and least destructive) strategy

was deemed to be: force delete_all to false when meta_key is also false. This
ensures that you don't accidentally wipe out all metadata for a component.

See #5400

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-blogs/bp-blogs-functions.php

    r7879 r7883  
    835835 * @param string $meta_value Optional. If present, the metadata will only be
    836836 *        deleted if the meta_value matches this parameter.
     837 * @param bool $delete_all Optional. If true, delete matching metadata entries
     838 *    for all objects, ignoring the specified blog_id. Otherwise, only
     839 *    delete matching metadata entries for the specified blog.
     840 *    Default: false.
    837841 * @return bool True on success, false on failure.
    838842 */
    839 function bp_blogs_delete_blogmeta( $blog_id, $meta_key = false, $meta_value = false ) {
     843function bp_blogs_delete_blogmeta( $blog_id, $meta_key = false, $meta_value = false, $delete_all = false ) {
    840844    global $wpdb, $bp;
    841845
     
    851855    if ( empty( $meta_key ) ) {
    852856        $keys = $wpdb->get_col( $wpdb->prepare( "SELECT meta_key FROM {$wpdb->blogmeta} WHERE blog_id = %d", $blog_id ) );
     857        $delete_all = false;
    853858    } else {
    854859        $keys = array( $meta_key );
     
    861866
    862867    foreach ( $keys as $key ) {
    863         $retval = delete_metadata( 'blog', $blog_id, $key, $meta_value );
     868        $retval = delete_metadata( 'blog', $blog_id, $key, $meta_value, $delete_all );
    864869    }
    865870
Note: See TracChangeset for help on using the changeset viewer.