From daf7acb1b047bd1898d55c506617ca16d34eb7de Mon Sep 17 00:00:00 2001 From: Matthias Pfefferle Date: Fri, 16 Jun 2023 16:46:49 +0200 Subject: [PATCH] implement missing get_follower logic --- includes/collection/class-followers.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/includes/collection/class-followers.php b/includes/collection/class-followers.php index ab5be32a..16a55a22 100644 --- a/includes/collection/class-followers.php +++ b/includes/collection/class-followers.php @@ -235,7 +235,13 @@ class Followers { public static function remove_follower( $user_id, $actor ) { wp_cache_delete( sprintf( self::CACHE_KEY_INBOXES, $user_id ), 'activitypub' ); - return wp_remove_object_terms( $user_id, $actor, self::POST_TYPE ); + $follower = self::get_follower( $user_id, $actor ); + + if ( ! $follower ) { + return false; + } + + return delete_post_meta( $follower->get_id(), 'user_id', $user_id ); } /** @@ -251,8 +257,12 @@ class Followers { $post_id = $wpdb->get_var( $wpdb->prepare( - "SELECT ID FROM $wpdb->posts WHERE guid=%s", - esc_sql( $actor ) + "SELECT p.ID FROM $wpdb->posts p INNER JOIN $wpdb->postmeta pm ON p.ID = pm.post_id WHERE p.post_type = %s AND pm.meta_key = 'user_id' AND pm.meta_value = %d AND p.guid = %s", + array( + esc_sql( self::POST_TYPE ), + esc_sql( $user_id ), + esc_sql( $actor ), + ) ) );