function delete() { global $wpdb, $bp; // Delete linkmeta for the link bp_links_delete_linkmeta($this->id); // Finally remove the link entry from the DB if (!$wpdb->query($wpdb->prepare("DELETE FROM {$bp->links->table_name} WHERE id = %d", $this->id))) { return false; } do_action('bp_links_link_after_delete', $this); return true; }
function bp_links_update_linkmeta($link_id, $meta_key, $meta_value) { global $wpdb, $bp; if (!is_numeric($link_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_links_delete_linkmeta($link_id, $meta_key); } $cur = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $bp->links->table_name_linkmeta . " WHERE link_id = %d AND meta_key = %s", $link_id, $meta_key)); if (!$cur) { $wpdb->query($wpdb->prepare("INSERT INTO " . $bp->links->table_name_linkmeta . " ( link_id, meta_key, meta_value ) VALUES ( %d, %s, %s )", $link_id, $meta_key, $meta_value)); } else { if ($cur->meta_value != $meta_value) { $wpdb->query($wpdb->prepare("UPDATE " . $bp->links->table_name_linkmeta . " SET meta_value = %s WHERE link_id = %d AND meta_key = %s", $meta_value, $link_id, $meta_key)); } else { return false; } } /* Update the cached object and recache */ wp_cache_set('bp_links_linkmeta_' . $link_id . '_' . $meta_key, $meta_value, 'bp'); return true; }