ڈاکیومینٹیشن · موجودہ بلڈ

PrizeX ڈاکیومینٹیشن

PrizeX کو انسٹال کرنے، کنفیگر کرنے اور چلانے کے لیے جو کچھ درکار ہے، سب یہاں ہے — وہ سیلف ہوسٹڈ PHP پلیٹ فارم جس پر آکشنز، لاٹری، مسٹری باکس، آرکیڈ گیمز، ملٹی سیلر شاپ اور والیٹ/کوائن اکانومی چلتی ہے۔ یہ صفحہ کوڈ بیس کو ویسا ہی دکھاتا ہے جیسا وہ شپ ہوتا ہے، کوئی مارکیٹنگ خلاصہ نہیں۔

PHP 7.4+ MySQL / MariaDB Composer 38 پیمنٹ گیٹ وے پلگ انز 5 اسٹور فرنٹ تھیمز

PrizeX کیا ہے

PrizeX ایک PHP پر مبنی پرائز، گیمنگ اور مارکیٹ پلیس پلیٹ فارم ہے: آکشنز، لاٹری، مسٹری باکس، آرکیڈ گیمز کا کلسٹر، ملٹی سیلر ای کامرس شاپ اور والیٹ/کوائن اکانومی — سب کچھ ایک ہی سیلف ہوسٹڈ ایپلیکیشن میں۔ یہ پلگ ان/تھیم آرکیٹیکچر کے ساتھ آتا ہے، جس میں ایک ایڈمن پینل اور 38 پیمنٹ گیٹ وے پلگ انز شامل ہیں جو کارڈز، والیٹس، کرپٹو اور علاقائی پروسیسرز کا احاطہ کرتے ہیں، اور اس کے علاوہ 3 دستی پیمنٹ طریقے جو کرنل میں پہلے سے موجود ہوتے ہیں۔

کوئی SaaS لاک اِن نہیں: آپ اسے اپنی ہوسٹنگ پر انسٹال کرتے ہیں، ڈیٹابیس آپ کا اپنا ہوتا ہے، اور لائسنس پر تاحیات اپڈیٹس ملتی ہیں۔ ہر شعبہ (آکشنز، لاٹری، مسٹری باکس، گیمز، شاپ) ایڈمن پینل سے الگ الگ آن یا آف کیا جا سکتا ہے — نئی انسٹالیشن کسی ایک ہی شعبے کے پراڈکٹ کے طور پر بھی چل سکتی ہے اور پورے سویٹ کے طور پر بھی۔

آرکیٹیکچر
پلگ ان اور تھیم پر مبنی

کور کوڈ کبھی کسی پلگ ان پر لازمی طور پر منحصر نہیں ہوتا۔ ہر شعبہ، ہر پیمنٹ گیٹ وے اور ہر سوشل لاگ اِن plugins/ کے نیچے ایک پلگ ان ہے، جسے باقی سائٹ کو خراب کیے بغیر فعال، غیر فعال یا ڈیلیٹ کیا جا سکتا ہے۔

ڈیٹا
MySQL / MariaDB، خام mysqli

ٹیبل پریفکس tbl_، کوئی ORM نہیں، اور زیادہ تر پریپیئرڈ اسٹیٹمنٹس۔ ہر پلگ ان اپنے ٹیبلز کا خود مالک ہے اور انہیں ایسے db_delta() انسٹالر کے ذریعے مائیگریٹ کرتا ہے جسے بار بار چلانا محفوظ ہے۔

یہ کس پر چلتا ہے

PrizeX عام شیئرڈ ہوسٹنگ یا VPS پر چلتا ہے — بس ویب سرور میں URL رِی رائٹ کی سہولت ہونی چاہیے، اس کے علاوہ کسی خاص سرور کنفیگریشن کی ضرورت نہیں۔

رن ٹائم
PHP 7.4+
GD اور cURL ایکسٹینشنز
ڈیٹابیس
MySQL / MariaDB
مائیگریشنز کے لیے MariaDB ضروری ہے*
ڈیپینڈینسیز
Composer
PHP پیکیج مینیجر
ویب سرور
Apache / LiteSpeed
nginx کی سپورٹ کنفیگ مثال کے ذریعے

