Senden Sie Formulardaten an die WordPress-Datenbanktabelle

Lesezeit: 3 Minuten

Benutzer-Avatar
Britchi2

Ich versuche, ein Plugin zu erstellen, mit dem der Administrator Daten zu einem bestimmten Paket hinzufügen kann (genau wie beim Erstellen eines Benutzers). Im Frontend habe ich ein Formular, mit dem die Besucher nach einem bestimmten Paket suchen können, indem sie eine ID verwenden, die diesem Paket vom Administrator zugewiesen wurde.

Ich habe das System mit PHP gebaut und es funktioniert gut. Jetzt möchte ich es in ein WordPress-Plugin umwandeln, und es fällt mir schwer, die Formulardaten an die wpdb-Tabelle zu senden, die erstellt wurde, als das Plugin aktiviert wurde (wp_demo).

Dies ist das Formular:

function registration_init(){
    echo '<form action="demo.php" method="post" />';
    echo "<h1>Britchi Tracking</h1>";
    echo '<p>';
    echo 'Costumers Name (required) <br/>';
    echo '<input type="text" name="cname" placeholder="Emmanuel John"/>';
    echo '</p>';
    echo '<p>';
    echo 'Tracking number (required) <br/>';
    echo '<input type="text" name="ctracking" placeholder="EEX28PDS"/>';
    echo '</p>';
    echo '<p>';
    echo 'Email (required) <br/>';
    echo '<input type="email" name="cemail" placeholder="Email"/>';
    echo '</p>';
    echo '<p>';
    echo 'Recived Port (required) <br/>';
    echo '<input type="text" name="crport" placeholder="Brazil Port"/>';
    echo '</p>';
    echo '<p>';
    echo 'Delivered Port (required) <br/>';
    echo '<input type="text" name="cdport" placeholder="Lagos Port"/>';
    echo '</p>';
    echo '<p>';
    echo 'Current Location (required) <br/>';
    echo '<input type="text" name="clocation" placeholder="Abuja" />';
    echo '</p>';
    echo '<p>';
    echo 'Destination (required) <br/>';
    echo '<input type="text" name="cdestination" placeholder="Total filling Station, Abuja"/>';
    echo '</p>';
    echo '<p><input type="submit" name="cregistered" value="Register"></p>';
    echo '</form>';
}

Dies ist der Formularverarbeitungscode:

<?php

define('DB_NAME', 'wordpree2');
define('DB_USER', 'root');
define('DB_PASSWORD', 'chimezie12');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
    die('Could not connect: ' . mysql_error());
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
}

$db_selected = mysql_selected_db(DB_NAME, $link);

if (!$db_select) {
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}

$cname = $_POST['cname'];
$cemail = $_POST['cemail'];
$ctracking = $_POST['ctracking'];
$crport = $_POST['crport'];
$cdport = $_POST['cdport'];
$clocation = $_POST['clocation'];
$cdestination = $_POST['cdestination'];

$sql = "INSERT INTO `wp_demo` (cname, cemail, ctracking, erport, cdport, clocation, cdestination) VALUES ('$cname', '$cemail', '$ctracking', '$crport', '$cdport', '$clocation', '$cdestination')";

if (!mysql_query($sql)) {
    die('ERROR: ' . mysql_error());
}

mysql_close();
?>

Ich weiß, dass dies nicht der richtige Weg ist, um Daten in die wpdb-Tabelle einzufügen, aber ich weiß nicht, wie ich es sonst machen soll.

  • Wenn Sie SQL-Funktionen anstelle der Abfragefunktionen/Objekte im WordPress-Kern verwenden, würde ich vorschlagen, dass Sie mysqli anstelle von mysql verwenden. Es gibt viele Beispiele, die online verfügbar sind.

    – Nora McDougall-Collins

    1. Mai 2020 um 14:50 Uhr


Benutzer-Avatar
B_CooperA

Nur ein kurzes Beispiel, wie man Daten in die Datenbank einfügt WordPress Weg:

<?php 
global $wpdb;
$wpdb->insert('wp_demo', [
    'cname'     => $_POST['cname'],
    'cemail'    => $_POST['cemail'],
    'ctracking' => $_POST['ctracking']
    ], ['%s','%s', '%s']
);

Die vollständige Referenz finden Sie unter: https://codex.wordpress.org/Class_Reference/wpdb#INSERT_row

Vergessen Sie auch nicht, die Eingabe zu bereinigen:
https://codex.wordpress.org/Validating_Sanitizing_and_Escaping_User_Data

  • Wie können diese gespeicherten Daten unter einer Seite im Custom Post Type angezeigt werden?

    – Dito PS

    3. Oktober 2020 um 7:46 Uhr

1101090cookie-checkSenden Sie Formulardaten an die WordPress-Datenbanktabelle

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy