subscriptionsحرفه ای ترین دوره آموزش پلاگین نویسی وردپرس در ایران

١٣٣ رای ٩.١

access_time طول دوره۴۵ ساعت
event_seat تعداد جلسات٧۴ جلسه
people دانشجویان٣١٧ نفر
headset_mic پشتیبانی دوره۳ ماه

قیمت : ١٣٩ هزار تومان

schedule بیش از 45 ساعت آموزش ویدیویی حرفه ای - 4.5 گیگ اطلاعات
list جلسات description توضیحات دوره speaker_notes دیدگاه ها
list لیست جلسات دوره
  1. دوره مجازی پلاگین نویسی وردپرس (جلسه 1) : آشنایی با پلاگین ها،مقدمه و پیش نیاز ها play_circle_outlined
  2. دوره مجازی پلاگین نویسی وردپرس (جلسه 2) : نصب برنامه های لازم و آماده سازی محیط کار play_circle_outlined
  3. دوره مجازی پلاگین نویسی وردپرس (جلسه 3) : آشنایی با ساختار پلاگین وردپرس و نحوه اجرای آن play_circle_outlined
  4. دوره مجازی پلاگین نویسی وردپرس (جلسه 4) : بررسی hook ها در وردپرس و نحوه عملکرد آنها play_circle_outlined
  5. دوره مجازی پلاگین نویسی وردپرس (جلسه 5) : بررسی دقیق تر hook ها و ایجاد اولین پلاگین play_circle_outlined
  6. دوره مجازی پلاگین نویسی وردپرس (جلسه 6) : ایجاد پلاگین لینک دار کردن کلمات و فیلتر کردن محتوای مطالب play_circle_outlined
  7. دوره مجازی پلاگین نویسی وردپرس (جلسه 7) : ایجاد پلاگین فیلتر کردن کلمات زشت در نظرات play_circle_outlined
  8. دوره مجازی پلاگین نویسی وردپرس (جلسه 8) : معرفی شورت کد + ایجاد پلاگین محدود کردن مطالب play_circle_outlined
  9. دوره مجازی پلاگین نویسی وردپرس (جلسه 9) : ایجاد پلاگین جملات تصادفی به صورت shortcode play_circle_outlined
  10. دوره مجازی پلاگین نویسی وردپرس (جلسه 10) : پلاگین آمار بازدید وب سایت - ایجاد جدول های دیتابیس play_circle_outlined
  11. دوره مجازی پلاگین نویسی وردپرس (جلسه 11) : پلاگین آمار بازدید کاربران - کلاس wpdb play_circle_outlined
  12. دوره مجازی پلاگین نویسی وردپرس (جلسه 12) : پلاگین آمار بازدید کاربران - ثبت بازدید های کاربران play_circle_outlined
  13. دوره مجازی پلاگین نویسی وردپرس (جلسه 13) : پلاگین آمار بازدید کاربران - ایجاد منوی مدیریت play_circle_outlined
  14. دوره مجازی پلاگین نویسی وردپرس (جلسه 14) : پلاگین آمار بازدید کاربران - نمایش داده ها در بخش مدیریت play_circle_outlined
  15. دوره مجازی پلاگین نویسی وردپرس (جلسه 15) : پلاگین آمار بازدید کاربران - نمایش داده ها در بخش مدیریت(قسمت 2) play_circle_outlined
  16. دوره مجازی پلاگین نویسی وردپرس (جلسه 16) : پلاگین آمار بازدید کاربران - رسم نمودار با chart.js play_circle_outlined
  17. دوره مجازی پلاگین نویسی وردپرس (جلسه 17) : پلاگین آمار بازدید کاربران - رسم نمودار با chart.js - قسمت 2 play_circle_outlined
  18. دوره مجازی پلاگین نویسی وردپرس (جلسه 18) : پلاگین آمار بازدید کاربران -منوی تنظیمات play_circle_outlined
  19. دوره مجازی پلاگین نویسی وردپرس (جلسه 19) : پلاگین آمار بازدید کاربران -option ها و ذخیره تنظیمات پلاگین play_circle_outlined
  20. دوره مجازی پلاگین نویسی وردپرس (جلسه 20) : پلاگین آمار بازدید کاربران -wp_schedule_event و ارسال پیامک و ایمیل play_circle_outlined
  21. دوره مجازی پلاگین نویسی وردپرس (جلسه 21) : پلاگین آمار بازدید کاربران - wp_mail play_circle_outlined
  22. دوره مجازی پلاگین نویسی وردپرس (جلسه 22) : پلاگین آمار بازدید کاربران - user meta play_circle_outlined
  23. دوره مجازی پلاگین نویسی وردپرس (جلسه 23) : پلاگین آمار بازدید کاربران (جلسه پایانی) - کدهای نصب پلاگین play_circle_outlined
  24. دوره مجازی پلاگین نویسی وردپرس (جلسه 24) : پلاگین کاربران VIP - مقدمات play_circle_outlined
  25. دوره مجازی پلاگین نویسی وردپرس (جلسه 25) : پلاگین کاربران VIP - اضافه کردن محصول جدید play_circle_outlined
  26. دوره مجازی پلاگین نویسی وردپرس (جلسه 26) : پلاگین کاربران VIP - مدیریت محصولات play_circle_outlined
  27. دوره مجازی پلاگین نویسی وردپرس (جلسه 27) : پلاگین کاربران VIP - مدیریت کاربران play_circle_outlined
  28. دوره مجازی پلاگین نویسی وردپرس (جلسه 28) : پلاگین کاربران VIP - حذف و اضافه کردن کاربران ویژه play_circle_outlined
  29. دوره مجازی پلاگین نویسی وردپرس (جلسه 29) : پلاگین کاربران VIP - اضافه و کاهش اعتبار کاربران play_circle_outlined
  30. دوره مجازی پلاگین نویسی وردپرس (جلسه 30) : پلاگین کاربران VIP - ایجاد کیف پول کاربری play_circle_outlined
  31. دوره مجازی پلاگین نویسی وردپرس (جلسه 31) : پلاگین کاربران VIP - خرید عضویت VIP play_circle_outlined
  32. دوره مجازی پلاگین نویسی وردپرس (جلسه 32) : پلاگین کاربران VIP - ثبت خرید کاربر و صورت حساب play_circle_outlined
  33. دوره مجازی پلاگین نویسی وردپرس (جلسه 33) : پلاگین کاربران VIP - افزایش و کاهش کیف پول + صورت حساب کاربر play_circle_outlined
  34. دوره مجازی پلاگین نویسی وردپرس (جلسه 34) : پلاگین کاربران VIP - متاباکس ها و ایجاد مطالب vip play_circle_outlined
  35. دوره مجازی پلاگین نویسی وردپرس (جلسه 35) : پلاگین کاربران VIP - ایجاد فیلتر مطالب play_circle_outlined
  36. دوره مجازی پلاگین نویسی وردپرس (جلسه 36) : پلاگین کاربران VIP - ایجاد فیلتر های مطالب بر اساس شورتکد play_circle_outlined
  37. دوره مجازی پلاگین نویسی وردپرس (جلسه 37) : پلاگین کاربران VIP - مدیریت و دانلود فایل های vip - قسمت اول play_circle_outlined
  38. دوره مجازی پلاگین نویسی وردپرس (جلسه 38) : پلاگین کاربران VIP - مدیریت و دانلود فایل های vip - قسمت دوم play_circle_outlined
  39. دوره مجازی پلاگین نویسی وردپرس (جلسه 39) : پلاگین کاربران VIP - مدیریت و دانلود فایل های vip - قسمت سوم play_circle_outlined
  40. دوره مجازی پلاگین نویسی وردپرس (جلسه 40) : پلاگین کاربران VIP - مدیریت کارهای زمان بندی شده play_circle_outlined
  41. دوره مجازی پلاگین نویسی وردپرس (جلسه 41) : پلاگین کاربران VIP -پیاده سازی درگاه پرداخت آنلاین play_circle_outlined
  42. دوره مجازی پلاگین نویسی وردپرس (جلسه 42) : پلاگین کاربران VIP -آمار و اطلاعات کاربران ویژه play_circle_outlined
  43. دوره مجازی پلاگین نویسی وردپرس (جلسه 43) : پلاگین کاربران VIP -پیاده سازی کد تخفیف - بخش اول play_circle_outlined
  44. دوره مجازی پلاگین نویسی وردپرس (جلسه 44) : پلاگین کاربران VIP -پیاده سازی کد تخفیف - بخش دوم play_circle_outlined
  45. دوره مجازی پلاگین نویسی وردپرس (جلسه 45) : پلاگین کاربران VIP -پیاده سازی بخش تنظیمات - بخش اول play_circle_outlined
  46. دوره مجازی پلاگین نویسی وردپرس (جلسه 46) : پلاگین کاربران VIP -پیاده سازی بخش تنظیمات - بخش دوم play_circle_outlined
  47. دوره مجازی پلاگین نویسی وردپرس (جلسه 47) : پلاگین کاربران VIP -ایجاد فایل نصب play_circle_outlined
  48. دوره مجازی پلاگین نویسی وردپرس (جلسه 48) : پلاگین اعلانات وردپرس - پیاده سازی و معرفی post transition hook play_circle_outlined
  49. دوره مجازی پلاگین نویسی وردپرس (جلسه 49) : پلاگین اعلانات وردپرس - آشنایی با user register hook play_circle_outlined
  50. دوره مجازی پلاگین نویسی وردپرس (جلسه 50) : پلاگین اعلانات وردپرس - publish post hook play_circle_outlined
  51. دوره مجازی پلاگین نویسی وردپرس (جلسه 51) : پلاگین اعلانات وردپرس -comments notification play_circle_outlined
  52. دوره مجازی پلاگین نویسی وردپرس (جلسه 52) : پلاگین اعلانات وردپرس -custom hooks - قسمت پایانی play_circle_outlined
  53. دوره مجازی پلاگین نویسی وردپرس (جلسه 53) : پلاگین مدیریت تبلیغات - قسمت اول play_circle_outlined
  54. دوره مجازی پلاگین نویسی وردپرس (جلسه 54) : پلاگین مدیریت تبلیغات - ایجاد zone play_circle_outlined
  55. دوره مجازی پلاگین نویسی وردپرس (جلسه 55) : پلاگین مدیریت تبلیغات - مدیریت و ویرایش zone play_circle_outlined
  56. دوره مجازی پلاگین نویسی وردپرس (جلسه 56) : پلاگین مدیریت تبلیغات - ایجاد بنرهای تبلیغاتی play_circle_outlined
  57. دوره مجازی پلاگین نویسی وردپرس (جلسه 57) : پلاگین مدیریت تبلیغات - ذخیره بنر ها و آپلود تصاویر play_circle_outlined
  58. دوره مجازی پلاگین نویسی وردپرس (جلسه 58) : پلاگین مدیریت تبلیغات - لیست بنر ها و شورتکد نمایش ناحیه play_circle_outlined
  59. دوره مجازی پلاگین نویسی وردپرس (جلسه 59) : پلاگین مدیریت تبلیغات - shortcode نمایش بنر ها play_circle_outlined
  60. دوره مجازی پلاگین نویسی وردپرس (جلسه 60) : پلاگین مدیریت تبلیغات - url اختصاصی نمایش بنر ها play_circle_outlined
  61. دوره مجازی پلاگین نویسی وردپرس (جلسه 61) : پلاگین مدیریت تبلیغات - آمار کلیک بنر ها play_circle_outlined
  62. دوره مجازی پلاگین نویسی وردپرس (جلسه 62) : پلاگین مدیریت تبلیغات - فرم سفارش play_circle_outlined
  63. دوره مجازی پلاگین نویسی وردپرس (جلسه 63) : پلاگین مدیریت تبلیغات - ابزارک تبلیغات play_circle_outlined
  64. دوره مجازی پلاگین نویسی وردپرس (جلسه 64) : پلاگین مدیریت تبلیغات -تنظیمات(پایانی) play_circle_outlined
  65. دوره مجازی پلاگین نویسی وردپرس (جلسه 65) : پلاگین نویسی شی گرا- مقدمه play_circle_outlined
  66. دوره مجازی پلاگین نویسی وردپرس (جلسه 66) : پلاگین نویسی شی گرا- الگوی singleton play_circle_outlined
  67. دوره مجازی پلاگین نویسی وردپرس (جلسه 67) : پلاگین نویسی شی گرا- autoloading کلاس ها در پلاگین play_circle_outlined
  68. دوره مجازی پلاگین نویسی وردپرس (جلسه 68) : پلاگین نویسی شی گرا- الگوی طراحی simple factory play_circle_outlined
  69. دوره مجازی پلاگین نویسی وردپرس (جلسه 69) : پلاگین نویسی شی گرا-بررسی contract ها و الگوی طراحی strategy play_circle_outlined
  70. دوره مجازی پلاگین نویسی وردپرس (جلسه 70) : پلاگین نویسی شی گرا-الگوی adapter و پلاگین پذیری پلاگین ها play_circle_outlined
  71. دوره مجازی پلاگین نویسی وردپرس (جلسه 71) : پلاگین نویسی شی گرا-توسعه پلاگین play_circle_outlined
  72. دوره مجازی پلاگین نویسی وردپرس (جلسه 72) : پلاگین نویسی شی گرا- پلاگین توسعه و نقش های کاربری play_circle_outlined
  73. دوره مجازی پلاگین نویسی وردپرس (جلسه 73) : پلاگین نویسی شی گرا- عملیات های خودکار و ajax در بخش مدیریت play_circle_outlined
  74. دوره مجازی پلاگین نویسی وردپرس (جلسه 74) : جلسه پایانی -امنیت در کدنویسی و بررسی درخواست های http و قابلیت ترجمه play_circle_outlined
