Exemplo n.º 1
0
 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 :(
}