OK, it is your code that isn’t setting the default correctly.
Line 121 of settings.php uses an option default_user_role that isn’t defined prior, so will come up with -none-
<?php wp_dropdown_roles( get_option( 'default_user_role' ) ); ?>
(wordpress does have an option default_role but that is different)
If this were set, in defines.php say after lines 30-37
if (!get_option( 'helfjmm_options' )) {
$jmm_options = get_option( 'helfjmm_options' );
if ( !isset($jmm_options['type']) ) $jmm_options['type'] = '3';
if ( !isset($jmm_options['role']) ) $jmm_options['role'] = 'subscriber';
if ( !isset($jmm_options['persite']) ) $jmm_options['persite'] = '0';
if ( !isset($jmm_options['perpage']) ) $jmm_options['perpage'] = 'XXXXXX'; // blank
update_option('helfjmm_options', $jmm_options);
}
with
if (!get_option( 'helfjmm_options' )) {
$jmm_options = get_option( 'helfjmm_options' );
if ( !isset($jmm_options['type']) ) $jmm_options['type'] = '3';
if ( !isset($jmm_options['role']) ) $jmm_options['role'] = 'subscriber';
if ( !isset($jmm_options['persite']) ) $jmm_options['persite'] = '0';
if ( !isset($jmm_options['perpage']) ) $jmm_options['perpage'] = 'XXXXXX'; // blank
update_option('helfjmm_options', $jmm_options);
}
if (!get_option( 'default_user_role' )) {
update_option('default_user_role', 'subscriber');
}
[ Although it may have been your intention to actually use ‘default_role’ rather than ‘default_user_role’ but I haven’t looked into that ]
I think that the missing ‘default_user_role’ explains my ‘irrational response’ because when it was missing nothing works, but of course doing an update creates it and fixes the problem. I’m of course assuming ‘default_user_role’ is pivotal to the main code (which I haven’t looked at, just the admin settings).