Prevent specific page delete from bulk action

Hi,
I'm using multisite and I trying to prevent specific page being deleted.

Here is prevent "move to trash" code:

function restrict_delete_page(){
 	$post_id = get_the_ID();
 	if($post_id == '231' || $post_id == '354' ||$post_id == '247' ||$post_id == '245' ||$post_id == '72'){
 		wp_redirect(get_admin_url().'edit.php?post_type=page');
        exit;
 	}
}

add_action('wp_trash_post', 'restrict_delete_page', 10, 1);
add_action('before_delete_post', 'restrict_delete_page', 10, 1);

But it still can delete via bulk action and I don't want to hide 'trash' in bulk action, so I trying to force post statue in data base.

function page_state_force(){
    global $wpdb;
       $blog_id = get_current_blog_id();
       $current_id = 'wp_'.$blog_id.'_';
       $current_id_post = $current_id."posts";
       $get_page_state = $wpdb->get_results('SELECT * FROM '.$current_id_post.' WHERE id="231" ');
       if(get_current_blog_id() > 1){
	       if($get_page_state[0]->post_status !== 'publish'){
	       	$wpdb->query('UPDATE ' .$current_id_post. ' SET post_status ="publish",post_name = "shop" WHERE id="231"');
	       }
       }
}

add_action('admin_init','page_state_force');

It's not perfect solution because if user delete page via bulk action and they need to reload page this code will execute.

Could you please help me find better solution, thanks!