'string',
'sanitize_callback' => [ 'ACF_Login_Admin', 'acf_login_field_validate' ],
'default' => ''
)
);
add_settings_section(
'acf_login_section',
__('Custom login field settings'),
'',
'acf-login-page'
);
add_settings_field(
'acf_login_field',
__('Custom login field'),
array('ACF_Login_Admin', 'acf_login_field_callback'),
'acf-login-page',
'acf_login_section'
);
register_setting(
'acf-login-page',
'acf_login_field_only',
array(
'type' => 'string',
'sanitize_callback' => [ 'ACF_Login_Admin', 'acf_login_field_only_validate' ],
'default' => ''
)
);
add_settings_field(
'acf_login_field_only',
__('Login by custom login field only'),
array('ACF_Login_Admin', 'acf_login_field_only_callback'),
'acf-login-page',
'acf_login_section'
);
}
public static function acf_login_field_callback() {
$field_value = get_option('acf_login_field');
$field_options = self::get_options();
?>
add field group and show this field group in the user form to be able to pick a field from this field group to be used as a custom login field') ?>
__('Only custom field'), 'no' => __('Either username or this selected custom field')];
?>
add field group and show this field group in the user form to be able to pick a field from this field group to be used as a custom login field') ?>
Settings';
array_push( $links, $settings_link );
return $links;
}
public static function admin_menu() {
$slug = 'edit.php?post_type=acf-field-group';
if ( function_exists('acf_get_setting') ) {
$cap = acf_get_setting( 'capability' );
add_submenu_page( $slug, __( 'Custom login field', 'acf_login' ), __( 'Custom login field', 'acf_login' ), $cap, 'acf-login-page', array( 'ACF_Login_Admin', 'admin_index' ), 10 );
}
}
public static function admin_index() {
?>
'acf-field-group',
'post_status' => 'publish',
]);
if ( !empty($field_groups) ) {
foreach ($field_groups as $field_group) {
$field_group_settings = maybe_unserialize($field_group->post_content);
if ( !empty($field_group_settings) &&
!empty($field_group_settings['location']) &&
!empty($field_group_settings['location'][0]) &&
!empty($field_group_settings['location'][0][0]) &&
!empty($field_group_settings['location'][0][0]['param']) &&
($field_group_settings['location'][0][0]['param'] == 'user_form') ) {
$user_fields = get_posts([
'post_type' => 'acf-field',
'post_parent' => $field_group->ID,
'post_status' => 'publish',
]);
if ( !empty($user_fields) ) {
foreach ($user_fields as $user_field) {
$field_label = $user_field->post_title;
$field_id = $user_field->post_name;
$field_options[$field_id] = $field_label;
}
}
}
}
}
return $field_options;
}
/**
* Validate options.
*/
public static function acf_login_field_validate( $value ) {
$options = self::get_options();
if ( !in_array( $value, array_keys($options) ) ) {
return '';
}
return $value;
}
/**
* Validate options.
*/
public static function acf_login_field_only_validate( $value ) {
$options = ['yes', 'no'];
if ( !in_array( $value, array_keys($options) ) ) {
return '';
}
return $value;
}
}