* database/migrations/ کے نیچے کئی فائلیں ADD COLUMN IF NOT EXISTS استعمال کرتی ہیں، جو صرف MariaDB کا ایکسٹینشن ہے۔ سادہ MySQL 8.0/8.4 اسے رد کر دیتا ہے — اس لیے ڈیٹابیس کے طور پر MariaDB استعمال کریں، ڈیولپمنٹ اور پروڈکشن دونوں میں۔

نئی انسٹالیشن کو چلانا

نئے سیٹ اپ کے لیے کوئی انسٹال وزرڈ نہیں ہے — آپ اسکیما براہِ راست امپورٹ کرتے ہیں اور انوائرنمنٹ فائل کنفیگر کرتے ہیں۔

  1. PHP ڈیپینڈینسیز انسٹال کریں:
    composer install
  2. انوائرنمنٹ ٹیمپلیٹ کاپی کریں اور اپنے ڈیٹابیس کی تفصیلات بھریں:
    cp .env.example .env
  3. database/production.sql کو اُس ڈیٹابیس میں امپورٹ کریں جس کا نام آپ کی .env میں درج ہے — اس سے پورا اسکیما بن جاتا ہے۔
  4. پہلے سے شامل ایڈمن اکاؤنٹ کو بدل دیں (نیچے دیا گیا نوٹ دیکھیں)، پھر /admin/ پر لاگ اِن کریں۔
پہلے سے شامل اکاؤنٹ سے لاگ اِن نہ کریں۔ database/production.sql کے ساتھ tbl_admin کی ایک رو (admin@wowcodes.in) آتی ہے جس کا پاس ورڈ ہیش ہر انسٹالیشن پر ایک جیسا ہوتا ہے۔ لائیو ہونے سے پہلے اسے ڈیلیٹ کریں اور اپنا اکاؤنٹ ڈالیں:
php -r "echo password_hash('your-password', PASSWORD_BCRYPT), \"\n\";"
DELETE FROM tbl_admin; INSERT INTO tbl_admin (username, email, password, image, status, permission_settings) VALUES ('yourname', 'you@example.com', '<hash from the command above>', '', 1, 1);

