Question

Je construis un site Web pour un événement de charité et je voudrais que les gens vous inscrire à cet événement.

Le formulaire doit contenir le nom, e-mail et d'autres questions personnalisées. Je voudrais aussi une page où la liste des personnes inscrites. Je pensais à l'aide du système utilisateur + un plug-in pour la liste la liste des utilisateurs.

Quels plugins utiliseriez-vous?

Merci.

Était-ce utile?

La solution

Salut solomongaby:

Formulaires

Pour la forme, je recommendation en utilisant GravityForms . Il est super facile à utiliser pour concevoir et publier un formulaire, et est ici une forme d'exemple, nous avons fait des demandes d'être un présentateur .

GravityForms est de 39 $ par serveur mais si vous demandez ils peuvent être prêts à donner un organisme de bienfaisance une copie gratuite?

Enregistrement

Je probablement EventBrite comme nous l'avons fait pour notre conférence d'affaires de WordPress .

EventBrite est libre d'utiliser si votre événement est gratuit et les frais valent bien le manque de maux de tête si vous chargez. L'utilisation EventBrite (ou un service similaire) sera beaucoup, beaucoup plus facile que d'essayer de mettre en œuvre quelque chose dans WordPress pour un événement unique.

J'ai écrit un shortcode à l'affichage facilites (vous pouvez mettre le code dans le fichier functions.php de votre thème). Voici l'utilisation du prototype pour le shortcode:

  

[eventbrite src="{event_url}" width="{width}" height="{height}"]

