The is_protected_meta WordPress PHP Filter determines if a meta key is considered protected.
Usage
add_filter('is_protected_meta', 'my_custom_function', 10, 3);
function my_custom_function($protected, $meta_key, $meta_type) {
    // your custom code here
    return $protected;
}
Parameters
- $protected (bool): Whether the key is considered protected.
 - $meta_key (string): Metadata key.
 - $meta_type (string): Type of object metadata is for. Accepts ‘post’, ‘comment’, ‘term’, ‘user’, or any other object type with an associated meta table.
 
More information
See WordPress Developer Resources: is_protected_meta
Examples
Protect a Custom Meta Key for Posts
Protect the custom meta key ‘my_secret_key’ for posts.
add_filter('is_protected_meta', 'protect_my_secret_key', 10, 3);
function protect_my_secret_key($protected, $meta_key, $meta_type) {
    if ('post' === $meta_type && 'my_secret_key' === $meta_key) {
        return true;
    }
    return $protected;
}
Protect a Custom Meta Key for Users
Protect the custom meta key ‘user_secret_key’ for users.
add_filter('is_protected_meta', 'protect_user_secret_key', 10, 3);
function protect_user_secret_key($protected, $meta_key, $meta_type) {
    if ('user' === $meta_type && 'user_secret_key' === $meta_key) {
        return true;
    }
    return $protected;
}
Unprotect Default Post Meta Key
Unprotect the default meta key ‘_edit_lock’ for posts.
add_filter('is_protected_meta', 'unprotect_edit_lock', 10, 3);
function unprotect_edit_lock($protected, $meta_key, $meta_type) {
    if ('post' === $meta_type && '_edit_lock' === $meta_key) {
        return false;
    }
    return $protected;
}
Unprotect All Meta Keys for Comments
Unprotect all meta keys for comments.
add_filter('is_protected_meta', 'unprotect_comment_meta_keys', 10, 3);
function unprotect_comment_meta_keys($protected, $meta_key, $meta_type) {
    if ('comment' === $meta_type) {
        return false;
    }
    return $protected;
}
Protect Meta Keys Based on a Prefix
Protect all meta keys with the prefix ‘protected_’.
add_filter('is_protected_meta', 'protect_meta_keys_with_prefix', 10, 3);
function protect_meta_keys_with_prefix($protected, $meta_key, $meta_type) {
    if (0 === strpos($meta_key, 'protected_')) {
        return true;
    }
    return $protected;
}