function delete_blog_for_all($blog_id) { global $wpdb, $bp; if (!$bp->blogs) { bp_blogs_setup_globals(); } bp_blogs_delete_blogmeta($blog_id); return $wpdb->query($wpdb->prepare("DELETE FROM {$bp->blogs->table_name} WHERE blog_id = %d", $blog_id)); }
function bp_blogs_update_blogmeta($blog_id, $meta_key, $meta_value) { global $wpdb, $bp; if (!is_numeric($blog_id)) { return false; } $meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key); if (is_string($meta_value)) { $meta_value = stripslashes($wpdb->escape($meta_value)); } $meta_value = maybe_serialize($meta_value); if (empty($meta_value)) { return bp_blogs_delete_blogmeta($blog_id, $meta_key); } $cur = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$bp->blogs->table_name_blogmeta} WHERE blog_id = %d AND meta_key = %s", $blog_id, $meta_key)); if (!$cur) { $wpdb->query($wpdb->prepare("INSERT INTO {$bp->blogs->table_name_blogmeta} ( blog_id, meta_key, meta_value ) VALUES ( %d, %s, %s )", $blog_id, $meta_key, $meta_value)); } else { if ($cur->meta_value != $meta_value) { $wpdb->query($wpdb->prepare("UPDATE {$bp->blogs->table_name_blogmeta} SET meta_value = %s WHERE blog_id = %d AND meta_key = %s", $meta_value, $blog_id, $meta_key)); } else { return false; } } wp_cache_set('bp_blogs_blogmeta_' . $blog_id . '_' . $meta_key, $meta_value, 'bp'); return true; }
/** * Delete the record of a given blog for all users. * * @param int $blog_id The blog being removed from all users. * @return int|bool Number of rows deleted on success, false on failure. */ public static function delete_blog_for_all($blog_id) { global $wpdb; bp_blogs_delete_blogmeta($blog_id); $bp = buddypress(); return $wpdb->query($wpdb->prepare("DELETE FROM {$bp->blogs->table_name} WHERE blog_id = %d", $blog_id)); }
/** * @group blogmeta * @group bp_blogs_delete_blogmeta */ public function test_bp_blogs_delete_blogmeta_with_delete_all() { // With no meta key, don't delete for all items - just delete // all for a single item bp_blogs_add_blogmeta(1, 'foo', 'bar'); bp_blogs_add_blogmeta(1, 'foo1', 'bar1'); bp_blogs_add_blogmeta(2, 'foo', 'bar'); bp_blogs_add_blogmeta(2, 'foo1', 'bar1'); $this->assertTrue(bp_blogs_delete_blogmeta(1, 'foo', '', true)); $this->assertSame('', bp_blogs_get_blogmeta(1, 'foo')); $this->assertSame('', bp_blogs_get_blogmeta(2, 'foo')); $this->assertSame('bar1', bp_blogs_get_blogmeta(1, 'foo1')); $this->assertSame('bar1', bp_blogs_get_blogmeta(2, 'foo1')); }
/** * Deletes the 'url' blogmeta for a site. * * Hooked to 'refresh_blog_details', which is notably used when editing a site * under "Network Admin > Sites". * * @since BuddyPress (2.3.0) * * @param int $site_id The site ID. */ function bp_blogs_delete_url_blogmeta($site_id = 0) { bp_blogs_delete_blogmeta((int) $site_id, 'url'); }
function delete_blog_for_all($blog_id) { global $nxtdb, $bp; bp_blogs_delete_blogmeta($blog_id); return $nxtdb->query($nxtdb->prepare("DELETE FROM {$bp->blogs->table_name} WHERE blog_id = %d", $blog_id)); }