اشتراک در خبرنامه‌ دارکوب وب

با عضویت در خبرنامه‌ی دارکوب وب مقالات و آموزش‌ها هر هفته به ایمیل شما ارسال می‌شود.

آموزش ساخت پلاگین برای وردپرس قسمت پنجم

آموزش ساخت پلاگین برای وردپرس قسمت پنجم

چگونه اطلاعات را وارد دیتابیس کنیم ؟؟؟

بسادگی این کار را انجام میدهیم ، ابتدا در پوشه include فایلی به نام my_plugin_insert_to_db.php می سازم ، خوب اطلاعات من از طریق فرم و توسط متد post به این صفحه ارسال خواهد شد پس باید چک کنیم تا اطلاعات فرستاده شده اشتباه نباشد، اگر اطلاعات اشتباه بود به صفحه خطا برود اگر درست بود به صفحه موفقیت برود.

من در پوشه public دو فایل به نام های my_plugin_error.php و my_plugin_success.php ساختم آنها دو فایل ساده اند که چاپ می کنند خطا یا موفقیت همین .

چطور کاربر را به این صفحات هدایت کنم ؟؟

با دستود :


header('location:' . plugins_url('../public/my_plugin_success.php', __FILE__));

اما محتویات کلی فایل my_plugin_insert_to_db.php


<?php
require_once('../../../../wp-config.php');
global $wpdb;
$myTableName = $wpdb->prefix . 'myplugindatabase';
if (isset($_POST["myPluginSub"])) {

 $name = $_POST["myPluginName"];
 $family = $_POST["myPluginFamily"];
 $mobile = $_POST["myPluginMobile"];
 $address = $_POST["myPluginAddress"];

 if (!isset($name) ||
 $name == "" ||
 is_numeric($name) ||
 !isset($family) ||
 $family == "" ||
 is_numeric($family) ||
 !isset($mobile) ||
 $mobile == "" ||
 !isset($address) ||
 $address == ""
 ) {
 header('location:' . plugins_url('../public/my_plugin_error.php', __FILE__));
 
 die();
 } else {
 if ($wpdb->query($wpdb->prepare("INSERT INTO ".$myTableName."(myName,myFamily,myMobile,myAddress)VALUES(%s,%s,%s,%s)", array($name, $family, $mobile, $address)))) {
 header('location:' . plugins_url('../public/my_plugin_success.php', __FILE__));
 die();
 } else {
 header('location:' . plugins_url('../public/my_plugin_error.php', __FILE__));
 die();
 }
 }
} else {
 header('location:' . plugins_url('../public/my_plugin_error.php', __FILE__));
 die();
}

ما این فایل ایجاد کردیم اما فرم ما هنوز کار نمی کنه ، چرا ؟ چون باید در action فرم آدرس این فایل را وارد کنیم به این شکل:


<h3 id="myPluginTitle">به صفحه رزرو ساده من خوش آمدید.</h3>

<p id="MypluginFormMessage"></p>

<form name="registerCustomer" method="post" action="<?php echo plugins_url('../include/my_plugin_insert_to_db.php', __FILE__); ?>" onsubmit="return jsValidation.validation();">

 <p>نام: <input type="text" name="myPluginName" class="myPluginClsCss" id="myPluginIdName"></p>
 
 <p>نام خانوادگی: <input type="text" name="myPluginFamily" class="myPluginClsCss" id="myPluginIdFamily"></p>

 <p>موبایل: <input type="text" name="myPluginMobile" class="myPluginClsCss" id="myPluginIdMobile"></p>
 
 <p>آدرس: <input type="text" name="myPluginAddress" class="myPluginClsCss" id="myPluginIdAddress"></p>
 
 <p><input type="submit" name="myPluginSub" class="myPluginClsCss" id="myPluginSub" value="ثبت"></p>

</form>

در پلاگین چگونه آدرس دهی می کنیم ؟

با استفاده از دستور plugin_url

در فایل جاوا اسکریپت هم من تغییر کوچکی اعمال کردم به این شکل :


var jsValidation = (function () {

var doc = window.document,
name = doc.getElementById("myPluginIdName"),
family = doc.getElementById("myPluginIdFamily"),
mobile = doc.getElementById("myPluginIdMobile"),
address = doc.getElementById("myPluginIdAddress"),
message = doc.getElementById("MypluginFormMessage"),
validation;

function checkNotEmpty() {
return !(name.value === "" || !isNaN(name.value) || family.value === "" || !isNaN(family.value) ||
mobile.value === "" || isNaN(mobile.value) || mobile.value.length &lt; 5 || address.value === "" || !isNaN(address.value));
}

validation = function () {

if (checkNotEmpty() === true) {
message.innerHTML =":)";
return true;
} else {
message.innerHTML =":(";
return false;
}

};

return {
validation: validation
}

})();

فقط گفتم به جای alert محتوای مربوطه را در تگ p نمایش بده .

بیاد دستور insert را تست کنیم .

pic9PlugE2

می بینید که فیلد ها را به درستی پر کردم حالا اگر کلید ثبت را فشار دهید ، باید مانند من به صفحه success.php بروید .

pic10PlugE2

حالا به phpmyadmin بریم تا ببینیم آیا اطلاعات وارد شده یا نه

pic11PlugE2

می بینید که اطلاعات به درستی وارد شده.

در قسمت بعد خواهیم دید چگونه اطلاعات درون جدول را در صفحه ادمین نمایش دهید.

درباره نویسنده

پوریا

سلام ، من پوریا هستم با جاوا آشنایی دارم به هوش مصنوعی و امنیت علاقه مندم و امید وارم آموزش هایی که در وب سایت قرار می دم برای شما مفید باشه ، موفق باشید {^}

نظر دهید

سوالات، انتقادات و پیشنهادات خود را در مورد این مطلب برای ما بفرستید. :-)