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

پیش نیازها و طراحی ساختار آگهی

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

در افزونه JetEngine از مسیر JetEngine > Post Types یک نوع نوشته جدید به اسم آگهی ایجاد کنید. سپس از بخش Meta Boxes یا همان Custom Fields فیلدهای مورد نیاز را بسازید تا بعدا آن ها را به فرم متصل کنید. برای دسته بندی آگهی ها نیز می توانید Taxonomy های سفارشی مانند شهر، دسته آگهی و برچسب ها را تعریف کنید.

برای اینکه هیچ داده ای را از قلم نیندازید، ابتدا فهرست فیلدها و الزامات را روی کاغذ مشخص کنید. این کار در کاهش خطا و سرعت راه اندازی تاثیر مستقیم دارد.

  • عنوان آگهی و متن توضیحات اصلی
  • گالری تصاویر و تصویر شاخص
  • قیمت، واحد پول و امکان توافقی بودن
  • موقعیت جغرافیایی یا شهر
  • دسته بندی و برچسب های آگهی
  • روش های تماس مثل موبایل، ایمیل یا فرم داخلی
  • قوانین پذیرش آگهی و تیک تایید کاربر

اگر قصد دارید بعضی آگهی ها ویژه باشند، از همین ابتدا برای آن ها یک فیلد منطقی ویژه یا تاریخ انقضا در نظر بگیرید. با این فیلدها بعدا می توانید نمایش آگهی های ویژه را در لیست ها متمایز کنید.

ساخت و پیکربندی فرم در JetEngine

پس از آماده سازی ساختار داده، فرم را می سازیم و آن را به نوع نوشته آگهی متصل می کنیم. کل ماجرا در چند گام روشن و تکرارپذیر خلاصه می شود.

  1. از منوی JetEngine وارد Forms شوید و روی Add New کلیک کنید. برای فرم یک نام واضح مثل ارسال آگهی کاربران بگذارید.
  2. در لیست فیلدها، فیلد عنوان با نوع Text اضافه کنید و آن را برای ذخیره در Post Title تنظیم کنید.
  3. فیلد توضیحات را با نوع WYSIWYG یا Textarea بسازید و خروجی را روی Post Content قرار دهید تا متن اصلی نوشته پر شود.
  4. برای تصویر شاخص فیلد نوع Media اضافه کنید و در تنظیمات آن گزینه Set featured image را فعال کنید.
  5. برای گالری تصاویر فیلد Media با امکان انتخاب چندگانه بسازید و خروجی را روی Meta ذخیره کنید؛ مثلا meta key را gallery قرار دهید.
  6. برای قیمت فیلد Number بسازید، حداقل و حداکثر منطقی بگذارید و خروجی را روی Meta با کلید price قرار دهید.
  7. اگر قیمت توافقی است، یک فیلد Checkbox با مقدار توافقی اضافه کنید و خروجی آن را روی Meta با کلید negotiable ذخیره کنید.
  8. برای دسته بندی ها فیلد نوع Select یا Checkbox با منبع Taxonomy اضافه کنید و Taxonomy مربوط به دسته آگهی را انتخاب کنید تا مقادیر به صورت واژگان ذخیره شوند.
  9. برای موقعیت، یک فیلد Text یا اگر نقشه دارید، فیلد مخصوص نقشه JetEngine را به کار بگیرید و خروجی را روی Meta با کلید location قرار دهید.
  10. روش های تماس را با فیلدهای Email و Text تعریف کنید؛ برای مثال phone و email به عنوان meta key ذخیره شوند.
  11. فیلد پذیرش قوانین را به صورت Checkbox اضافه کنید، آن را Required کنید و پیام خطا برای کاربر مشخص کنید.
  12. برای جلوگیری از اسپم، reCAPTCHA یا hCaptcha را فعال کنید و کلیدها را در تنظیمات عمومی فرم وارد کنید.
  13. در بخش Form Actions عملیات Insert/Update Post را اضافه کنید. نوع نوشته را روی آگهی بگذارید و وضعیت پیش فرض را Pending قرار دهید تا قبل از انتشار بررسی شوند.
  14. نقشه دهی فیلدها به پست را کامل کنید؛ هر فیلد را به عنوان Title، Content، Featured Image، Taxonomies یا Meta درست متصل کنید.
  15. یک Action ایمیل هم اضافه کنید تا پس از ارسال، به مدیر سایت یا کاربر اطلاع رسانی شود. متن ایمیل را با تگ های داینامیک بسازید.
  16. در صورت نیاز Action Redirect تعریف کنید تا پس از ارسال کاربر به برگه تشکر یا داشبورد شخصی هدایت شود.
  17. دکمه ارسال را با متن مناسب مثل ثبت آگهی تنظیم کنید و پیام های موفق یا خطا را ویرایش کنید.