Et voici ce shortcode ressemblait utilisé ( assurez-vous de remplacer votre propre URL de l'événement bien sûr ):

  

[eventbrite src="http://www.eventbrite.com/tickets-external?eid=582216425&ref=etckt" width="620" height="500"]

Et enfin voici le code source PHP pour le code court:

<?php
add_shortcode('eventbrite', 'eventbrite_show_widget');

function eventbrite_show_widget($args) {
  $valid_types = array('ticket-form',);
  $div_style = 'border:1px solid black;color:white;background:red;padding:10px;';
  $default = array(
    'type' => 'ticket-form',
    'url' => '',
    'src' => '',
    'width' => '100%',
    'height' => '500',
  );
  $args = array_merge($default,$args);
  extract($args);
  if (empty($url) && empty($src)) {
    $html =<<<HTML
<div style="$div_style">
<p>The "eventbrite" shortcode much have an attribute of either "<b><i>src</i></b>" or "<b><i>url</i></b>", i.e.:</p>
<ul>
<li>[eventbrite type="ticket-form" <b><i>src</i></b>="http://www.eventbrite.com/tickets-external?eid=582216425&ref=etckt"]</li>
<li>[eventbrite type="ticket-form" <b><i>url</i></b>="http://www.eventbrite.com/tickets-external?eid=582216425&ref=etckt"]</li>
</ul>
</div>
HTML;
  } else if (!empty($url) && !empty($src)) {
    $html =<<<HTML
<div style="$div_style">
You should only the "<b><i>src</i></b>" attribute or the "<b><i>url</i></b>" attribute when using the "eventbrite" shortcode.
</div>
HTML;
  } else if (!in_array($args['type'],$valid_types)) {
    $valid_types = implode('</b></i>"</li><li>"<i><b>',$valid_types);
    $html =<<<HTML
<div style="$div_style">
<p>When using the "eventbrite" shortcode you must specifiy an attribute of "<b><i>type</i></b>" with one of the following valid values:</p>
<ul><li>"<i><b>$valid_types</b></i>"</li></ul>
<p>i.e.:</p>
<ul>
<li>[eventbrite <b><i>type</i></b>="<b><i>ticket-form</i></b>" src="$url$src"]</li>
</ul>
</div>
HTML;
  } else  {
  $html = <<<HTML
<div id="eventbrite">
  <iframe src="$src$url" width="$width" height="$height" allowtransparency="true" scrolling="auto"></iframe>
</div>
HTML;
  }
  return $html;
}

Autres conseils

départ EventExpresso (http://eventespresso.com/) qui a à la fois un payé et une version gratuite. Cela devrait faire tout ce que vous avez besoin.

Vous pouvez modifier le formulaire standard d'enregistrement des utilisateurs de WordPresss d'exiger plus de données que le nom d'utilisateur habituelle + adresse e-mail.

add_action('register_form','my_show_extra_fields');
add_action('register_post','my_check_fields',10,3);
add_action('user_register','my_register_extra_fields',10,3);

function my_show_extra_fields(){
    ?>
    <style>
    #user_first, #user_last, #hzip {
      background:none repeat scroll 0 0 #FBFBFB;
      border:1px solid #E5E5E5;
      font-size:24px;
      margin-bottom:16px;
      margin-right:6px;
      margin-top:2px;
      padding:3px;
      width:97%;
    }
    </style>
    <p><label>First Name<br/>
      <input id="user_first" type="text" tabindex="20" size="25" value="<?php echo $_POST['first']; ?>" name="first"/>
      </label></p>
    <p><label>Last Name<br/>
      <input id="user_last" type="text" tabindex="20" size="25" value="<?php echo $_POST['last']; ?>" name="last"/>
      </label></p>
    <p><label>Home ZIP Code<br/>
      <input id="hzip" type="text" tabindex="20" size="25" maxlength="10" value="<?php echo $_POST['hzip']; ?>" name="hzip"/>
      </label></p>
    <?php
}

function my_check_fields($login, $email, $errors) {
  global $firstname, $lastname, $hzip;
  if ($_POST['first'] == '') {
    $errors->add('empty_realname', "<strong>ERROR</strong>: Please enter first name");
  } else {
    $firstname = $_POST['first'];
  }
  if ($_POST['last'] == '') {
    $errors->add('empty_realname', "<strong>ERROR</strong>: Please enter last name");
  } else {
    $lastname = $_POST['last'];
  }
  if ($_POST['hzip'] == '') {
    $errors->add('empty_hzip', "<strong>ERROR</strong>: Please enter home ZIP Code");
  } else {
    $hzip = $_POST['hzip'];
  }
}

function my_register_extra_fields($user_id, $password="", $meta=array())  {
  $userdata = array();
  $userdata['ID'] = $user_id;
  $userdata['first_name'] = $_POST['first'];
  $userdata['last_name'] = $_POST['last'];
  wp_update_user($userdata);
  update_usermeta( $user_id, 'hzip', $_POST['hzip'] );
}

add_action( 'show_user_profile', 'my_show_extra_profile_fields' );
add_action( 'edit_user_profile', 'my_show_extra_profile_fields' );

function my_show_extra_profile_fields( $user ) {
  $current_hzip = esc_attr( get_the_author_meta( 'hzip', $user->ID ) );
    ?>
    <h3>Extra profile information</h3>
    <table class="form-table">
      <tr>
        <th><label for="hzip">Home ZIP Code</label></th>
        <td>
          <input type="text" name="hzip" id="hzip" size="10" maxlength="10" value="<?php echo $current_hzip ?>" class="regular-text" />
        </td>
      </tr>
    </table>
    <?php
}

add_action( 'personal_options_update', 'my_save_extra_profile_fields' );
add_action( 'edit_user_profile_update', 'my_save_extra_profile_fields' );

function my_save_extra_profile_fields($user_id) {
  if ( !current_user_can('edit_user', $user_id) ) {
    return false;
  }
  update_usermeta( $user_id, 'hzip', $_POST['hzip'] );
}

Mettez ci-dessus dans votre functions.php.

Un plugin fantastique pour l'affichage des listes personnalisables de l'utilisateur est amr Listes de l'utilisateur

( Modifier. Ajout substance d'enregistrement utilisateur)

( Edit 2:. Ajout des données personnalisées normalement enregistrées par WordPress)

Ou utilisez BuddyPress, a toutes ces caractéristiques et plus après personnalisation

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top