description توضیحات کوتاه دوره

وردپرس به عنوان محبوب ترین سیستم مدیریت محتوا در بین اکثر کاربران فضای مجازی به خوبی شناخته شده است و این موضوع باعث شده تا سیستم های مختلفی برای وردپرس تهیه و به بازار عرضه شود.
هر چند وردپرس خود رایگان است اما قابلیت های توسعه آن از جمله قالب ها و پلاگین ها که به کاربران کمک می کند سیستم مورد نظر خود را پیاده سازی کنند، باعث شده است تا رونق بسیار زیادی در بازار فروش قالب ها و پلاگین های آن ایجاد شود.
فروش هایی که تا دهها میلیون دلار هم برای یک افزونه می رسد! در این دوره سعی کرده ایم تمامی مواردی که شما برای تهیه یک پلاگین عالی و کاملا حرفه ای نیاز دارد را قرار دهیم و تدریس نماییم.
آموزش ها به صورت کاملا پروژه محور و کاربردی تهیه شده است، پلاگین هایی حرفه ای که هم نحوه ایجاد و کدنویسی آنها را یاد خواهید گرفت و هم آنها را در پایان دوره خواهید داشت.
شما پس از گذراندن این دوره قادر خواهید بود هر نوع پلاگین دلخواه دیگری را که فکر می کنید برای سایت خود بنویسید.
لازم به ذکر است در صورت سفارش پلاگین های طراحی و کدنویسی شده در این دوره، باید هزینه ای حداقل 800 هزارتومانی بپردازید! در صورتی که در این دوره شما فقط با پرداخت هزینه ای اندک، هم پلاگین نویسی حرفه ای خواهید شد و هم این پلاگین ها را در پایان دوره خواهید داشت.
تدریس مباحث این دوره نیز به مانند دوره های دیگر سون لرن، بر اساس اصل صداقت در تدریس و جامع بودن دوره هاست و مدرس تمامی تجربیات حرفه ای خود در این زمینه را به شما انتقال خواهد داد! به جرئت می توانیم ادعا کنیم دوره حاضر حرفه ای ترین و استانداردترین دوره پلاگین نویسی وردپرس است که در سطح ایران برگزار می گردد. پس فرصت را از دست ندهید و خود را به یک پلاگین نویس حرفه ای وردپرس تبدیل کنید!

 