پیکربندی فیلدها برای تجربه بهتر

برای فیلد قیمت از Place Holder استفاده کنید تا کاربر بداند عدد را بدون جداکننده وارد کند. برای تصاویر محدودیت فرمت و حجم بگذارید تا آپلودهای نامعتبر متوقف شوند. اگر موقعیت را با شهرهای مشخص می خواهید، به جای Text از Select با مقادیر از پیش تعریف شده استفاده کنید تا داده یکنواخت بماند.

اعتبارسنجی و امنیت

فیلدهای ضروری مانند عنوان، توضیحات، روش تماس و پذیرش قوانین را Required کنید. از محدودسازی تعداد کاراکتر در عنوان و توضیحات کمک بگیرید تا متن های بسیار بلند ارسال نشوند. در صورت حساس بودن فرم، محدودیت ارسال برای کاربران مهمان را فعال کنید و فرم را فقط برای کاربران وارد شده قابل نمایش بگذارید.

تنظیم رفتار انتشار

انتخاب وضعیت انتشار به جریان کاری شما بستگی دارد. اگر کیفیت محتوا اهمیت زیادی دارد، وضعیت در انتظار بررسی را انتخاب کنید. در پروژه های داخلی یا زمانی که کاربران مورد اعتماد هستند می توانید انتشار خودکار را فعال کنید. جدول زیر یک نگاه سریع به این انتخاب ها می دهد.

روش انتشار زمان استفاده
انتشار خودکار وقتی به تایید دستی نیاز ندارید یا کاربران احراز هویت شده اند
در انتظار بررسی وقتی می خواهید قبل از نمایش عمومی محتوا کنترل کیفی انجام شود

نمایش فرم در فرانت اند و مدیریت ارسالات

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

انتشار فرم در برگه

یک برگه با عنوان ارسال آگهی بسازید و شورتکد فرم را در آن قرار دهید. اگر با المنتور کار می کنید، ویجت فرم JetEngine را درگ کنید و فرم ساخته شده را انتخاب کنید. پیام های موفقیت و خطا را تست کنید و مطمئن شوید فرم برای موبایل نیز مناسب نمایش داده می شود.

مدیریت تایید آگهی

پس از هر ارسال، نوشته در نوع آگهی با وضعیت Pending ذخیره می شود. از پیشخوان می توانید محتوای ارسالی را بازبینی، تصاویر را بررسی و در صورت نیاز ویرایش کنید. سپس وضعیت را به منتشر شده تغییر دهید. اگر می خواهید این فرآیند سریع تر شود، اعلان ایمیلی به مدیر بفرستید تا هر ارسال جدید را فوری ببیند.

داشبورد کاربر و ویرایش آگهی

برای تجربه بهتر، یک داشبورد کاربری طراحی کنید تا هر کاربر آگهی های خودش را ببیند و آن ها را ویرایش یا تمدید کند. با Listing Grid و Query Builder می توانید لیست آگهی های نویسنده جاری را نمایش دهید. برای ویرایش از همان فرم با Action Update Post استفاده کنید و شناسه آگهی را به صورت داینامیک به فرم بدهید.

