/** * @group bp_docs_get_folder_in_item_term */ public function test_bp_docs_get_folder_in_item_term_user_term_created() { $u = $this->factory->user->create(); $created_term_id = bp_docs_get_folder_in_item_term($u, 'user'); $term = get_term_by('id', $created_term_id, 'bp_docs_folder_in_user'); $this->assertSame($created_term_id, $term->term_id); }
/** * Create a Folder. * * @since 1.9 * * @param array $args { * Array of parameters. * @type string $name Name of the folder, for display in the interface. * @type int $user_id Optional. ID of the user that the folder is limited * to. * @type int $group_id Optional. ID of the group that the folder is * limited to. * } * @return int|bool ID of the newly created folder on success, false on failure. */ function bp_docs_create_folder($args) { $r = wp_parse_args($args, array('folder_id' => null, 'name' => '', 'parent' => null, 'group_id' => null, 'user_id' => null)); if (empty($r['name'])) { return false; } // Validate group ID if (!empty($r['group_id'])) { if (!bp_is_active('groups')) { return false; } $r['group_id'] = intval($r['group_id']); $group = groups_get_group(array('group_id' => $r['group_id'])); if (empty($group->id)) { return false; } } // Validate post parent if (!empty($r['parent'])) { $r['parent'] = intval($r['parent']); $maybe_parent = get_post($r['parent']); if (!is_a($maybe_parent, 'WP_Post')) { return false; } } $post_args = array('post_type' => 'bp_docs_folder', 'post_title' => $r['name'], 'post_status' => 'publish', 'post_parent' => $r['parent']); if (!empty($r['folder_id'])) { $post_args['ID'] = intval($r['folder_id']); } $folder_id = wp_insert_post($post_args); // If a group ID was passed, associate with group if (!empty($r['group_id'])) { $group_term = bp_docs_get_folder_in_item_term($r['group_id'], 'group'); wp_set_object_terms($folder_id, $group_term, 'bp_docs_folder_in_group'); } else { if (!empty($r['user_id'])) { $user_term = bp_docs_get_folder_in_item_term($r['user_id'], 'user'); wp_set_object_terms($folder_id, $user_term, 'bp_docs_folder_in_user'); } } if (is_wp_error($folder_id)) { return false; } else { return intval($folder_id); } }