دانلود سرفصل های کامل و ریز به ریز دوره آموزش پیشرفته پلاگین نویسی وردپرس

:: سرفصل های کلی دوره آموزش حرفه ای پلاگین نویسی وردپرس

فصل اول : مقدمات پلاگین نویس در وردپرس

فصل دوم : شروع پلاگین نویسی با نوشتن چند پلاگین ساده

فصل سوم : پروژه جامع 1 - ایجاد پلاگین آمار بازید کاربران

فصل چهارم : پروژه جامع 2 – پلاگین ایجاد و مدیریت کاربران VIP

فصل پنجم : پروژه جامع 3 – پلاگین ثبت و مدیریت اعلانات وردپرس

فصل ششم : پروژه جامع 4 - پلاگین مدیریت تبلیغات در وردپرس

فصل هفتم : مباحث پیشرفته + شی گرایی در پلاگین نویسی وردپرس

فصل هشتم : منابع، جمع بندی و توصیه های مهم

زارعی هوشیار

سلام ..استاد علی محمدی خسته نباشید…این جلسه خیلی خوب بووود….
فقط یه سوال ذهن منو درگیر کرده…اونم این هستش که …ببنید ما اگه بخواهیم مقادیر input ها رو در سوپر گلوبال post قرار داده بشه باید در تگ form قرار داده بشه و method اونرو برابر با post قرار بدیم…..
ولی شما در بحث این جلسه که بحث متاباکس بود داخل تگ فرم قرار ندادید ولی پس از اینکه پست رو ذخیره کردید در post قرار گرفته بود…..آیا همه مقدار های تگ در وردپرس پس از ذخیره کردن در postقرار میگیره…میشه یه توضیحی بدید؟ممنون میشم

