/** * Save reader selection data sent via AJAX. * * @param int $post_id ID of the post. */ function cacsp_save_reader_connection($post_id) { if (!defined('DOING_AJAX') || !DOING_AJAX) { return; } if (!isset($_POST['social_paper_readers_nonce']) || !isset($_POST['social_paper_readers'])) { return; } if (!wp_verify_nonce($_POST['social_paper_readers_nonce'], 'cacsp-reader-selector')) { return; } $paper = new CACSP_Paper($post_id); $results = array(); $new_reader_ids = array_map('intval', (array) $_POST['social_paper_readers']); $existing_reader_ids = $paper->get_reader_ids(); // Remove readers no longer listed. $readers_to_remove = array_diff($existing_reader_ids, $new_reader_ids); if ($readers_to_remove) { foreach ($readers_to_remove as $user_id) { $results['removed'][$user_id] = $paper->remove_reader($user_id); } } // Add new readers. $readers_to_add = array_diff($new_reader_ids, $existing_reader_ids); if ($readers_to_add) { foreach ($readers_to_add as $user_id) { $results['connected'][$user_id] = $paper->add_reader($user_id); } } // Can't do much with results :( }
public function test_remove_reader_successful_removal() { $p = $this->factory->paper->create(); $u = $this->factory->user->create(); $paper = new CACSP_Paper($p); $paper->add_reader($u); $this->assertTrue($paper->remove_reader($u)); }