get_name() ); if ( ! class_exists( 'WP_Filter_Sentinel' ) ) { // Pre-7.1 core: wp_ability_invoked will never fire for this call, so open the same // pending row here ourselves, before parent::execute() does any work. See the class // docblock above for why this check gates cleanly on every core this plugin supports. aafm_open_pending_invocation_row( $this->get_name(), $input ); } // Captured so the finally below can decide, from what parent::execute() actually // returned, whether a still-dangling row names a real core refusal or must stay exactly // where the call left it. Stays null if parent::execute() never returns at all (an // uncaught Throwable from an unwrapped core filter) - aafm_core_input_rejection_code() // treats null as "nothing to recognise", so that path is unaffected by this change. $result = null; try { $result = parent::execute( $input ); return $result; } finally { aafm_rate_limit_call_reset( $this->get_name() ); aafm_resolve_dangling_invocation_if_mine( $this->get_name(), $invocation_token, $result ); } } }