it-swarm.asia

Bir Kez Olay Kaydı için WordPress Eklentisi?

Bir hayır etkinliği için bir web sitesi kuruyorum ve insanların bu etkinliğe kayıt olmalarını istiyorum.

Formda ad, e-posta ve diğer özel sorular bulunmalıdır. Ayrıca kayıtlı kişilerin listeleneceği bir sayfa istiyorum. Kullanıcı listesini listelemek için kullanıcı sistemi + bir eklenti kullanmayı düşünüyordum.

Hangi eklentileri kullanırsınız?

Teşekkürler.

2
Gabriel Solomon

Merhaba solomongaby:

Formlar

Form için GravityForms kullanarak öneriyorum. Bir form tasarlamak ve göndermek çok kolay ve işte burada sunucu olma istekleri için yaptığımız bir örnek form .

GravityForms sunucu başına 39 $ 'dır ancak bir hayır kurumuna ücretsiz bir kopya vermeye istekli olabilirler mi?

Kayıt

Muhtemelen sadece EventBrite yaptığımız gibi kullanmanızı öneririm. WordPress iş konferansımız için .

EventBrite, etkinliğiniz ücretsiz ise ve ücretler, eğer ücret alıyorsanız baş ağrısının eksikliğine değiyorsa ücretsizdir. EventBrite (veya benzer bir hizmeti) kullanmak, bir kerelik bir etkinlik için WordPress'te bir şeyi uygulamaya çalışmaktan çok, çok daha kolay olacaktır.

Görüntülemeyi kolaylaştırmak için bir bir kısa kod yazdım (kodu temanızın functions.php dosyasına koyabilirsiniz) . İşte kısa kod için prototip kullanımı:

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

Kısa kodun kullanımda göründüğü şey de buydu ( tabii ki kendi olay URL'nizi değiştirdiğinizden emin olun):

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

Ve nihayet işte kısa kod için PHP kaynak kodu:

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

hem ücretli hem de ücretsiz sürümü olan EventExpresso'yu (http://eventespresso.com/) kontrol edin. Bu ihtiyacın olan her şeyi yapmalı.

3
Norcross

Standart WordPress kullanıcı kayıt formunu, normal kullanıcı adı + e-posta adresinden daha fazla veri gerektirecek şekilde değiştirebilirsiniz.

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

Yukarıdakileri functions.php içine yerleştirin.

Özelleştirilebilir kullanıcı listelerini görüntülemek için harika bir eklenti AmR Kullanıcı Listeleri

( Düzenleme: Kullanıcı kaydı bölümü eklendi.)

( Düzenleme 2: Normalde WordPress tarafından kaydedilmeyen özel veriler eklendi.)

2
Doug

Veya BuddyPress kullanın, özelleştirdikten sonra tüm bu özelliklere ve daha fazlasına sahip olun.

2
bueltge