افزودن پرداخت و پلن ها

اگر ارسال آگهی پولی است، می توانید فرم را به یک جریان پرداخت متصل کنید. ساده ترین الگو این است که دسترسی به برگه ارسال آگهی فقط بعد از خرید یک محصول یا داشتن نقش کاربری خاص فعال باشد. برای این منظور از محدودسازی دیداری داینامیک JetEngine و یک افزونه عضویت یا فروشگاه کمک بگیرید. در سناریوهای پیشرفته می توانید با هدایت کاربر به برگه خرید، بعد از تکمیل پرداخت او را به فرم برگردانید و اجازه ارسال را صادر کنید.

بهبود تجربه کاربری

چیدمان فیلدها را به گونه ای قرار دهید که سریع و بدون سردرگمی پر شوند. فیلدهای ضروری را در بالا بیاورید، از Place Holder های روشن استفاده کنید و برای فیلدهای پیچیده مانند گالری راهنمای کوتاه قرار دهید. در موبایل، اندازه دکمه ها و فواصل را بزرگ تر بگیرید و از بارگذاری همزمان چند تصویر سنگین خودداری کنید.

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

رفع خطاهای رایج

  • عدم ذخیره تصاویر: بررسی کنید فیلد Media روی Featured Image یا Meta درست تنظیم شده و محدودیت حجم با سرور سازگار است.
  • نداشتن دسترسی کاربر: نقش کاربری و قوانین نمایش فرم را کنترل کنید؛ فرم را برای کاربران مهمان مخفی کنید اگر نیاز به ورود است.
  • ناهماهنگی دسته بندی: فیلد Taxonomy را روی حالت Multiple یا Single درست تنظیم کنید و واژگان را از Taxonomy صحیح بخوانید.
  • اسپم بالا: reCAPTCHA را فعال کنید و محدودیت سرعت ارسال یا تایید ایمیل کاربر را اضافه کنید.
  • به هم ریختگی در موبایل: عرض فیلدها را روی 100 درصد بگذارید و پیش نمایش موبایل را در صفحه ساز بررسی کنید.

چک لیست انتشار امن

  • همه فیلدهای ضروری Required باشند.
  • وضعیت پیش فرض آگهی ها Pending باشد تا محتوای نامناسب منتشر نشود.
  • Upload mime type ها و حجم فایل کنترل شود.
  • پیام های موفقیت و خطا واضح و بومی سازی شده باشند.
  • مسیر هدایت پس از ارسال مشخص باشد؛ مثلا صفحه تشکر یا داشبورد.

اگر به هر دلیل نیاز دارید چند نوع آگهی متفاوت داشته باشید، می توانید با شرط گذاری نمایش فیلدها، فرم را پویا کنید. برای مثال اگر کاربر نوع آگهی خدمات را انتخاب کرد، فیلد قیمت مخفی و فیلد تعرفه ساعتی نمایش داده شود. این کار با شرط های نمایش JetEngine قابل پیاده سازی است.

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

جمع بندی

با طراحی درست نوع نوشته آگهی، ساخت فیلدهای اختصاصی و اتصال آن ها در فرم، می توانید ارسال محتوا را از پیشخوان به فرانت اند منتقل کنید و کنترل کامل روی جریان تایید و نمایش داشته باشید. استفاده از فرم ثبت آگهی با JetEngine به شما امکان می دهد ظاهر فرم، قوانین اعتبارسنجی، عملیات پس از ارسال و حتی دسترسی کاربران را دقیق تنظیم کنید. کافی است سناریوی کسب و کار را روشن تعریف کنید، فیلدها را نقشه دهی درست انجام دهید و مسیرهای مدیریت، ویرایش و پرداخت را گام به گام پیاده سازی کنید تا یک سامانه ارسال آگهی پایدار، سریع و قابل توسعه در وردپرس داشته باشید.