کیوان علی محمدی

سلام و ممنون. متاباکس ها در فرم های بخش مطالب و برگه ها قرار میگیرن که از قبل خودشون تگ فرم رو دارن به همین خاطر ما دیگه تگ فرم رو قرار نمی دیم.

زارعی هوشیار

استاد علی محمدی تمرین هایی که واسه جلسه بعد میذارید تا دانشجویان حل کنند خیلی خوب هستش و در جلسه بعد هم خودتون حل میکنید خیلی خوب هستش….این باعث میشه خودمون یاد بگیریم و هم اینکه یه چیزهایی هم اضافه میکنیم…این خیلی خوب….من فقط سر یه شرطی که صفر میشد و موجودی رو اشتباهی صفر نشون میداد در همین بحث کیف پول دوساعت دگیر شدم تا آخر حل کردم….آخر شما هم به همین مشکل برخوردید و حل کردید…این خیلی خوب بووووود…..کارتون درسته….(:

زارعی هوشیار

سلام و درود بر استاد علی محمدی….تا اینجا خیلی خوب بوووود…خسته نباشید….

کیوان علی محمدی

سلام هوشیار عزیز. موفق باشی

سلام.
من یه سوال در مورد یکی از پلاگین های وردپرس دارم. ممنون میشم بهم جواب بدین.
پلاگین Parsi Date که برای فارسی کردن تاریخ و اعداد استفاده میشه رو نصب کردم ولی توی قسمت اطلاعات پست ها و توی بلاک های قالبم، اسم ماه ها رو ناقص نشون میده (مثلاً اردیبهشت رو نشون میده ارد) کلاً 3 حرفی نشون میده. میتونین راهنمایی کنید که چطور میشه مشکلشو حل کرد؟
با تشکر

کیوان علی محمدی

سلام دوست عزیز. از بخش تنظیمات همگانی می تونید این مورد رو تغییر بدین.

چطوری باید از wp_query داخل یه کلاس دیگه استفاده کرد؟

<?php
if(!class_exists(‘WP_List_Table’)){
    require_once( ABSPATH . ‘wp-admin/includes/class-wp-list-table.php’ );
}

/************************** CREATE A PACKAGE CLASS *****************************/
class Declare_Device_List_Table extends WP_List_Table {

    var $example_data = array(
            array(
                ‘ID’        => 1,
                ‘title’     => ‘300’,
                ‘rating’    => ‘R’,
                ‘director’  => ‘Zach Snyder’
            ),
            array(
                ‘ID’        => 2,
                ‘title’     => ‘Eyes Wide Shut’,
                ‘rating’    => ‘R’,
                ‘director’  => ‘Stanley Kubrick’
            ),
            array(
                ‘ID’        => 3,
                ‘title’     => ‘Moulin Rouge!’,
                ‘rating’    => ‘PG-13’,
                ‘director’  => ‘Baz Luhrman’
            ),
            array(
                ‘ID’        => 4,
                ‘title’     => ‘Snow White’,
                ‘rating’    => ‘G’,
                ‘director’  => ‘Walt Disney’
            ),
            array(
                ‘ID’        => 5,
                ‘title’     => ‘Super 8’,
                ‘rating’    => ‘PG-13’,
                ‘director’  => ‘JJ Abrams’
            ),
            array(
                ‘ID’        => 6,
                ‘title’     => ‘The Fountain’,
                ‘rating’    => ‘PG-13’,
                ‘director’  => ‘Darren Aronofsky’
            ),
            array(
                ‘ID’        => 7,
                ‘title’     => ‘Watchmen’,
                ‘rating’    => ‘R’,
                ‘director’  => ‘Zach Snyder’
            ),
            array(
                ‘ID’        => 8,
                ‘title’     => ‘2001’,
                ‘rating’    => ‘G’,
                ‘director’  => ‘Stanley Kubrick’
            ),
        );


    /** ************************************************************************/
    function __construct(){
        global $status, $page;
                
        //Set parent defaults
        parent::__construct( array(
            ‘singular’  => ‘device’,     //singular name of the listed records
            ‘plural’    => ‘devices’,    //plural name of the listed records
            ‘ajax’      => false        //does this table support ajax?
        ) );
        
    }


    /** ************************************************************************
     * WP_List_Table::single_row_columns()
     * 
     * @param array $item A singular item (one full row’s worth of data)
     * @param array $column_name The name/slug of the column to be processed
     * @return string Text or HTML to be placed inside the column <td>
     **************************************************************************/
    function column_default($item, $column_name){
        switch($column_name){
            case ‘author’:
            case ‘date’:
                return $item[$column_name];
            default:
                return print_r($item,true); //Show the whole array for troubleshooting purposes
        }
    }


    /** ************************************************************************ 
     * @see WP_List_Table::::single_row_columns()
     * @param array $item A singular item (one full row’s worth of data)
     * @return string Text to be placed inside the column <td> (device title only)
     **************************************************************************/
    function column_title($item){
        
        //Build row actions
        $actions = array(
            ‘edit’      => sprintf(‘<a href="?page=%s&action=%s&device=%s">Edit</a>’,$_REQUEST[‘page’],’edit’,$item[‘ID’]),
            ‘delete’    => sprintf(‘<a href="?page=%s&action=%s&device=%s">Delete</a>’,$_REQUEST[‘page’],’delete’,$item[‘ID’]),
        );
        
        //Return the title contents
        return sprintf(‘%1$s <span style="color:silver">(id:%2$s)</span>%3$s’,
            /*$1%s*/ $item[‘author’],
            /*$2%s*/ $item[‘ID’],
            /*$3%s*/ $this->row_actions($actions)
        );
    }


    /** ************************************************************************ 
     * @see WP_List_Table::::single_row_columns()
     * @param array $item A singular item (one full row’s worth of data)
     * @return string Text to be placed inside the column <td> (device title only)
     **************************************************************************/
    function column_cb($item){
        return sprintf(
            ‘<input type="checkbox" name="%1$s[]" value="%2$s" />’,
            /*$1%s*/ $this->_args[‘singular’],  //Let’s simply repurpose the table’s singular label ("device")
            /*$2%s*/ $item[‘ID’]                //The value of the checkbox should be the record’s id
        );
    }


    /** ************************************************************************
     * @see WP_List_Table::::single_row_columns()
     * @return array An associative array containing column information: ‘slugs’=>’Visible Titles’
     **************************************************************************/
    function get_columns(){
        $columns = array(
            ‘cb’        		=> ‘<input type="checkbox" />’, //Render a checkbox instead of text
            ‘author’     		=> ‘نام کاربر’,
            ‘date’    			=> ‘تاریخ ثبت درخواست’,
            ‘client_name’  		=> ‘نام مشتری’,
			‘subscriber_number’	=> ‘شماره اشتراک’,
			‘description’		=> ‘توضیحات’,
        );
        return $columns;
    }


    /** ************************************************************************
     * @return array An associative array containing all the columns that should be sortable: ‘slugs’=>array(‘data_values’,bool)
     **************************************************************************/
    function get_sortable_columns() {
        $sortable_columns = array(
            ‘author’     		=> array(‘author’,false),     //true means it’s already sorted
            ‘date’    			=> array(‘date’,false),
            ‘client_name’  		=> array(‘client_name’,false),
			‘subscriber_number’ => array(‘subscriber_number’,false),
			‘description’  		=> array(‘description’,false),
        );
        return $sortable_columns;
    }


    /** ************************************************************************
     * @return array An associative array containing all the bulk actions: ‘slugs’=>’Visible Titles’
     **************************************************************************/
    function get_bulk_actions() {
        $actions = array(
            ‘delete’    => ‘Delete’
        );
        return $actions;
    }


    /** ************************************************************************
     * Optional. You can handle your bulk actions anywhere or anyhow you prefer.
     * For this example package, we will handle it in the class to keep things
     * clean and organized.
     * 
     * @see $this->prepare_items()
     **************************************************************************/
    function process_bulk_action() {
        
        //Detect when a bulk action is being triggered…
        if( ‘delete’===$this->current_action() ) {
            wp_die(‘Items deleted (or they would be if we had items to delete)!’);
        }
        
    }
	
	function table_data(){
		global $wpdb;
		$table_name = $wpdb->prefix . ‘posts’;
		$data=array();
		
		/*$results = $wpdb->get_results( "SELECT * FROM $table_name WHERE post_type = ‘declare_device’" );
		$vid = array();
		$author = array();
		$date = array();
		$client_name = array();
		$subsriber_number = array();
		$description = array();
		$i = 0;
		foreach( $results as $result ){
			$vid[] = $result->post->ID;
			$author[] = $result->post_author;
			$date[] = $result->post_date;
			$client_name[] = get_post_meta( $vid , ‘client_name’ , true);
			$subscriber_name[] = get_post_meta( $vid , ‘subsriber_number’ , true);
			$description[] = $result->post_content;
			$data[] = array(
				‘ID’ => $vid[$i],
				‘author’ => $author[$i],
				‘date’ => $date[$i],
				‘client_name’ => $client_name[$i],
				‘subscriber_name’ => $subscriber_name[$i],
				‘description’ => $description[$i],
			);
			$i++;
		}*/
		$args = array(
			‘post_type’ => ‘declare_device’,
		);
		$vid = array();
		$author = array();
		$date = array();
		$client_name = array();
		$subsriber_number = array();
		$description = array();
		$i = 0;
		$results = new  WP_Query( $args );
		echo $result->request;
		if( $results->have_posts() ){
			while( $results->have_posts() ){
				$results->the_post();
				$vid[] = $results->post->ID;
				$author[] = get_the_author();
				$date[] = get_the_date();
				$client_name[] = get_post_meta( $vid , ‘client_name’ , true);
				$subscriber_name[] = get_post_meta( $vid , ‘subsriber_number’ , true);
				$description[] = get_the_content();
				$data[] = array(
					‘ID’ => $vid[$i],
					‘author’ => $author[$i],
					‘date’ => $date[$i],
					‘client_name’ => $client_name[$i],
					‘subscriber_number’ => $subscriber_number[$i],
					‘description’ => $description[$i],
				);
			}
		}
		else{
			echo ‘<tr class="no-items"><td class="colspanchange" colspan="5">هیچ گزارشی ثبت نشده است.</td></tr>’;
		}
		wp_reset_postdata();
 
        return $data;
	}
    /** ************************************************************************
     * REQUIRED! This is where you prepare your data for display. This method will
     * usually be used to query the database, sort and filter the data, and generally
     * get it ready to be displayed. At a minimum, we should set $this->items and
     * $this->set_pagination_args(), although the following properties and methods
     * are frequently interacted with here…
     * 
     * @global WPDB $wpdb
     * @uses $this->_column_headers
     * @uses $this->items
     * @uses $this->get_columns()
     * @uses $this->get_sortable_columns()
     * @uses $this->get_pagenum()
     * @uses $this->set_pagination_args()
     **************************************************************************/
    function prepare_items() {
        global $wpdb;
        
        $per_page = 5;
        
        $columns = $this->get_columns();
        $hidden = array();
        $sortable = $this->get_sortable_columns();
        
        $this->_column_headers = array($columns, $hidden, $sortable);
        
        $this->process_bulk_action();
        
        $data = $this->table_data();
        
        function usort_reorder($a,$b){
            $orderby = (!empty($_REQUEST[‘orderby’])) ? $_REQUEST[‘orderby’] : ‘title’; //If no sort, default to title
            $order = (!empty($_REQUEST[‘order’])) ? $_REQUEST[‘order’] : ‘asc’; //If no order, default to asc
            $result = strcmp($a[$orderby], $b[$orderby]); //Determine sort order
            return ($order===’asc’) ? $result : -$result; //Send final sort direction to usort
        }
        usort($data, ‘usort_reorder’);

        $current_page = $this->get_pagenum();

        $total_items = count($data);

        $data = array_slice($data,(($current_page-1)*$per_page),$per_page);

        $this->items = $data;

        $this->set_pagination_args( array(
            ‘total_items’ => $total_items,                  //WE have to calculate the total number of items
            ‘per_page’    => $per_page,                     //WE have to determine how many items to show on a page
            ‘total_pages’ => ceil($total_items/$per_page)   //WE have to calculate the total number of pages
        ) );
    }


}

/** ************************ REGISTER THE TEST PAGE ****************************/
function add_menu_declare_device(){
	add_menu_page(‘اعلام غیرقابل تعمیر بودن دستگاه’, ‘اعلام غیرقابل تعمیر بودن دستگاه’, ‘manage_options’, ‘page_declare_device’, ‘render_list_declare_device’, ‘dashicons-dismiss’, 19);
} 
add_action(‘admin_menu’, ‘add_menu_declare_device’);

/** *************************** RENDER TEST PAGE ********************************/
function render_list_declare_device(){
    
    //Create an instance of our package class…
    $testListTable = new Declare_Device_List_Table();
    //Fetch, prepare, sort, and filter our data…
    $testListTable->prepare_items();
    
    ?>
    <div class="wrap">
        
        <div id="icon-users" class="icon32"><br/></div>
        <h2>لیست درخواست اعلام غیرقابل تعمیر بودن دستگاه</h2>
        
        <!– Forms are NOT created automatically, so you need to wrap the table in one to use features like bulk actions –>
        <form id="devices-filter" method="get">
            <!– For plugins, we also need to ensure that the form posts back to our current page –>
            <input type="hidden" name="page" value="<?php echo $_REQUEST[‘page’] ?>" />
            <!– Now we can render the completed list table –>
            <?php $testListTable->display() ?>
        </form>
        
    </div>
    <?php
}
کیوان علی محمدی

سلام دوست عزیز.در تابع prepare_items می تونید کلاس رو خوانی کنید و داده هاتون رو بگیرین.

سلام. من یه سری داده رو در جدول posts ذخیره کردم و حالا میخوام در پنل مدیریت برای ادمین خروجی بگیرم و به صورت جدولی نمایش بدم همانند لیست نوشته ها. از طریق
class Declare_Device_List_Table extends WP_List_Table
میخوام این کار رو انجام بدم. یک تابع داخل این کلاس نوشتم که داده ها رو از جدول posts میگیره اما نمیدونم درون این تابع میشه از
$results = new WP_Query( $args );
استفاده کرد یا نه؟ من نوشتم اما خروجی نمیتونم بگیرم. لطفا راهنمایی کنید و یه نمونه کد کوتاه در این مورد بذارید.

کیوان علی محمدی

سلام دوست عزیز.
http://wpengineer.com/2426/wp_list_table-a-step-by-step-guide/

iranimij

کاش حداقل بعد از ساخته شدن پلاگین در فیلم یک بار حداقل امتحان میکردید پلاگینتون رو ، الان پلاگینی که شما گذاشتید رو دانلود کردم و جدول هایی که در دیتا بیس میسازه آیدی ها همش صفر میشه و auto increament نیست و همینطور primary هم نیست ، باید چه کدی اضافه کنیم که این دو گزینه فعال بشه ؟

کیوان علی محمدی

سلام دوست عزیز. احتمالا کدهای sql ساخت جدول ها رو کامل ارسال نکردیم. شما باید فیلد های اصلی جدول ها قابلیت auto increment و primary key رو براشون فعال کنید.از بخش ویرایش فیلد می تونید اینکارو انجام بدین.

زارعی هوشیار

سلام…..اقای علی محمدی ….ایا در ادامه نحوه ارسال آمارها به ادمین را هم توضیح دادین

کیوان علی محمدی

سلام در بخش های بعدی به شکل امار نمایش دادیم.

سلام اول بگم که تابع prepare رو برای همه توابعی که در اونها متغییر استفاده میشه رو باید استفاده کنید. تابع query معمولا برای کوئری های مثل DELETE کردن و یا UPDATE کردن و کلا هر کوئری به غیر از SELECT داده ها استفاده میشه.تابع get_results هم برای انتخاب رکورد ها استفاده میشه.

سلام این مورد رو معمولا نمیشه جلوش رو گرفت.تنها راهش تغییر آدرس های وردپرس هستش که این مورد پیچیدگی زیادی داره.

اگر اون مقدار رو قرار ندیم صفحه به درستی رفرش نمیشه. چون خودش با کوئری استرینگ page داره نمایش داده میشه ما باید از این مورد استفاده کنیم تا رفرش شدن صفحه هنگام submit کردن فرم به درستی کار کنه.

سلام. استفاده از متاباکس به شکلی که خود وردپرس داره نه متاسفانه.

سلام هوشیار عزیز. add_menu فقط یک منو با محتوای خالی با بخش مدیریت اضافه میکنه اما بحث custom post type وقتی register میشه بحث محتوایی و فرم ها یک نوع مطلب رو در اون بخش اضافه میکنه. برداشت خودت هم کاملا درسته.add_menu برای کارهای خیلی سفارشی هستش.ممکنه من بخوام یک دکمه بذارم که لیست کاربران رو برام خروجی بگیره.

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
1 2 3 19
مدرس و آمار دوره
Course-Teacher
کیوان علی محمدی
کارشناس و فارغ التحصیل مهندسی فناوری اطلاعات (IT) ، مدرس و نویسنده ارشد سون لرن، متخصص طراحی قالب و افزونه وردپرس با بیش از 4 سال سابقه تدریس و کار حرفه ای، مدرس دوره های حضوری و غیر حضوری طراحی قالب و افزونه نویسی وردپرس و مسلط به زبان های HTML,CSS,Javascript,PHP,ASP,AJAX و ...
library_books
٢٩٧ مقاله تخصصی
school
٧ دوره برگزار شده
١۵۶٠ علاقمندfavorite
١۴١٩ دانشجوpeople
۴۵۴ رایstar
٪٩٠.٩ میانگین رضایت از مدرس
پیشنیاز های دوره
آشنایی مقدماتی با زبان های html و css ، زبان جاوا اسکریپت و زبان PHP  از پیشنیازهای این دوره محسوب می شوند.
پشتیبانی فنی دوره
مدرس دوره و تیم پشتیبانی سون لرن به مدت 3 ماه پس از خرید دوره در سامانه پشتیبانی مخصوص دانشجویان (برای دوره های حضوری)، پاسخگوی تمامی سوالات و ابهامات شما در مورد این دوره خواهند بود. همچنین پس از خرید هر کدام از دوره های حضوری و یا مجازی سون لرن، شماره تماس و ایمیل مدرس در اختیار دانشجویان دوره قرار خواهد گرفت تا به سرعت پاسخ سوالات خود را دریافت نمایند.

contact_phone اطلاعات تماس با مدرس :
email keiv********@*****.***
phone ٠٩٣٧*******
access_time شنبه تا پنجشنبه، ۱۹ الی ۲۳ عصر
info اطلاعات کامل تماس با مدرس، برای دانشجویان دوره در دسترس می باشد.
مشاوره پیش از خرید
در صورتی که در مورد هر کدام از دوره های سون لرن سوال و یا ابهامی در ذهن شما هست، می توانید همین حالا با ما در تماس باشید و از مشاوره رایگان قبل از خرید دوره ها استفاده نمایید.
contact_phone شماره تماس : ۰۲۱۶۶۴۵۲۴۶۹
email ایمیل : support@7Learn.com