it-swarm-es.com

¿Complemento de WordPress para el registro de eventos únicos?

Estoy creando un sitio web para un evento de caridad y me gustaría que la gente se registre para este evento.

El formulario debe contener nombre, correo electrónico y otras preguntas personalizadas. También me gustaría una página donde listar las personas registradas. Estaba pensando en usar el sistema de usuario + un complemento para listar la lista de usuarios.

¿Qué complementos utilizarías?

Gracias.

2
Gabriel Solomon

Hola solomongaby:

Formas

Para la forma sugeriría usar GravityForms . Es muy fácil de usar para diseñar y publicar un formulario, y aquí hay un formulario de ejemplo que hicimos para que las solicitudes sean un presentador .

¿GravityForms cuesta $ 39 por servidor pero si pides que estén dispuestos a dar una copia gratuita a una organización benéfica?

Registro

Probablemente solo recomiendo usar EventBrite como hicimos para nuestra conferencia de negocios de WordPress .

EventBrite es de uso gratuito si su evento es gratuito y las tarifas bien valen la pena por la falta de dolor de cabeza si está cargando. Usar EventBrite (o un servicio similar) será mucho, mucho más fácil que intentar implementar algo en WordPress para un evento único.

Escribí un shortcode para facilitar la visualización (puedes poner el código en el archivo functions.php de tu tema) . Aquí está el uso del prototipo para el código corto:

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

Y este es el aspecto del código abreviado en uso (, asegúrese de sustituir su propia URL del evento, por supuesto ):

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

Y finalmente, aquí está el PHP código fuente para el código corto:

<?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

visita EventExpresso (http://eventespresso.com/) que tiene una versión de pago y una gratuita. Eso debería hacer todo lo que necesites.

3
Norcross

Puede modificar el formulario de registro de usuario de WordPresss estándar para requerir más datos que el nombre de usuario habitual y la dirección de correo electrónico.

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'] );
}

Ponga lo anterior en su functions.php.

Un fantástico complemento para mostrar listas personalizables de usuarios es Listas de usuarios de AmR

( Editar: Se agregaron cosas de registro de usuario).

( Edit 2: Datos personalizados agregados que WordPress no guarda normalmente.)

2
Doug

O use BuddyPress, tiene todas estas características y más después de personalizar

2
bueltge