Parse error: syntax error, unexpected ‘{‘: What could be wrong?

I’m currently working on a registration form for my wordpress site. I got this error

Parse error: syntax error, unexpected ‘{‘ in
C:xampphtdocsWoodClefwp-contentthemeswoodclefinccustormregform.php
on line 14

Here are the codes:

echo '<select name="role" class="input">';
    foreach ( $wp_roles->roles as $key=>$value ) {
       // Exclude default roles such as administrator etc. Add your own
       if ( ! in_array( $value['name'], [ 'Administrator', 'Contributor', ] ) {
          echo '<option value="'.$key.'">'.$value['name'].'</option>';
       }
    }
    echo '</select>';

Line 14 here is

if ( ! in_array( $value['name'], [ 'Administrator', 'Contributor', ] ) {

If I should remove the if statement, it works but I don’t want to remove it.

Here is the whole code:

<?php

// How To create User Registration Form

//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 ) {
       // Exclude default roles such as administrator etc. Add your own
       if ( ! in_array( $value['name'], [ 'Administrator', 'Contributor', ] ) {
          echo '<option value="'.$key.'">'.$value['name'].'</option>';
       }
    }
    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'] ) );
}

Read more here: Parse error: syntax error, unexpected ‘{‘: What could be wrong?

Leave a Reply

Your email address will not be published. Required fields are marked *