Что такое $wpdb->insert или создаем Обратную связь на примере. Часть 1

Как расширить границы возможностей WordPress, или как сделать их безграничными? Знакомьтесь, $wpdb  класс функций для манипуляции с базой данных WordPress. В данном уроке, на примере создания формы обратной связи, я покажу как работает класс $wpdb.

Больше всего в работе с базой данных я не любил подключаться к ним и думать о защите. Но когда я познакомился с классом $wpdb, то был приятно удивлен, на сколько он прост, знали бы вы сколько разных идей посетило мою голову. К концу урока, на примере создания формы обратной связи, я попытаюсь максимально просто донести информацию. Я уверяю вас, все проще, чем покажется на первый взгляд.

1. Создаем таблицу для сообщений

Все наши сообщения и пожелания посетителей будем сохранять в базе данных, назовем её “feedback”. Я опишу, как создавать таблицу на примере PhpMyAdmin, если у вас другая система, поинтересуйтесь у своего хостера или в интернете как создать БД в той системе, в крайнем случае, напишите мне, постараюсь помочь.

  • Заходим в PhpMyAdmin
  • В левой колонке выбираем вашу базу данных (кликнув по ней)
  • Нажимаем новая
  • Заполняем поля так как у меня на картинке

 

База данных feedback

 

  • Заполняем все как указано, и нажимаем “Сохранить”, после чего в левой части появится ваша таблица “Feedback”

2. Форма и обработчик

В этой части мы познакомимся с классом $wpdb->insert, но прежде чем приступить, нужно создать форму, в которую пользователь будет вносить данные. Можно воспользоваться любым генератором, либо взять мой код, который я приведу ниже.


<?php if (isset($_GET['send'])) {
echo '<p style="color:red;">Сообщение отправлено!</p>';
}
?>
<br>
<form id="feedback" class="appnitro" method="post" action="<?php bloginfo('template_url'); ?>/handler.php">
<div class="form_description">
<h2>Обратная связь</h2>
<br>
<p>Напишите свой вопрос или пожелание, в ближайшее время администратор ответит вам.</p>
<br>
</div>

<label class="description" for="name">Имя </label>
<div>
<input id="name" name="name" class="element text small" type="text" maxlength="255" value=""/>
</div>

<label class="description" for="email">Email адрес </label>
<div>
<input id="email" name="email" class="element text medium" type="email" maxlength="255" value=""/>
</div>

<label class="description" for="content">Ваше пожелание или вопрос </label>
<div>
<textarea id="content" name="content" class="element textarea small"></textarea>
</div>

<input type="hidden" name="form_id" value="" />
<input id="saveForm" class="button_text" type="submit" name="submit" value="Отправить" />

</form>

В уроке по добавлению новостей не заходя в админку WordPress в пункте 2 и 3, я рассказывал, как выбрать пользовательский шаблон для страницы. Создайте страницу по примеру из урока, и вставьте в нужное место форму.

Чтобы форма была внутри вашего дизайна, нужно скопировать код из файла page.php в ваш файл feedback.php и вставить форму вместо <?php the_content(); ?>. Вот что на данном этапе получилось у меня.

Форм фидбек

После чего, в папке шаблона создаем файл handler.php, и вставляем в него код


<?php
/* Define these, So that WP functions work inside this file */
define('WP_USE_THEMES', false);
require( $_SERVER['DOCUMENT_ROOT'] .'/wp-blog-header.php');
header('Location: ' . $_SERVER['HTTP_REFERER'] . '&send=ok');
?>
<?php
$wpdb->insert(
'feedback',
array(
'name' => $_POST['name'],
'email' => $_POST['email'],
'content' => $_POST['content']
),
array(
'%s',
'%s',
'%s'
)
);
?>

Самые любопытные, наверняка уже заметили класс $wpdb->insert в коде, если вы на этом этапе хорошо рассмотрите код, вы поймете, как работает этот класс. Сначала указываете имя таблицы, в массиве перечисляете столбцы, которые мы создавали в первом пункте, данные в них заносим из формы, которая передает их методом $_POST, а второй массив указывает какого типа должны быть значения ‘%s’ строковые, ‘%d’ числовые.

На данном этапе все, если вы внесете данные в форму и нажмете “Отправить”, то сможете наблюдать как в таблице feedback появилась новая строка с вашими параметрами. Как видите нету ничего сложного, все просто и интуитивно понятно. В следующем уроке я познакомвлю вас с функцией выборки и удаления. Если вам понравился данный урок, или же просто информация была полезной ставьте лайки или делитесь в социальных сетях, буду очень признателен.

Второй урок по $wpdb и созданию формы обратной связи.

Метки: , , , Дата 29.06.2014
Хотите подобный функционал, верстку либо помощь в настройке вашего сайта?
Свяжитесь со мной

Оставить отзыв

(обязательно)

(обязательно)


Наши друзья
- ARTtime - Блог о Photoshop и Дизайн
- Блог о дизайне и арте
Реклама