it-swarm-id.com

Plugin WordPress untuk Pendaftaran Acara Sekali Kali?

Saya sedang membangun situs web untuk acara amal dan saya ingin orang mendaftar untuk acara ini.

Formulir harus berisi nama, email, dan pertanyaan khusus lainnya. Saya juga ingin halaman tempat daftar orang yang terdaftar. Saya sedang berpikir untuk menggunakan sistem pengguna + plugin untuk mendaftar daftar pengguna.

Plugin apa yang akan Anda gunakan?

Terima kasih.

2
Gabriel Solomon

Hai solomongaby:

Formulir

Untuk formulir saya sarankan menggunakan GravityForms . Sangat mudah digunakan untuk mendesain dan memposting formulir, dan inilah contoh formulir yang kami buat untuk permintaan menjadi presenter .

GravityForms adalah $ 39 per server tetapi jika Anda bertanya, mereka mungkin bersedia memberikan salinan gratis untuk amal?

Pendaftaran

Saya mungkin hanya merekomendasikan menggunakan EventBrite seperti yang kami lakukan untuk konferensi bisnis WordPress kami .

EventBrite gratis untuk digunakan jika acara Anda gratis dan biayanya sepadan dengan tidak adanya sakit kepala jika Anda mengenakan biaya. Menggunakan EventBrite (atau layanan serupa) akan jauh lebih mudah daripada mencoba mengimplementasikan sesuatu di WordPress untuk acara satu kali.

Saya menulis shortcode untuk mempermudah tampilan (Anda dapat meletakkan kode di file functions.php tema Anda) . Inilah penggunaan prototipe untuk kode pendek:

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

Dan inilah yang tampak seperti kode pendek yang digunakan ( pastikan untuk mengganti URL acara Anda sendiri tentu saja ):

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

Dan akhirnya inilah kode sumber PHP untuk kode pendek:

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

lihat EventExpresso (http://eventespresso.com/) yang memiliki versi berbayar dan gratis. Itu harus melakukan semua yang Anda butuhkan.

3
Norcross

Anda dapat mengubah formulir pendaftaran pengguna WordPress standar untuk membutuhkan lebih banyak data daripada nama pengguna + alamat email yang biasa.

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

Letakkan di atas dalam functions.php Anda.

Plugin fantastis untuk menampilkan daftar pengguna yang dapat disesuaikan adalah Daftar Pengguna AmR

( Edit: Menambahkan hal-hal pendaftaran pengguna.)

( Edit 2: Menambahkan data khusus yang biasanya tidak disimpan oleh WordPress.)

2
Doug

Atau gunakan BuddyPress, miliki semua fitur ini dan lebih banyak lagi setelah penyesuaian

2
bueltge