/** * @group bp_docs_delete_folder_contents */ public function test_bp_docs_delete_folder_contents() { $f1 = bp_docs_create_folder(array('name' => 'foo')); $f1_d1 = $this->factory->doc->create(); $f1_d2 = $this->factory->doc->create(); bp_docs_add_doc_to_folder($f1_d1, $f1); bp_docs_add_doc_to_folder($f1_d2, $f1); $f2 = bp_docs_create_folder(array('name' => 'foo', 'parent' => $f1)); $f2_d1 = $this->factory->doc->create(); $f2_d2 = $this->factory->doc->create(); bp_docs_add_doc_to_folder($f2_d1, $f2); bp_docs_add_doc_to_folder($f2_d2, $f2); $f3 = bp_docs_create_folder(array('name' => 'foo', 'parent' => $f1)); $f3_d1 = $this->factory->doc->create(); $f3_d2 = $this->factory->doc->create(); bp_docs_add_doc_to_folder($f3_d1, $f3); bp_docs_add_doc_to_folder($f3_d2, $f3); $f4 = bp_docs_create_folder(array('name' => 'foo', 'parent' => $f2)); $f4_d1 = $this->factory->doc->create(); $f4_d2 = $this->factory->doc->create(); bp_docs_add_doc_to_folder($f4_d1, $f4); bp_docs_add_doc_to_folder($f4_d2, $f4); $this->assertTrue(bp_docs_delete_folder_contents($f1)); $f1_term = bp_docs_get_folder_term($f1); $f1_docs = get_posts(array('post_type' => bp_docs_get_post_type_name(), 'tax_query' => array(array('taxonomy' => 'bp_docs_doc_in_folder', 'field' => 'term_id', 'terms' => $f1_term)), 'update_meta_cache' => false, 'update_term_cache' => false)); $this->assertSame(array(), $f1_docs); $f2_term = bp_docs_get_folder_term($f2); $f2_docs = get_posts(array('post_type' => bp_docs_get_post_type_name(), 'tax_query' => array(array('taxonomy' => 'bp_docs_doc_in_folder', 'field' => 'term_id', 'terms' => $f2_term)), 'update_meta_cache' => false, 'update_term_cache' => false)); $this->assertSame(array(), $f2_docs); $f3_term = bp_docs_get_folder_term($f3); $f3_docs = get_posts(array('post_type' => bp_docs_get_post_type_name(), 'tax_query' => array(array('taxonomy' => 'bp_docs_doc_in_folder', 'field' => 'term_id', 'terms' => $f3_term)), 'update_meta_cache' => false, 'update_term_cache' => false)); $this->assertSame(array(), $f3_docs); $f4_term = bp_docs_get_folder_term($f4); $f4_docs = get_posts(array('post_type' => bp_docs_get_post_type_name(), 'tax_query' => array(array('taxonomy' => 'bp_docs_doc_in_folder', 'field' => 'term_id', 'terms' => $f4_term)), 'update_meta_cache' => false, 'update_term_cache' => false)); $this->assertSame(array(), $f4_docs); $this->assertSame(array(), bp_docs_get_folders(array('parent_id' => $f1))); $this->assertSame(array(), bp_docs_get_folders(array('parent_id' => $f2))); }
/** * Delete a folder. * * @since 1.9.0 * * @param array $args { * $type int $folder_id ID of the folder to be deleted. * $type bool $delete_contents Delete folder contents (subfolders and docs) * } * @return bool */ function bp_docs_delete_folder($args = array()) { $r = wp_parse_args($args, array('folder_id' => 0, 'delete_contents' => false)); if (empty($r['folder_id'])) { return false; } if (true === $r['delete_contents']) { bp_docs_delete_folder_contents($r['folder_id']); } wp_trash_post($r['folder_id']); return true; }