لوکل ڈیولپمنٹ کے لیے PHP کا بلٹ اِن سرور Apache کے بغیر کام کر جاتا ہے: php -S localhost:8000 router.php — دھیان رہے کہ یہ سرور .htaccess کو بالکل نظرانداز کر دیتا ہے، اس لیے router.php وہی روٹنگ رولز خود دوبارہ لکھ کر لاگو کرتا ہے (دیکھیں ویب سرور سیٹ اپ

انوائرنمنٹ ویری ایبلز

ماحول کے مطابق بدلنے والی تمام سیٹنگز .env میں رہتی ہیں، جو vlucas/phpdotenv کے ذریعے لوڈ ہوتی ہے۔ .env.example کو .env کے نام سے کاپی کریں (یہ git سے باہر رہتی ہے) اور ہر ماحول کے لیے اصل قدریں سیٹ کریں — کم از کم ڈیٹابیس کی تفصیلات، اسکیما امپورٹ سے پہلے۔

پوری سائٹ کی وہ سیٹنگز جو ماحول کے ساتھ نہیں بدلتیں (ایپ کا نام، کرنسی، فعال پلگ انز، فعال تھیم اور ہر شعبے کے آن/آف بٹن) ڈیٹابیس میں tbl_settings کے اندر رہتی ہیں، اور فائلوں کے بجائے ایڈمن پینل سے سنبھالی جاتی ہیں۔

ویب سرور سیٹ اپ

روٹنگ اور سیکیورٹی کے رولز — خوبصورت URLs، .env/connection.php/لاگ فائلوں تک براہِ راست رسائی کی روک تھام، اور اپ لوڈ کیے گئے مواد کو PHP کے طور پر چلنے سے روکنا — پورے پروجیکٹ میں پھیلی .htaccess فائلوں میں طے ہوتے ہیں۔ Apache اور LiteSpeed/OpenLiteSpeed انہیں بغیر کسی اضافی سیٹنگ کے خود پڑھ لیتے ہیں۔

nginx پر nginx.conf.example استعمال کریں، جو اِن میں سے ہر رول کو nginx کے server{} بلاک کی صورت میں دہراتی ہے — اپنے ماحول کے مطابق server_name، root اور PHP-FPM ساکٹ ایڈجسٹ کر لیں۔

اِن تینوں کو ایک جیسا رکھیں۔ .htaccess (پروڈکشن)، router.php (لوکل php -S ڈیو سرور) اور nginx.conf.example (nginx) — تینوں وہی روٹنگ رولز الگ الگ لاگو کرتے ہیں۔ خوبصورت URL والا نیا روٹ شامل کرنے کا مطلب ہے تینوں کو اپڈیٹ کرنا۔

ریکویسٹ آرکیٹیکچر

اسٹور فرنٹ کا ہر صفحہ (index.php، item.php، …) includes/header.php کے ذریعے اِس ترتیب سے بوٹ ہوتا ہے:

جیو لوکیشن اور زبان connection.php themes.php hooks.php plugins.php routes.php menus.php assets.php plugins_load()

connection.php سیشن شروع کرتا ہے، .env کی تفصیلات کے ساتھ mysqli کے ذریعے کنیکٹ ہوتا ہے، tbl_settings کو APP_NAME اور CURRENCY جیسے کانسٹنٹس میں لوڈ کرتا ہے، اور موجودہ صارف کو لاگ اِن کرنے کے ساتھ ڈیوائس فنگر پرنٹ کی ایک رو بھی بناتا ہے۔ plugins_load() ہر فعال پلگ ان کو بوٹ کرتا ہے اور plugins_loaded ہُک چلاتا ہے — یہی وہ لمحہ ہے جب فعال شعبوں کی اصل، موجودہ فہرست معلوم ہوتی ہے، اور اسی لیے header.php بعد میں پرانی سیٹنگز کے فلیگز (شاپ، ملٹی سیلر، آکشن، لاٹری) کو پلگ انز کی حقیقی فعال حالت کے ساتھ دوبارہ ملاتا ہے۔

ایڈمن پینل اس بوٹ اسٹریپ کو دہراتا نہیں — admin/includes/connection.php ایڈمن کے لیے مخصوص سیشن/ایرر سیٹنگز کرتا ہے اور پھر وہی روٹ والا includes/connection.php شامل کر لیتا ہے۔

پلگ ان سسٹم

پلگ ان دراصل plugins/<slug>/plugin.php ہے — ہیڈر کمنٹ میں لکھی میٹا ڈیٹا، جو فائل چلائے بغیر پڑھ لی جاتی ہے — اور اس کے ساتھ زیادہ تفصیلی کیٹلاگ معلومات کے لیے ایک اختیاری plugin.json۔ فعال پلگ انز tbl_settings.active_plugins میں JSON ارے کے طور پر محفوظ ہوتے ہیں۔

  • ٹیبلز کی ملکیت — ہر پلگ ان اپنی includes/schema.php خود بناتا ہے، جو فعال ہوتے وقت چلتی ہے اور بار بار چلنے پر محفوظ db_delta() ہیلپر استعمال کرتی ہے (CREATE TABLE IF NOT EXISTS + صرف اضافے والا ALTER TABLE ADD COLUMN)۔ کوئی پلگ ان کسی دوسرے پلگ ان کے ٹیبلز کو ہاتھ نہیں لگاتا۔
  • رجسٹریاں پہلے لوڈ ہوتی ہیںadd_admin_page، add_route، add_cron_job، add_api_route اور register_module سب کسی بھی پلگ ان کے لوڈ ہونے سے پہلے طے ہو جاتے ہیں، اس لیے پلگ ان کی ٹاپ لیول کالز کبھی فیٹل ایرر نہیں دیتیں، چاہے وہ پلگ ان آخر میں غیر فعال ہی کیوں نہ رہے۔
  • صاف ستھری ہٹائی — پلگ ان ڈیلیٹ کرنے پر اس کی uninstall.php چلتی ہے اور اس کا فولڈر ہٹ جاتا ہے؛ plugins/<slug>/ سے باہر کسی چیز کو اس کی فائلوں کی لازمی ضرورت نہیں ہونی چاہیے، تاکہ پلگ ان کے جانے کے بعد باقی سائٹ چلتی رہے۔

تھیم سسٹم

تھیم assets/themes/<slug>/ میں رہتا ہے — ایک manifest.php، ایک theme.css، تھیم ہُکس کے لیے functions.php اور اختیاری components/۔ فعال تھیم tbl_settings.active_theme میں محفوظ ہوتا ہے، اور اگر کوئی سیٹ نہ ہو تو editorial فال بیک کے طور پر استعمال ہوتا ہے۔

کمپوننٹ اِس ترتیب سے تلاش کیا جاتا ہے: پہلے فعال تھیم کا اپنا components/ فولڈر، پھر کسی پلگ ان کا وہ کمپوننٹس فولڈر جو اُس نے register_module() کے ذریعے بتایا ہو، اور آخر میں مشترکہ روٹ components/۔ عملی طور پر اس کا مطلب یہ ہے کہ مشترکہ ڈیفالٹ ایک ہی بار components/ میں رہتا ہے، اور کوئی بھی تھیم — یا کوئی فعال شعبہ پلگ ان — کسی خاص کمپوننٹ کے راستے کو اپنی کاپی سے بدل سکتا ہے۔

ڈیٹابیس

ٹیبل پریفکس tbl_، خام mysqli، اور زیادہ تر پریپیئرڈ اسٹیٹمنٹس۔ SQL فائلیں، اہمیت کی ترتیب سے:

  • database/core-schema.sql — ہاتھ سے سنبھالے جانے والے صرف کرنل ٹیبلز؛ شعبوں اور پلگ انز کے ٹیبلز جان بوجھ کر شامل نہیں کیے جاتے۔
  • database/production.sql — خودکار طور پر بنتی ہے (کور اسکیما + ہر پلگ ان کا اپنا انسٹال روٹین، ایک عارضی ڈیٹابیس سے ڈمپ کر کے)۔ نئی انسٹالیشن کے لیے آپ یہی امپورٹ کرتے ہیں۔
  • database/sandbox.sql — لوکل ڈیولپمنٹ کے لیے ڈیمو/سیڈ ڈیٹا۔
  • database/migration.sql — پہلے سے موجود انسٹالیشنز کے لیے یکجا اپ گریڈ اسکرپٹ، جسے بار بار چلانا محفوظ ہے۔
  • database/migrations/<slug>/up.sql (اور جہاں واپسی ممکن ہو وہاں down.sql بھی) — ہر مائیگریشن کے لیے الگ فائل۔

ماڈیولز

ہر ماڈیول ایک ہی انسٹالیشن میں آتا ہے اور ایڈمن پینل سے الگ الگ آن یا آف کیا جا سکتا ہے۔

آکشنز

لائیو بڈنگ، ملٹی سیلر پورٹل اور کمیشن انجن کے ساتھ۔ بنیادی پلگ ان: plugins/auction۔

auction-anti-snipeauction-autobidderauction-buy-nowauction-notify-meauction-premiumauction-shippingauction-unlock

لاٹری

ٹکٹ والے ڈرا، جن کے شیڈول، انعامات اور فاتحین کی اطلاعات قابلِ ترتیب ہیں۔ بنیادی پلگ ان: plugins/lottery۔

lottery-live-tickerlottery-print-ticket

مسٹری باکس

قابلِ ترتیب پرائز پول اور ریویل اینیمیشنز — صارف باکس خریدتا ہے اور فوراً دیکھ لیتا ہے کہ کیا جیتا۔ پلگ ان: plugins/mystery-box۔

گیمز اور ریوارڈز

games/ کے نیچے آرکیڈ گیمز کا ایک کلسٹر، اور اس کے ساتھ انگیجمنٹ اور کمائی والے پلگ انز:

2048bamboo-fortuneclick-speedemoji-funhex-burstodd-one-outword-search
earn-gamesearn-daily-bonusearn-offerwallsearn-watch-earn

شاپ اور مارکیٹ پلیس

پروموشنز اور مرچنڈائزنگ ٹولنگ کے ساتھ ملٹی سیلر ای کامرس لیئر۔ بنیادی پلگ انز: plugins/shop، plugins/multivendor۔

couponsgift-cardsshop-abandoned-cartshop-b2bshop-flash-salesshop-merchandisingshop-opsshop-shippingdigital-assetsesim-store

والیٹ، کوائنز اور سرمایہ کاری

پورے پلیٹ فارم کا ایک ہی والیٹ، جو ہر ماڈیول میں مشترک ہے۔

finance-coin-pricingfinance-exchange-ratesfinance-tax-settingswallet-transferinvestwithdrawals

ریفرلز اور ریوارڈز

referralsreferrals-multilevel

تصدیق، اعتماد اور کمپلائنس

google-loginfacebook-loginapple-loginemail-otprecaptchafraud-preventionrolesmembershipuser-impersonation

یوٹیلیٹیز

blogcachetawk-chatinsightsmanual-gateway-buildermobile-app-settings

ایڈمن پینل

ایڈمن پینل admin/ کے نیچے رہتا ہے اور اسٹور فرنٹ کے بوٹ اسٹریپ کو دہراتا نہیں — یہ ایڈمن کے لیے مخصوص سیشن/ایرر سیٹنگز کرتا ہے، پھر وہی روٹ والا includes/connection.php شامل کر لیتا ہے۔ صفحات add_admin_page() کے ذریعے رجسٹر ہوتے ہیں، جو سائیڈ بار کی انٹری، کیپیبلٹی گیٹنگ، CSRF اور لاگ اِن کی جانچ سنبھالتا ہے؛ صرف ایڈمن کے لیے JSON ایکشنز add_admin_ajax() کے ذریعے رجسٹر ہوتے ہیں اور admin/ajax.php?action=<slug> سے چلتے ہیں۔

کیٹلاگ اور مواد

آئٹمز، بینرز، صفحات، مینوز، بلاگ۔

پیمنٹس

خودکار اور دستی گیٹ ویز کا انتظام، دستی پیمنٹس کا جائزہ، پے آؤٹ ایکسپورٹس۔

صارفین اور سیلرز

یوزر گروپس، رولز، سیلر کی تفصیلات، اور صارف بن کر لاگ اِن کرنا۔

رپورٹس اور لاگز

ٹرانزیکشن/آرڈر/صارف ایکسپورٹس، کرون لاگز، ایرر ٹریکنگ، ایڈمن ایکٹیویٹی لاگز۔

مارکیٹنگ

ای میل کمپینز، ٹیمپلیٹس، نیوز لیٹرز، پش نوٹیفکیشنز، نوٹیفکیشن لاگ۔

پلگ انز، تھیمز اور SEO

پلگ انز اور تھیمز فعال/غیر فعال کریں، ہر صفحے کی الگ SEO سیٹنگز، اور پوری سائٹ کی سیٹنگز۔

اسٹور فرنٹ تھیمز

assets/themes/ کے نیچے پانچ تھیمز آتے ہیں، جنہیں ہر انسٹالیشن پر ایڈمن پینل سے بدلا جا سکتا ہے۔ ہر تھیم مشترکہ کمپوننٹس کی اپنی کاپی اپنے components/ فولڈر میں رکھتا ہے۔

Classic

سفید کارڈز اور ہلکے سایوں کے ساتھ سادہ، جدید انداز — تقریباً ہر قسم کی شاپ کے لیے محفوظ اور ہمہ جہت انتخاب۔

Editorial

گرم کاغذی رنگت اور واضح ٹائپوگرافی کے ساتھ صاف ستھرا، میگزین جیسا انداز — ایک نکھرے ہوئے، قابلِ اعتماد اسٹور فرنٹ کے لیے۔

ڈیفالٹ فال بیک تھیم
Casino

سنہری جھلک والا جراتمند، پُرتعیش ڈارک تھیم — ایسا جو پُرجوش اور اعلیٰ درجے کا محسوس ہو۔

Bazaar

روایتی بازاروں سے متاثر گرم اور خوب سجا ہوا انداز، دائیں سے بائیں لکھی جانے والی زبانوں کی سپورٹ کے ساتھ۔

Halloween

ڈراؤنا اور تہواری موسمی انداز — گہرے جامنی پس منظر اور کدو جیسی چمکتی نارنجی جھلک کے ساتھ۔

پیمنٹ گیٹ ویز

38 خودکار گیٹ ویز پلگ انز کی ملکیت ہیں — ہر ایک اپنے plugins/gateway-<slug>/ فولڈر میں رہتا ہے اور add_payment_gateway() کے ذریعے خود کو کرنل میں رجسٹر کرتا ہے۔ کسی گیٹ وے کو فعال کرتے ہی وہ کام کرنے لگتا ہے؛ چیک آؤٹ ڈسپیچر (payment_processor.php) میں کسی مخصوص گیٹ وے کا نام تک ہارڈ کوڈ نہیں۔

کارڈز اور عالمی پروسیسرز
2CheckoutAmazon PayAuthorize.NetBlueSnapCheckout.comMollieNMIPayPalPayeerSkrillStripeVenmoWise
علاقائی اور مقامی پروسیسرز
AamarpayBkashCashfreeCashmaalFlutterwaveGoCardlessInstamojoInTouchMercado PagoMidtransM-PesaNagadOpenPixPaystackPaytmPayURazorpaySSLCommerz
کرپٹو کرنسی
BinanceBlockchain.comCoinbase CommerceCoinGateCoinPaymentsMoonPayNOWPayments
دستی (ہدایات / QR پر مبنی)
UPIBank TransferPayTM QR

3 دستی طریقے کرنل کے ساتھ ہی شامل ہونے والی gateway_type = 'manual' روز ہیں، جن میں کنفیگر کرنے کے لیے کوئی init/verify کوڈ نہیں — یہ صرف پیمنٹ کی ہدایات یا QR کوڈ دکھاتے ہیں۔ manual-gateway-builder پلگ ان ایڈمن کو کوڈ چھوئے بغیر مزید کسٹم دستی پیمنٹ طریقے شامل کرنے دیتا ہے۔

کچھ گیٹ ویز (Stripe، Razorpay، Midtrans، Venmo) ایسے چیک آؤٹ فلو کے لیے render ہُک بھی رجسٹر کرتے ہیں جنہیں کلائنٹ سائیڈ JS درکار ہوتی ہے — جیسے Stripe Checkout کا بوٹ اسٹریپ، یا Razorpay/Midtrans/Braintree کی SDK جسے پہلے سرور پر بنی آرڈر ID یا ٹوکن چاہیے ہوتا ہے۔ باقی ہر گیٹ وے بغیر کسی اضافی کرنل وائرنگ کے کام کرتا ہے۔

API اور AJAX لیئرز

  • api/v1/ — موبائل ایپ اور بیرونی صارفین کے لیے JWT سے تصدیق شدہ REST API۔ api/v1/middleware/*.php فائلیں Authorization: Bearer <token> ہیڈر کی جانچ کرتی ہیں۔ پلگ انز اپنے اینڈ پوائنٹس add_api_route() کے ذریعے شامل کرتے ہیں۔
  • ajax/ — اسٹور فرنٹ کی اپنی JS (کارٹ، کوپن، نوٹیفکیشنز) کے لیے اندرونی AJAX، جس کی تصدیق سیشن کوکی سے ہوتی ہے۔ اس میں کوئی ٹوکن لیئر نہیں — یہ connection.php کے بنائے ہوئے PHP سیشن پر انحصار کرتا ہے۔
  • اوپر کی سطح پر بکھرا ہوا api/ — بغیر ورژن کے متفرق اینڈ پوائنٹس، جیسے geo_location.php، exchange-rate.php اور offerwall_postback.php۔

موبائل ایپ

mobile/ ایک الگ Capacitor + Ionic پروجیکٹ ہے — لائیو سائٹ کے گرد ایک WebView ریپر، نہ کوئی خودمختار SPA اور نہ محض api/v1 کا صارف۔ اس کی capacitor.config.ts میں server.url آپ کے ڈومین کی طرف اشارہ کرتا ہے۔ اس کی اپنی package.json ہے اور یہ پروجیکٹ کی روٹ سے بلڈ نہیں ہوتا:

cd mobile npm run sync npm run open:ios npm run open:android

اپڈیٹس اور مائیگریشنز

کسی لائیو ڈیٹابیس پر database/migration.sql یا کوئی بھی database/migrations/<slug>/up.sql چلانے سے پہلے اسنیپ شاٹ لے لیں:

mysqldump --single-transaction -u<user> -p<pass> <db> > pre-deploy-$(date +%Y%m%d-%H%M%S).sql

زیادہ تر مائیگریشنز کے ساتھ ایک down.sql بھی آتی ہے جو صرف اُسی ایک تبدیلی کو واپس کر دیتی ہے۔ چند ایسی مائیگریشنز جو محض ڈھانچہ بڑھانے کے بجائے پہلے سے موجود ڈیٹا بدل دیتی ہیں، اُن کے ساتھ ایسی down.sql آتی ہے جو صرف یہ بتاتی ہے کہ وہ کچھ کیوں نہیں کرتی — ایسی صورت میں واپس جانا ہو تو ڈیپلائے سے پہلے لیے گئے ڈمپ سے بحال کریں۔

سیکیورٹی سے متعلق نکات

  • امپورٹ کے فوراً بعد پہلے سے شامل ایڈمن کی تفصیلات بدل دیں (دیکھیں انسٹالیشن
  • .env، connection.php اور لاگ فائلوں تک براہِ راست HTTP رسائی ساتھ آنے والے .htaccess / nginx رولز سے بند ہے — اِن رولز کو ہٹائیں نہیں۔
  • اپ لوڈ کیا گیا مواد اس طرح سرو کیا جاتا ہے کہ وہ PHP کے طور پر چل نہ سکے — یہ پابندی ایپلیکیشن کی سطح پر نہیں بلکہ ویب سرور کنفیگ کی سطح پر لاگو ہوتی ہے۔
  • پیمنٹ گیٹ وے کی تفصیلات ہر گیٹ وے کے لیے الگ الگ ایڈمن پینل سے سیٹ ہوتی ہیں اور سرور کی طرف محفوظ رہتی ہیں — یہ کبھی اسٹور فرنٹ تک نہیں پہنچتیں۔

ٹیسٹنگ

کوئی PHPUnit سویٹ نہیں ہے۔ composer test دراصل bin/run-probes.php چلاتا ہے، جو includes/_probes/ اور ہر پلگ ان کے اپنے _probes/ فولڈر کی ہر probe_*.php فائل کو جمع کرتا ہے، پھر ہر ایک کو CLI سب پروسیس کے طور پر چلا کر اس کا ایگزٹ کوڈ جانچتا ہے۔

composer test # run every probe php plugins/<slug>/_probes/probe_*.php # run a single probe directly php bin/run-probes.php --all # also run destructive probes (skipped by default)

اکثر پوچھے گئے سوالات

نہیں۔ آکشنز، لاٹری، مسٹری باکس، گیمز اور شاپ/مارکیٹ پلیس سب الگ الگ پلگ انز ہیں — صرف وہی فعال کریں جو آپ کے کاروبار کو چاہیے، اور بعد میں دوبارہ انسٹال کیے بغیر مزید فعال کر لیں۔
جی ہاں۔ پلگ ان ڈیلیٹ کرنے پر اسی کا اپنا ان انسٹالر چلتا ہے اور صرف اسی کے ٹیبلز اور فائلیں ہٹتی ہیں — سائٹ کی بنیادی فعالیت اس طرح بنائی گئی ہے کہ وہ کبھی کسی مخصوص پلگ ان کے موجود ہونے پر منحصر نہ ہو۔
MariaDB۔ کچھ مائیگریشن فائلیں ایسا SQL سنٹیکس استعمال کرتی ہیں جو صرف MariaDB میں چلتا ہے اور سادہ MySQL 8 اسے رد کر دیتا ہے — ڈیولپمنٹ اور پروڈکشن، دونوں میں MariaDB استعمال کریں۔
38 خودکار گیٹ وے پلگ انز (کارڈز، والیٹس، کرپٹو اور علاقائی پروسیسرز) اور اس کے علاوہ 3 دستی طریقے — UPI، بینک ٹرانسفر اور PayTM QR — جو کور اسکیما کے ساتھ ہی شامل ہو جاتے ہیں۔ Manual Gateway Builder پلگ ان سے آپ بغیر کوئی کوڈ لکھے مزید دستی طریقے بھی شامل کر سکتے ہیں۔

سپورٹ اور وسائل

اب بھی اٹکے ہوئے ہیں، یا کوئی ایسی چیز درکار ہے جو اس صفحے پر نہیں؟