<?php /** * Accept handler file. * * @package Event_Bridge_For_ActivityPub * @since 1.0.0 * @license AGPL-3.0-or-later */ namespace Event_Bridge_For_ActivityPub\ActivityPub\Handler; use Activitypub\Collection\Actors; /** * Handle Accept requests. */ class Accept { /** * Initialize the class, registering the handler for incoming `Accept` activities to the ActivityPub plugin. */ public static function init() { \add_action( 'activitypub_inbox_accept', array( self::class, 'handle_accept' ) ); } /** * Handle incoming "Accept" activities. * * @param array $activity The activity object. */ public static function handle_accept( $activity ) { if ( ! isset( $activity['object'] ) ) { return; } $object = Actors::get_by_resource( $activity['object'] ); if ( ! $object || is_wp_error( $object ) ) { // If we can not find a actor, we handle the `Accept` activity. return; } // We only expect `Accept` activities being answers to follow requests by the application actor. if ( Actors::BLOG_USER_ID !== $object->get__id() ) { return; } } }