آموزش انکد افزونه وردپرس با ionCube

برای انکد افزونه وردپرس، فایل‌های PHP منطقی افزونه و به‌ویژه کلاس‌های لایسنس را انکد می‌کنید و فایل readme و ترجمه و assets را دست‌نخورده می‌گذارید. سپس افزونه روی هر هاستی که ionCube Loader دارد نصب و اجرا می‌شود، در حالی که سورس اصلی قابل خواندن نیست و کسی نمی‌تواند بررسی لایسنس را حذف کند.

این مقاله در یک نگاه

  • فایل اصلی و کلاس لایسنس مهم‌ترین فایل‌ها برای انکد هستند.
  • readme و po و mo و assets هرگز نباید انکد شوند.
  • هدر افزونه باید خوانا بماند تا وردپرس نام و نسخه را نمایش دهد.
  • ترکیب انکد با قفل دامنه توزیع غیرمجاز را متوقف می‌کند.
  • قبل از تحویل، افزونه را روی یک وردپرس تازه تست کنید.

کدام فایل‌ها را انکد کنیم؟

این تصمیم کیفیت نهایی کار را تعیین می‌کند. انکد کردن همه چیز نه لازم است و نه درست؛ بعضی فایل‌ها باید خوانا بمانند وگرنه وردپرس یا خود افزونه از کار می‌افتد.

فایلانکد شود؟دلیل
فایل اصلی افزونهبلهنقطه ورود و منطق اصلی
کلاس اعتبارسنجی لایسنسبله (مهم‌ترین)هدف مستقیم نال‌کننده‌ها
کلاس‌های منطق کسب و کاربلهارزش واقعی محصول
readme.txtخیروردپرس و بازارها آن را می‌خوانند
فایل‌های ترجمه po و moخیرساختار زبانی خراب می‌شود
assets شامل css و jsخیراصلا PHP نیستند
قالب‌های نمایشیمعمولا خیرمشتری اغلب می‌خواهد سفارشی کند

هر افزونه وردپرس یک بلوک کامنت در ابتدای فایل اصلی دارد که نام، نسخه، نویسنده و توضیحات را مشخص می‌کند. وردپرس این بلوک را می‌خواند تا افزونه را در فهرست پیشخوان نمایش دهد.

ionCube این هدر را حفظ می‌کند، اما بعد از انکد حتما افزونه را در یک وردپرس نصب کنید و بررسی کنید که نام و نسخه درست نمایش داده می‌شود. اگر هدر خوانده نشود، وردپرس افزونه را به درستی نمی‌شناسد و ممکن است در فهرست ظاهر نشود.

مراحل انکد افزونه

  1. پشتیبان‌گیری یک نسخه از سورس اصلی را جای امن نگه دارید؛ خروجی قابل بازگشت نیست.
  2. پاکسازی بسته فایل‌های تست، مستندات توسعه و پوشه‌های غیرضروری را از بسته حذف کنید.
  3. آپلود ZIP پوشه افزونه را فشرده و در پنل بارگذاری کنید.
  4. انتخاب فایل‌ها فقط فایل‌های PHP منطقی را برای انکد علامت بزنید.
  5. انتخاب نسخه هدف PHP نسخه‌ای که هاست مشتری اجرا می‌کند.
  6. تعیین قفل دامنه در صورت فروش به مشتری مشخص، دامنه او را وارد کنید.
  7. تست روی وردپرس تازه افزونه انکدشده را نصب و فعال کنید و مسیرهای اصلی را امتحان کنید.

ترکیب با قفل دامنه

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

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

سازگاری با هاست مشتری

افزونه انکدشده روی هر هاستی که ionCube Loader دارد اجرا می‌شود و این لودر امروز روی اکثر هاست‌های اشتراکی ایرانی فعال است یا با یک تیک فعال می‌شود.

دو نکته را جدی بگیرید. اول نسخه PHP: خروجی را برای همان نسخه‌ای بسازید که هاست مشتری اجرا می‌کند. دوم نسل انکدر: نسخه لودر مقصد باید مساوی یا جدیدتر از نسل انکدر باشد. جدول کامل در سازگاری با PHP ۸.۳ و ۸.۴ آمده است.

راهنمای مشتری یک راهنمای کوتاه همراه محصول بفرستید که توضیح دهد اگر خطای لودر دیدند، از بخش Select PHP Version هاست گزینه ioncube_loader را فعال کنند. این کار حجم تیکت‌های پشتیبانی شما را به شدت کم می‌کند.

مشکلات رایج پس از انکد

مشکلعلتراه‌حل
افزونه در فهرست وردپرس نیستهدر افزونه خوانده نمی‌شودفایل اصلی و هدر را بررسی کنید
ترجمه‌ها کار نمی‌کنندفایل‌های po و mo انکد شده‌اندآن‌ها را از انکد خارج کنید
خطای needs to be installedلودر روی هاست فعال نیستراهنمای رفع خطا
فراخوانی داینامیک کلاس خطا می‌دهدمبهم‌سازی نام کلاس‌هامبهم‌سازی را برای آن بخش غیرفعال کنید

برای دیدن راهنمای کامل تجاری و انتخاب فایل‌ها، صفحه انکد افزونه وردپرس را ببینید. اطلاعات فنی رسمی هم در سایت ionCube موجود است.

جمع بندی: انکد افزونه وردپرس وقتی درست انجام می‌شود که فقط فایل‌های منطقی و کلاس لایسنس را انکد کنید و readme و ترجمه و assets را خوانا بگذارید. هدر افزونه باید قابل خواندن بماند تا وردپرس آن را بشناسد، نسخه هدف PHP با هاست مشتری هماهنگ باشد و پیش از تحویل روی یک وردپرس تازه تست شود. ترکیب این کار با قفل دامنه، توزیع غیرمجاز افزونه را عملا متوقف می‌کند.

سوالات متداول

انکد روی عملکرد افزونه اثر می‌گذارد؟

خیر. هوک‌ها، اکشن‌ها و فیلترهای وردپرس بدون تغییر اجرا می‌شوند و افت سرعت محسوسی وجود ندارد.

همه فایل‌های افزونه را انکد کنم؟

خیر. فقط فایل‌های PHP دارای منطق. readme، ترجمه، assets و تنظیمات باید خوانا بمانند.

افزونه انکدشده روی هاست مشتری اجرا می‌شود؟

بله اگر ionCube Loader فعال باشد که روی اکثر هاست‌های اشتراکی فعال است یا با یک تیک فعال می‌شود.

می‌توانم برای هر خریدار نسخه قفل‌شده بسازم؟

بله. خروجی مخصوص دامنه هر مشتری قابل تهیه است و مؤثرترین راه توقف توزیع غیرمجاز است.

بعد از به‌روزرسانی افزونه باید دوباره انکد کنم؟

بله. هر نسخه جدید سورس باید دوباره انکد شود؛ به همین دلیل نگه داشتن سورس اصلی ضروری است.

مطالب مرتبط: جلوگیری از نال شدن افزونه · قفل روی دامنه · صفحه انکد وردپرس