it-swarm.com.de

WordPress-Plugin zum Planen von Terminen

Ich habe ein paar Plugins gesucht und gefunden, die mir helfen, den Terminplaner für den Websitebesitzer anzubieten. Gibt es etwas, das allen Benutzern der Website dieselbe Funktionalität bietet, anstatt nur dem Websitebesitzer?

Wie kann ein Besucher einen Termin mit einem beliebigen Benutzer der Website vereinbaren? Kennst du so ein Plugin? Wenn solch ein Plugin nicht existiert, welche Optionen können meine Tasse füllen? Oder ich muss etwas von mir selbst schreiben, wahrscheinlich unter Verwendung von Code von einem existierenden, aber von welchem ​​(irgendwelche Vorschläge?)

1
Ashfame

Ich habe vorher nach so etwas gesucht und festgestellt, dass es mühsam ist, eines dieser Plugins so zu ändern, dass es nach Benutzerzeitplan funktioniert. Am Ende habe ich einen benutzerdefinierten Beitragstyp "user_events" mit ein paar erstellt Benutzerdefinierte Felder (start_time, end_time, location, user_status, ...) und in jedem Autorenprofil habe ich eine Rasteransicht aller Tage in einem Monat erstellt, in der alle Ereignisse angezeigt werden, die der Benutzer durch Klicken auf die Schaltfläche "Ich habe ein benutzerdefiniertes Formular hinzugefügt" hatte Erstellen eines neuen Posts (vom Typ "user_events"), der einige wichtige Überprüfungen aufwies, um eine Überbuchung zu verhindern, indem die start_time und end_time von Ereignissen an diesem Tag überprüft wurden. Wenn ein neuer Beitrag (user_event) erstellt wird, habe ich den Beitragsautor in die Benutzer-ID geändert und den Beitragsstatus auf Ausstehend oder Entwurf gesetzt. Anschließend wird eine E-Mail an den Benutzer (Autor) gesendet. Wenn der Beitrag (user_event) in "veröffentlicht" geändert wurde, wird eine weitere E-Mail an den Gast gesendet, der den Termin angefordert hat.

das alles hat gut funktioniert, aber es hat einige Zeit gedauert, bis ich den Code gefunden habe. Leider habe ich keinen Zugriff mehr auf diesen Code, aber ich helfe gerne, wenn ich gebraucht werde.

Aktualisieren

Dies ist etwas, das ich schnell codiert habe (noch nicht getestet), um die Monatsrasteransicht auf einer Autorenseite anzuzeigen

if(isset($_GET['author_name'])){
    $curauth = get_userdatabylogin($author_name);
}else{
    $curauth = get_userdata(intval($author));
}
if (isset($_GET['c_mon']){
    $Month = $_GET['c_mon']
    $Year = $_GET['c_yea']
}else{
    $Month = date("m");
    $Year = date("y");
}
$day_in_month = cal_days_in_month(CAL_GREGORIAN, $Month, $Year);
$first_day =  date("l", mktime(0,0,0,$Month,1,$Year));
$last_day =  date("l", mktime(0,0,0,$Month,$day_in_month,$Year));

//print grid
//open the table
echo '<div class="current_month"><table><tr><td>Sunday</td><td>Monday</td><td>Tuesday</td><td>Wednesday</td><td>Thursday</td><td>Friday</td><td>Saturday</td></tr>';
//skip days til first day of month = day of week
switch ($first_day) {
    case 'Sunday':
        echo '<tr>';
        break;
    case 'Monday':
        echo '<tr><td>&nbsp;</td>';
        break;
    case 'Tuesday':
        echo '<tr><td>&nbsp;</td><td>&nbsp;</td>';
        break;
    case 'Wednesday':
        echo '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>';
        break;
    case 'Thursday':
        echo '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>';
        break;
    case 'Friday':
        echo '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>';
        break;
    case 'Saturday':
        echo '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>';
        break;
}

$count = 1;

while ($count < $day_in_month){
    //get all of says events
    $args = array(
        'posts_per_page' => -1,
        'post_type'=> 'user_events',
        'author' => $curauth->ID,
        'order' => 'ASC',
        'orderby' => 'meta_value',
        'meta_key' => 'user_events_start'
        'meta_query' => array(
        array(
            'key' => 'user_events_date',
            'value' => $Month.'/'.$count.'/'.$Year,
        )
    ));

    //open new week row
    if (date("l", mktime(0,0,0,$Month,$count,$Year)) == 'Sunday' && $count > 1){
            echo '</tr><tr>';
    }
    $events = New  WP_Query($args);
    if ($events->have_posts()){
        echo '<td><div class="day_container"><div class="day_date">'.$count.'</div><div class="day_events_container"><ul>';
            while ($events->have_posts()){
                $events->the_post();
                $out = '';
                $out = '<li class="event"><div class="evet_time">'.get_post_meta($post->ID,'user_events_start',true). ' - '. get_post_meta($post->ID,'user_events_end',true).'</div>';
                $out .= '<div class="event_name">'.get_the_title($post->ID).'</div>';
                $out .= '<div class="event_location">'.get_post_meta($post->ID,'user_events_location',true).'</div></div></li>';
                $echo $out;
            }

        echo '<ul></div></div></td>';
    }else{
        echo '<td><div class="day_container"><div class="day_date">'.$count.'</div></div></td>';
    }

$count = $count + 1;
}

//close extra days of week form next month
switch ($first_day) {
    case 'Sunday':
        echo '<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
        break;
    case 'Monday':
        echo '<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';

        break;
    case 'Tuesday':
        echo '<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
        break;
    case 'Wednesday':
        echo '<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
        break;
    case 'Thursday':
        echo '<td>&nbsp;</td><td>&nbsp;</td></tr>';
        break;
    case 'Friday':
        echo '<td>&nbsp;</td></tr>';
        break;
    case 'Saturday':
        echo '</tr>';
        break;
}

//close table
echo '</table></div>';

In diesem Code wird nun vorausgesetzt, dass Sie Folgendes haben:

  • ein benutzerdefinierter Beitragstyp mit dem Namen: 'user_events'
  • alle Posts vom Typ "user_events", "post_author", werden auf den gewünschten User gesetzt.
  • benutzerdefinierte Dateien:
    • user_events_date -> enthält das Ereignisdatum im Format Monat/Tag/Jahr, z. B .: 29.05.2011
    • user_events_start -> hält die Startzeit des Ereignisses im 12:00-Format
    • user_events_end -> hält die Ereignisendzeit im 18:00-Format
    • user_events_location -> enthält die Ereignisposition als Zeichenfolge
1
Bainternet