web-dev-qa-db-fra.com

WordPress Plugin pour l'enregistrement ponctuel d'un événement?

Je construis un site Web pour un événement de charité et j'aimerais que les gens s'inscrivent à cet événement.

Le formulaire doit contenir le nom, l'adresse électronique et d'autres questions personnalisées. Aussi je voudrais une page où lister les personnes inscrites. Je pensais utiliser le système utilisateur + un plugin pour lister la liste des utilisateurs.

Quels plugins utiliseriez-vous?

Merci.

2
Gabriel Solomon

Bonjour solomongaby:

Formes

Pour la forme, je suggérerais d'utiliser GravityForms . Il est très facile à utiliser pour concevoir et publier un formulaire, et voici un exemple de formulaire que nous avons créé pour que les demandes de présentation soient présentées .

GravityForms coûte 39 € par serveur, mais si vous leur demandez, ils accepteront peut-être d'en donner une copie gratuite à une association caritative.

Enregistrement

Je voudrais probablement juste recommander d'utiliser EventBrite comme nous l'avons fait pour notre conférence d’affaires WordPress .

EventBrite est gratuit si votre événement est gratuit et que les frais valent bien le manque de maux de tête si vous payez. Utiliser EventBrite (ou un service similaire) sera beaucoup plus facile que d’essayer d’implémenter quelque chose dans WordPress pour un événement ponctuel.

J'ai écrit un shortcode pour faciliter l'affichage (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 à quoi ressemblait le shortcode utilisé (, assurez-vous bien de remplacer votre propre URL d'é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;
}
3
MikeSchinkel

découvrez EventExpresso (http://eventespresso.com/), qui propose à la fois une version payante et une version gratuite. Cela devrait faire tout ce dont vous avez besoin.

3
Norcross

Vous pouvez modifier le formulaire d’inscription d’utilisateur WordPress standard afin d’exiger plus de données que le nom d’utilisateur + adresse électronique habituels.

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 ce qui précède dans votre functions.php.

Un fantastique plugin pour afficher des listes personnalisables d’utilisateurs est Listes d’utilisateurs AmR

( Éditer: Ajout du matériel d'enregistrement d'utilisateur.)

( Édition 2: Ajout de données personnalisées non enregistrées normalement par WordPress.)

2
Doug

Ou utilisez BuddyPress, a toutes ces fonctionnalités et plus encore après la personnalisation

2
bueltge