Inpsyde\MultilingualPress\Module\Trasher\TrasherSettingUpdater::update_settings PHP Method

update_settings() public method

Updates the trasher setting of the post with the given ID as well as all related posts.
Since: 3.0.0
public update_settings ( integer $post_id, WP_Post $post ) : integer
$post_id integer Post ID.
$post WP_Post Post object.
return integer The number of posts updated.
    public function update_settings($post_id, WP_Post $post)
    {
        if (!$this->nonce->is_valid()) {
            return 0;
        }
        if (!in_array($post->post_status, ['publish', 'draft'], true)) {
            return 0;
        }
        $value = array_key_exists(TrasherSettingRepository::META_KEY, $_POST) ? (bool) $_POST[TrasherSettingRepository::META_KEY] : false;
        if (!$this->setting_repository->update($post_id, $value)) {
            return 0;
        }
        $current_site_id = get_current_blog_id();
        $related_posts = $this->content_relations->get_relations($current_site_id, $post_id, 'post');
        unset($related_posts[$current_site_id]);
        if (!$related_posts) {
            return 1;
        }
        $updated_posts = 1;
        array_walk($related_posts, function ($post_id, $site_id) use(&$updated_posts, $value) {
            switch_to_blog($site_id);
            $updated_posts += $this->setting_repository->update($post_id, $value);
            restore_current_blog();
        });
        return $updated_posts;
    }
TrasherSettingUpdater