it-swarm.asia

ووردبريس البرنامج المساعد لتسجيل الحدث لمرة واحدة؟

أقوم بإنشاء موقع ويب لحدث خيري وأود أن يسجل الأشخاص لهذا الحدث.

يجب أن يحتوي النموذج على الاسم والبريد الإلكتروني والأسئلة المخصصة الأخرى. أود أيضًا صفحة حيث أذكر الأشخاص المسجلين. كنت أفكر في استخدام نظام المستخدم + مكون إضافي لسرد قائمة المستخدمين.

ما الإضافات التي تستخدمها؟

شكر.

2
Gabriel Solomon

مرحبًا solomongaby:

إستمارات

بالنسبة للنموذج أود أن أقترح استخدام GravityForms . إنه سهل الاستخدام للغاية لتصميم ونشر نموذج ، وهنا نموذج مثال قدمناه لطلبات أن تكون مقدمًا .

تبلغ تكلفة GravityForms 39 دولارًا لكل خادم ، لكن إذا سألتهم فقد يكونون على استعداد لمنح مؤسسة خيرية نسخة مجانية؟

التسجيل

ربما أوصي فقط باستخدام EventBrite كما فعلنا لمؤتمر أعمال WordPress الخاص بنا .

EventBrite مجاني للاستخدام إذا كان الحدث الخاص بك مجاني والرسوم تستحق عدم وجود صداع إذا كنت الشحن. سيكون استخدام EventBrite (أو خدمة مماثلة) أسهل بكثير من محاولة تنفيذ شيء في WordPress لحدث لمرة واحدة.

لقد كتبت رمزًا قصيرًا لتسهيل العرض (يمكنك وضع الكود في ملف 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

يمكنك تعديل نموذج تسجيل مستخدم WordPresss القياسي لطلب بيانات أكثر من اسم المستخدم المعتاد + عنوان البريد الإلكتروني.

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