Hide the required sign I need to hide the red "required" star sign, but I can't understand how to hide this red star mark using hook_form_alter().
I know this can be done using CSS, but I want to know if it is possible to do it using hook_form_alter(), or if there is any other way to hide it programmatically.
You can use themename_form_element() to remove asterik as given in the link.

function YOURTHEMENAME_form_element($element, $value) {
  $output  = '&lt;div class="form-item"';
  if (!empty($element['#id'])) {
    $output .= ' id="' . $element['#id'] . '-wrapper"';
  }
  $output .= "&gt;\n";

  //REPLACE THIS
  //$required = !empty($element['#required']) ? '&lt;span class="form-required" title="' . t('This field is required.') . '"&gt;*&lt;/span&gt;' : '';
//WITH THIS


  if (!empty($element['#title'])) {
    $title = $element['#title'];
    if (!empty($element['#id'])) {
      $output .= ' &lt;label for="' . $element['#id'] . '"&gt;' . t('!title: !required', array('!title' =&gt; filter_xss_admin($title), '!required' =&gt; $required)) . "&lt;/label&gt;\n";
    }
    else {
      $output .= ' &lt;label&gt;' . t('!title: !required', array('!title' =&gt; filter_xss_admin($title), '!required' =&gt; $required)) . "&lt;/label&gt;\n";
    }
  }

  $output .= " $value\n";

  if (!empty($element['#description'])) {
    $output .= ' &lt;div class="description"&gt;' . $element['#description'] . "&lt;/div&gt;\n";
  }

  $output .= "&lt;/div&gt;\n";

  return $output;
}