Я пытаюсь создать плагин, который позволит администратору добавлять данные о конкретном пакете (так же, как создание пользователя). Во внешнем интерфейсе у меня будет форма, которая позволит посетителям искать конкретный пакет, используя идентификатор, который был назначен этому пакету администратором.
Я собрал систему, используя php, и она работает нормально. Теперь я хочу превратить его в плагин WordPress, и мне трудно отправить данные формы в таблицу wpdb, которая была создана при активации плагина (wp_demo).
Это форма:
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>';
}
Это код обработки формы:
<?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();
?>
Я знаю, что это не правильный способ вставки данных в таблицу wpdb, но я не знаю, как еще это сделать.
Просто краткий пример того, как вставить данные в базу данных WordPress
путь:
<?php
global $wpdb;
$wpdb->insert('wp_demo', [
'cname' => $_POST['cname'],
'cemail' => $_POST['cemail'],
'ctracking' => $_POST['ctracking']
], ['%s','%s', '%s']
);
Для полной ссылки смотрите: https://codex.wordpress.org/Class_Reference/wpdb#INSERT_row
Также не забудьте санировать входные данные:
https://codex.wordpress.org/Validating_Sanitizing_and_Escaping_User_Data
Других решений пока нет …