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