public function test_disconnect_from_group_successful_removal() { $p = $this->factory->paper->create(); $g = $this->factory->group->create(); $paper = new CACSP_Paper($p); $paper->connect_to_group($g); $this->assertTrue($paper->disconnect_from_group($g)); }
/** * Save group selection data sent via AJAX. * * @param int $post_id ID of the post. */ function cacsp_save_group_connection($post_id) { if (!defined('DOING_AJAX') || !DOING_AJAX) { return; } if (!isset($_POST['social_paper_groups_nonce']) || !isset($_POST['social_paper_groups'])) { return; } if (!wp_verify_nonce($_POST['social_paper_groups_nonce'], 'cacsp-group-selector')) { return; } $paper = new CACSP_Paper($post_id); $results = array(); $new_group_ids = array_map('intval', (array) $_POST['social_paper_groups']); $existing_group_ids = $paper->get_group_ids(); // Disconnect from groups no longer listed. $disconnected_groups = array_diff($existing_group_ids, $new_group_ids); if ($disconnected_groups) { foreach ($disconnected_groups as $group_id) { $results['disconnected'][$group_id] = $paper->disconnect_from_group($group_id); } } // Connect to new groups. $connected_groups = array_diff($new_group_ids, $existing_group_ids); if ($connected_groups) { foreach ($connected_groups as $group_id) { $results['connected'][$group_id] = $paper->connect_to_group($group_id); } } // Can't do much with results :( }