it-swarm-eu.dev

WordPress Plugin pro jednorázovou registraci událostí?

Stavím webové stránky pro charitativní akci a rád bych, aby se lidé zaregistrovali na tuto akci.

Formulář by měl obsahovat jméno, e-mail a další vlastní dotazy. Chtěl bych také stránku, na které by se uváděli registrované osoby. Přemýšlel jsem o použití uživatelského systému + plugin pro výpis seznamu uživatelů.

Jaké pluginy byste použili?

Dík.

2
Gabriel Solomon

Ahoj solomongaby:

Formuláře

Pro formulář bych doporučil GravityForms . Je to super snadné použít k návrhu a zaúčtování formuláře, a zde je příklad formuláře jsme dělali pro požadavky být moderátor .

GravityForms je $ 39 na server, ale pokud se zeptáte, že mohou být ochotni dát charitě bezplatnou kopii?

Registrace

Já bych asi jen doporučuji použít EventBrite jako my pro naši obchodní konferenci WordPress .

EventBrite je zdarma, pokud vaše akce je zdarma a poplatky jsou dobře stojí za nedostatek bolesti hlavy, pokud jste nabíjení. Použití EventBrite (nebo podobné služby) bude mnohem, mnohem snazší, než se snažit něco implementovat do WordPressu pro jednorázovou událost.

Napsal jsem krátký kód , aby bylo zobrazení snadné (kód můžete vložit do souboru functions.php) . Zde je použití prototypu krátkého kódu:

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

A to je to, co krátký kód vypadal jako v použití ( Určitě nahradit vlastní adresu URL události ):

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

A konečně je zde zdrojový kód PHPpro krátký kód:

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

podívejte se na EventExpresso (http://eventespresso.com/), který má placenou i bezplatnou verzi. To by mělo dělat všechno, co potřebujete.

3
Norcross

Standardní registrační formulář uživatele WordPresss můžete upravit tak, aby vyžadoval více dat než obvyklé uživatelské jméno + e-mailová adresa.

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

Dejte to do svého functions.php.

Fantastický plugin pro zobrazení přizpůsobitelných seznamů uživatelů je Seznamy uživatelů AmR

( Upravit: Přidána registrace uživatele.)

( Edit 2: Přidána vlastní data, která WordPress normálně neuložila.)

2
Doug

Nebo použijte BuddyPress, má všechny tyto funkce a další po přizpůsobení

2
bueltge