2017-03-07 6 views

Antwort

0

Die Antwort von Haninder hat einen guten Start, speichert aber die Daten nicht wie im OP in einer Datenbank.

Hier wird es schwierig, da es viele Möglichkeiten gibt.

Sie können die Daten leicht an verschiedenen Stellen speichern, aber keine sind semantisch korrekt oder über einen langen Zeitraum wartbar.

In einer einzigen Option in der Tabelle Optionen

function save_request($data){ 

    $opts = get_option('contact_requests'); 

    if(! $opts || ! is_array($opts)){ 
     $opts = array(); 
    } 

    $opts[] = $data; 

    update_option('contact_requests', $opts); 

} 

Diese eine langsame Anforderung den Punkt einer Datenbank in erster Linie zu speichern bedeuten würde und besiegt, nachdem mehrere hundert Kontaktanfragen, auch diaplying und Sortieren der Daten würde schwierig werden.

Der beste Weg wäre wirklich eine benutzerdefinierte Datenbanktabelle, aber es gibt eine Menge zu beachten, wenn Sie diesen Weg gehen.

https://code.tutsplus.com/tutorials/custom-database-tables-creating-the-table--wp-28124

Benutzerdefinierte Beitrag Typ

Dies ist, wie ich dieses Problem nähern würde.

vielleicht könnten Sie einen benutzerdefinierten Beitragstyp erstellen, sagen Sie "contact_requests" und erstellen Sie einen Post mit einem Post-Meta, um eine Kontaktanfrage darzustellen.

Auf diese Weise erhalten Sie bereits eine ordentliche Liste in admin, und können die Daten schnell und einfach nach Bedarf sortieren und zugreifen. Dies wäre durch Hunderttausende von Einträgen stabil und schnell.

function save_request($data){ 

    $content = ''; 

    foreach($data as $key => $name){ 
     $content .= sprintf('%s - %s' . PHP_EOL, $key, $name); 
    } 

    $post_data = array(
     'post_title' => 'Contact Request ' . esc_html($data['name']), 
     'post_content' => $content, 
     'post_type' => 'contact_requests' 
    ); 
    $post_id = wp_insert_post($post_data); 

    //Add Post Meta Here 
    add_post_meta($post_id, 'contact_name', esc_html($data['name'])); 
    add_post_meta($post_id, 'contact_email', esc_html($data['email'])); 
    add_post_meta($post_id, 'contact_message', esc_html($data['message'])); 

    return $post_id; 

} 

Verwandte Themen