Выберите раскрывающийся список с двумя вариантами выбора foreach

У меня проблема. Мне нужно указать только две роли: customer and shop_manager. 1. Как я могу сделать это с помощью этого скрипта?

add_action( 'register_form', 'myplugin_register_form' ); function myplugin_register_form() { global $wp_roles; echo '<select name="role" class="input">'; foreach ( $wp_roles->roles as $key=>$value ): echo '<option value="'.$key.'">'.$value['name'].'</option>'; endforeach; echo '</select>'; } 

Вы можете использовать in_array для проверки того, является ли имя роли клиентом или shop_manager

 add_action('register_form', 'myplugin_register_form'); function myplugin_register_form() { global $wp_roles; echo '<select name="role" class="input">'; foreach ($wp_roles->roles as $key => $value): if ( in_array( $key, array('customer', 'shop_manager') ) ) echo '<option value="' . $key . '">' . $value['name'] . '</option>'; endforeach; echo '</select>'; } 

Итак, следуя этой теме. Это код для добавления роли выбора на странице регистрации в WordPress.

 //1. Add a new form element... add_action('register_form', 'myplugin_register_form'); function myplugin_register_form() { global $wp_roles; echo '<select name="role" class="input">'; foreach ($wp_roles->roles as $key => $value): if ( in_array( $key, array('customer', 'shop_manager') ) ) echo '<option value="' . $key . '">' . $value['name'] . '</option>'; endforeach; echo '</select>'; } //2. Add validation. add_filter( 'registration_errors', 'myplugin_registration_errors', 10, 3 ); function myplugin_registration_errors( $errors, $sanitized_user_login, $user_email ) { if ( empty( $_POST['role'] ) || ! empty( $_POST['role'] ) && trim( $_POST['role'] ) == '' ) { $errors->add( 'role_error', __( '<strong>ERROR</strong>: You must include a role.', 'mydomain' ) ); } return $errors; } //3. Finally, save our extra registration user meta. add_action( 'user_register', 'myplugin_user_register' ); function myplugin_user_register( $user_id ) { $user_id = wp_update_user( array( 'ID' => $user_id, 'role' => $_POST['role'] ) ); }