Search code examples
web-servicesdrupal-7moodle

I am trying to add a new user in moodle via webservice with custom fields


I am trying to create a user in moodle via webservice .The user is created successfuly but the custom field is not filled.Can anybody redirect me towards the solution?In custom field i am trying to send value for gender as male.

       $functionName = 'core_user_create_users';
            $user1 = new stdClass();
            $user1->username = $form_state['values']['UserName']; 
            $user1->password=$form_state['values']['PassWord']; 
            $user1->firstname = $form_state['values']['FirstName']; 
            $user1->lastname = $form_state['values']['LastName']; 
            $user1->email = $form_state['values']['Emailid']; 
            $user1->mailformat = '0';
            $preferencename1 = 'auth_forcepasswordchange';
            $user1->preferences = array(
                array('type' => $preferencename1, 'value' => 'true')
               );
              $user1->customfields = array(
                array('type' => 'Gender', 'value' => 'Male')
               );
            $users = array($user1);
            $params = array('users' => $users);

            /// REST CALL
    $rest_format = 'json';

        //$server_url = $domain_name . '/webservice/rest/server.php' . '?wstoken=' . $token . '&wsfunction=' . $function_name;
        $server_url = 'localhost/moodle' . '/webservice/rest/server.php'. '?wstoken=' . '7525ce057d455657a4e83d7aa63f3684' .'&wsfunction='. $functionName;
        require_once('curl.inc');
        $curl = new curl;
        $rest_format = ($rest_format == 'json') ? '&moodlewsrestformat=' . $rest_format : '';

        $resp =$curl->post($server_url.$rest_format , $params);
        dpm($resp);
        $res=json_decode($resp);

        dpm($res);

Solution

  • $preferencename1 = 'auth_forcepasswordchange';
    $user1->preferences = array(
         array('type' => $preferencename1, 'value' => 'true')
    );
    

    Is it working? I'm trying but invalid parameter error are showing.