Frage

Ich erstelle eine Website für eine Wohltätigkeitsveranstaltung und möchte, dass sich die Leute für diese Veranstaltung anmelden.

Das Formular sollte Namen, E -Mail und andere benutzerdefinierte Fragen enthalten. Außerdem möchte ich eine Seite, auf der die registrierten Personen aufgeführt sind. Ich habe darüber nachgedacht, das Benutzersystem + ein Plugin für die Auflistung der Benutzerliste zu verwenden.

Welche Plugins würden Sie verwenden?

Vielen Dank.

War es hilfreich?

Lösung

Hi Solomongaby:

Formen

Für das Formular würde ich vorschlagen Schwerkraftform. Es ist super einfach, ein Formular zu entwerfen und zu veröffentlichen, und hier ist Ein Beispielformular, das wir für Anfragen zum Moderator gestellt haben.

GravityForms beträgt 39 US -Dollar pro Server. Wenn Sie jedoch fragen, dass sie bereit sind, einer Wohltätigkeitsorganisation eine kostenlose Kopie zu geben?

Anmeldung

Ich würde wahrscheinlich nur nur Verwenden Sie die Verwendung Eventbrite wie wir es getan haben Für unsere WordPress Business Conference.

EventBrite kann kostenlos verwendet werden, wenn Ihre Veranstaltung kostenlos ist und die Gebühren mangelnde Kopfschmerzen wert sind, wenn Sie aufladen. Die Verwendung von EventBrite (oder einem ähnlichen Service) ist viel einfacher, als zu versuchen, etwas in WordPress für ein einmaliges Ereignis zu implementieren.

Ich habe a geschrieben Shortcode Um die Anzeige einfach zu machen (Sie können den Code in Ihr Thema einfügen functions.php Datei). Hier ist die Prototypenverwendung für den Shortcode:

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

Und so sah der Shortcode aus (in Gebrauch (Stellen Sie natürlich sicher, dass Sie Ihre eigene Event -URL ersetzen):

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

Und schließlich ist hier der PHP -Quellcode für den kurzen Code:

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

Andere Tipps

Schauen Sie sich EventExpresso (http://eventespresso.com/) an, das sowohl eine kostenpflichtige als auch eine kostenlose Version hat. Das sollte alles tun, was Sie brauchen.

Sie können das Standard -Benutzerregistrierungsformular für WordPresss so ändern, dass mehr Daten als die übliche Benutzername + E -Mail -Adresse benötigt werden.

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

Legen Sie das oben in Ihre functions.php.

Ein fantastisches Plugin zum Anzeigen anpassbarer Benutzerlisten ist AMR -Benutzerlisten

(Bearbeiten: Benutzerregistrierung hinzugefügt.)

(Bearbeiten 2: Benutzerdefinierte Daten, die normalerweise nicht von WordPress gespeichert sind, hinzugefügt.)

Oder verwenden Sie Buddypress, haben all diese Funktionen und mehr nach dem Anpassen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top