public function process(){         $key = $this->

public function process(){
        $key = $this->getProperty('captcha_key');
 
        $method = $this->getProperty('method');
        $code = $this->getProperty('code');
 
        if(empty($code)){
            $code = $this->modx->request->parameters[$method][$key];
        }
 
        $session_code = $_SESSION[$key];

Вот так делать и не надо. Не надо прописывать в процессоре работу с глобальными массивами запросов, а то как вы будете разграничивать обработку, когда у вас на странице больше одного вызова будет? Надо писать что-то типа {processor… params=$smarty.get}, то есть явно в вызов процессора передавать данные запроса.