public static function generate_image($args = array()) { if (!self::use_captcha()) { return; } $sb_captcha = self::get($args); $file_name = self::get_captcha_session(); $transient_keys = self::build_transient_name($file_name); $force = isset($args['force']) ? (bool) $args['force'] : false; if ($force || empty($file_name) || false === get_transient($transient_keys['prefix']) || !file_exists(trailingslashit($sb_captcha->tmp_dir) . $file_name)) { $old_file_name = $file_name; $word = $sb_captcha->generate_random_word(); $prefix = mt_rand(); $file_name = $sb_captcha->generate_image($prefix, $word); $transient_keys = self::build_transient_name($file_name); self::set_captcha_session($file_name); self::set_transient($transient_keys['prefix'], $prefix); self::set_transient($transient_keys['code'], SB_Core::hash_password($word)); self::remove($old_file_name); } $file_name = trailingslashit(plugins_url()) . 'really-simple-captcha/tmp/' . $file_name; return $file_name; }