Here is a quick, easy, free solution to stop spam registration.
BEFORE: Up to 50 spam user registrations per day
AFTER: 0. Zero. Nada.
PLEASE, IF SOMEONE CAN HELP CONVERT THIS INTO A PLUGIN, THIS WILL BE MOST WELCOME
Tested on 3.5.0 - 3.5.2 with Modern theme.
In oc-include/osclass/frm/Userformclass.php, find this:
static public function info_textarea($name, $locale = 'en_US', $value = '') {
parent::generic_textarea($name . '[' . $locale . ']', $value);
}
UNDERNEATH IT, ADD:
static public function human_check_text($user = null) {
parent::generic_input_text('humancheck',$value='If you are, please delete all this text',$maxlength='40') ;
}
In oc-include/osclass/UserActions.php, find this:
if($flash_error!='') {
osc_run_hook('user_register_failed', $error);
return $flash_error;
}
UNDERNEATH IT, ADD:
if( Params::getParam('humancheck', false, false) !== '') {
return $flash_error .= _m("Human check must be empty") . PHP_EOL;
$error[] = 11;
}
In Theme/user-register.php, find this:
<?php osc_run_hook('user_register_form'); ?>
<?php osc_show_recaptcha('register'); ?>
UNDERNEATH IT, ADD:
<div class="row">
<label for="humancheck"><?php _e('Are you Human?', 'modern') ; ?><em style="color:red"> *</em></label>
<?php UserForm::human_check_text() ; ?>
</div>