insert" /> insert" />

Как создать "обратную связь" без плагинов для Wordpress, используя класс $wpdb->insert

Опубликовано: 01.09.2018

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

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

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

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

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

 

 

Заполняем все как указано, и нажимаем “Сохранить”, после чего в левой части появится ваша таблица “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 и созданию формы обратной связи .

Похожие записи

Хотите подобный функционал, верстку либо помощь в настройке вашего сайта?

Свяжитесь со мной
rss