web-dev-qa-db-ja.com

ワンタイムイベント登録のためのWordPressプラグイン?

私はチャリティイベントのためのウェブサイトを構築しています、そして私は人々がこのイベントに登録することを望みます。

フォームには名前、電子メール、その他のカスタム質問を含める必要があります。また、私は登録された人をリストするページが欲しいのですが。私はユーザーリストを表示するためのユーザーシステム+プラグインを使うことを考えていました。

どのプラグインを使用しますか?

ありがとう。

2
Gabriel Solomon

こんにちはsolomongaby:

フォーム

フォームのために私は GravityForms を使うことを提案します。フォームをデザインして投稿するのはとても簡単です。ここに プレゼンターになるためのリクエスト用のフォームの例 があります。

GravityFormsはサーバーあたり39ドルですが、あなたが彼らに慈善団体に無料コピーを提供しても構わないと思っているかもしれないと尋ねれば?

登録

おそらくEVENTBRITEのように WordPressビジネス会議用 を使用することをお勧めします。 _。

あなたのイベントが無料で、料金を支払っているのであれば、その料金は頭痛の種になる価値がある場合、EventBriteは無料で使用できます。 EventBrite(または同様のサービス)を使用することは、ワンタイムイベント用にWordPressで何かを実装しようとするよりもはるかに簡単です。

表示を簡単にするために shortcode と書きました(コードをテーマのfunctions.phpファイルに入れることができます)。これがショートコードのプロトタイプの使い方です。

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

そしてこれがショートコードが使われているように見えたものです(もちろんあなた自身のイベントURLを代用してください):

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

そして最後に、短いコードのPHPソースコードがあります。

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

有料版と無料版の両方を持つEventExpresso(http://eventespresso.com/)をチェックしてください。それはあなたがそれを必要とするすべてをするべきです。

3
Norcross

標準のWordPressユーザー登録フォームを変更して、通常のユーザー名+ Eメールアドレスよりも多くのデータを要求することができます。

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

上記をfunctions.phpに入れてください。

カスタマイズ可能なユーザーのリストを表示するための素晴らしいプラグインは AmRユーザーリスト です。

編集:ユーザー登録情報を追加しました。)

編集2:WordPressでは通常保存されないカスタムデータを追加しました。)

2
Doug

またはBuddyPressを使用して、カスタマイズ後にこれらすべての機能を追加

2
bueltge