function update_metadata_serialized($type = 'post', $object_id, $meta_key, $value, $multiple = false)
 {
     if ($multiple || !in_metadata_serialized($value, $type, $object_id, $meta_key)) {
         $array = get_metadata($type, $object_id, $meta_key, true);
         $array = $array ? $array : array();
         $array[] = $value;
         update_metadata($type, $object_id, $meta_key, $array);
     }
 }
 public function user_decline_event($entry)
 {
     if (!empty($entry[24])) {
         $post_id = $entry[24];
         GFAPI::update_entry_property($entry['id'], 'post_id', $post_id);
         $event = get_post($post_id);
         if ($event && $event->post_type === 'event' && !in_metadata_serialized(get_current_user_id(), 'post', $post_id, 'declined_by_user')) {
             remove_metadata_serialized('post', $post_id, 'attended_by_user', get_current_user_id());
             remove_metadata_serialized('user', get_current_user_id(), 'attending_event', $post_id);
             update_metadata_serialized('post', $post_id, 'declined_by_user', (string) get_current_user_id());
             update_metadata_serialized('post', $post_id, 'actioned_by_user', (string) get_current_user_id());
             update_metadata_serialized('user', get_current_user_id(), 'declined_event', (string) $post_id);
         }
     }
 }
 public function user_unlike_post()
 {
     $response = array('request' => $_REQUEST);
     if (!empty($_REQUEST['post_id']) && is_user_logged_in()) {
         if (get_post($_REQUEST['post_id']) && in_metadata_serialized(get_current_user_id(), 'post', $_REQUEST['post_id'], 'liked_by_user')) {
             remove_metadata_serialized('post', $_REQUEST['post_id'], 'liked_by_user', get_current_user_id());
             remove_metadata_serialized('user', get_current_user_id(), 'likes_post', $_REQUEST['post_id']);
             $response['like_changed'] = true;
         }
     }
     echo json_encode($response);
     exit;
 }