383 lines
5.6 KiB
Markdown
383 lines
5.6 KiB
Markdown
# WP Ingame Shop Pro
|
||
|
||
Ein leistungsstarker, vollständig eigenständiger Ingame-Shop für WordPress, entwickelt für Minecraft-Server (Spigot/Paper).
|
||
Er bietet ein komfortables Warenkorb-System, Gutscheine, Daily Deals und eine benutzerdefinierte Währung – komplett ohne RCON.
|
||
|
||
Dieses Plugin nutzt eine eigene Datenbankstruktur für maximale Performance und vollständige Unabhängigkeit von WordPress-Beiträgen.
|
||
|
||
---
|
||
|
||
## ✨ Highlights
|
||
|
||
- 🛒 **Warenkorb-System**
|
||
Mehrere Items pro Bestellung.
|
||
Eine Bestellung = eine saubere Datenbankzeile mit JSON-Details.
|
||
|
||
- ⚡ **Mehrfachbearbeitung (Bulk Edit)**
|
||
Hunderte Items gleichzeitig bearbeiten (Preis, Server, Kategorie, Status).
|
||
|
||
- 💰 **Eigene Währung**
|
||
„Coins“, „Tokens“ oder beliebige virtuelle Währungen.
|
||
|
||
- 🖼️ **Automatische Bildzuweisung**
|
||
`minecraft:diamond` → `minecraft_diamond.png`
|
||
Ideal für große Bildsammlungen (1500+ Dateien).
|
||
|
||
- 🔥 **Daily Deal & Sale-System**
|
||
|
||
- 🎫 **Smart Coupons**
|
||
Prozent- oder Festbetrag, optional nicht kombinierbar mit Angeboten.
|
||
|
||
- 🌐 **REST API ohne RCON**
|
||
|
||
- 📊 **Top-Spender & Umsatzstatistik**
|
||
|
||
---
|
||
|
||
## 🚀 Installation
|
||
|
||
1. Ordner `wp-ingame-shop-pro` nach:
|
||
|
||
wp-content/plugins/
|
||
|
||
2. Plugin im WordPress Backend aktivieren.
|
||
3. Fertig.
|
||
|
||
Bei Aktivierung werden automatisch erstellt:
|
||
|
||
- Datenbanktabellen (`wp_wis_*`)
|
||
- Cron-Jobs für Daily Deals
|
||
|
||
---
|
||
|
||
# 🖼️ Bilder-Konfiguration (Gitea Raw)
|
||
|
||
## 📂 Basis-URL für alle Item-Bilder
|
||
|
||
```
|
||
https://git.viper.ipv64.net/M_Viper/WP-Ingame-Shop-Pro/raw/branch/main/images/
|
||
```
|
||
|
||
### 🔧 Eintragen im Plugin
|
||
|
||
**Ingame Shop → Einstellungen → Bilder Basis-URL**
|
||
|
||
Eintragen:
|
||
|
||
```
|
||
https://git.viper.ipv64.net/M_Viper/WP-Ingame-Shop-Pro/raw/branch/main/images/
|
||
```
|
||
|
||
---
|
||
|
||
## 📌 Automatische Bildlogik
|
||
|
||
Item-ID im Shop:
|
||
|
||
```
|
||
minecraft:diamond
|
||
```
|
||
|
||
Automatisch geladen wird:
|
||
|
||
```
|
||
https://git.viper.ipv64.net/M_Viper/WP-Ingame-Shop-Pro/raw/branch/main/images/minecraft_diamond.png
|
||
```
|
||
|
||
Regeln:
|
||
|
||
- `:` wird zu `_`
|
||
- Dateiendung = `.png`
|
||
- Keine manuelle Bildzuweisung notwendig
|
||
|
||
---
|
||
|
||
# 📥 Quick JSON Import (Direkt von Gitea)
|
||
|
||
## 🔗 Import-URL
|
||
|
||
```
|
||
https://git.viper.ipv64.net/M_Viper/WP-Ingame-Shop-Pro/raw/branch/main/items.json
|
||
```
|
||
|
||
---
|
||
|
||
## 🛠️ Import durchführen
|
||
|
||
1. **Ingame Shop → JSON Tools**
|
||
2. **Import**
|
||
3. URL einfügen
|
||
4. Import starten
|
||
|
||
Ideal für:
|
||
|
||
- Kompletten Shop-Aufbau in Sekunden
|
||
- Regelmäßige Synchronisation
|
||
- Kombination mit Bulk Edit
|
||
|
||
---
|
||
|
||
# 🛠️ Admin-Bereich
|
||
|
||
## 1️⃣ Einstellungen
|
||
|
||
- Shop Header Text
|
||
- Währungsname (z.B. Coins)
|
||
- Bilder Basis-URL
|
||
- Daily Deal (% Rabatt)
|
||
- Gutscheine auf Sale-Items erlauben / verbieten
|
||
|
||
---
|
||
|
||
## 2️⃣ Items Verwaltung
|
||
|
||
### Einzelbearbeitung
|
||
|
||
- Item ID (`minecraft:diamond`)
|
||
- Preis
|
||
- Angebotspreis
|
||
- Server-Zuweisung
|
||
- Kategorie
|
||
- Status (`publish` / `draft`)
|
||
|
||
---
|
||
|
||
## 🔄 Bulk Edit (Mehrfachbearbeitung)
|
||
|
||
Beispiel: 100 Items einem Server zuweisen.
|
||
|
||
1. Items anhaken
|
||
2. „Massenaktionen“ wählen:
|
||
- Server zuweisen
|
||
- Preis ändern
|
||
- Kategorie setzen
|
||
- Status ändern
|
||
3. Anwenden
|
||
4. Änderungen speichern
|
||
|
||
Überschreibt bestehende Server-/Kategorie-Zuweisungen.
|
||
|
||
---
|
||
|
||
## 3️⃣ Weitere Bereiche
|
||
|
||
### 📦 Bestellungen
|
||
|
||
- Bestellungen anzeigen
|
||
- Manuell abschließen
|
||
- Stornieren
|
||
|
||
Status:
|
||
|
||
```
|
||
pending
|
||
processing
|
||
completed
|
||
cancelled
|
||
```
|
||
|
||
---
|
||
|
||
### 🌐 Server
|
||
|
||
Beispiel:
|
||
|
||
```
|
||
lobby
|
||
survival
|
||
skyblock
|
||
```
|
||
|
||
Frontend-Filter werden automatisch generiert.
|
||
|
||
---
|
||
|
||
### 📂 Kategorien
|
||
|
||
Beispiel:
|
||
|
||
```
|
||
Blöcke
|
||
Waffen
|
||
Rüstung
|
||
Ranks
|
||
```
|
||
|
||
---
|
||
|
||
### 🎫 Gutscheine
|
||
|
||
- `fixed` (Festbetrag)
|
||
- `percent` (Prozent)
|
||
- Ablaufdatum
|
||
- Nutzungslimit
|
||
- Ausschluss bei Angeboten
|
||
|
||
---
|
||
|
||
### 📊 Top Spender
|
||
|
||
Automatische Auswertung der Bestellungen.
|
||
|
||
---
|
||
|
||
# 🎮 Frontend Nutzung
|
||
|
||
Shortcode:
|
||
|
||
```
|
||
[ingame_shop_form]
|
||
```
|
||
|
||
---
|
||
|
||
## Spieler-Funktionen
|
||
|
||
- Suche
|
||
- Server-Filter
|
||
- Kategorie-Tabs
|
||
- Warenkorb
|
||
- Gutschein-Eingabe
|
||
- Server-Validierung beim Checkout
|
||
|
||
---
|
||
|
||
# 📡 REST API
|
||
|
||
Basis:
|
||
|
||
```
|
||
/wp-json/wis/v1/
|
||
```
|
||
|
||
---
|
||
|
||
## Bestellung erstellen
|
||
|
||
```
|
||
POST /wis/v1/order
|
||
```
|
||
|
||
```json
|
||
{
|
||
"player": "Name",
|
||
"server": "survival",
|
||
"cart": [
|
||
{ "id": "item_id", "quantity": 1 }
|
||
],
|
||
"coupon_code": "CODE"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## Offene Bestellungen abrufen
|
||
|
||
```
|
||
GET /wis/v1/pending_orders?player=Name
|
||
```
|
||
|
||
---
|
||
|
||
## Status ändern
|
||
|
||
```
|
||
POST /wis/v1/execute_order
|
||
POST /wis/v1/complete_order
|
||
POST /wis/v1/cancel_order
|
||
```
|
||
|
||
---
|
||
|
||
## Gutschein validieren
|
||
|
||
```
|
||
POST /wis/v1/validate_coupon
|
||
```
|
||
|
||
---
|
||
|
||
# 💾 Datenbank-Struktur
|
||
|
||
## `wp_wis_items`
|
||
|
||
| Feld | Beschreibung |
|
||
|------|-------------|
|
||
| item_id | minecraft:diamond |
|
||
| name | Anzeigename |
|
||
| price | Standardpreis |
|
||
| offer_price | Angebotspreis |
|
||
| is_offer | 0 / 1 |
|
||
| servers | JSON Array |
|
||
| categories | JSON Array |
|
||
| status | publish / draft |
|
||
|
||
---
|
||
|
||
## `wp_wis_orders`
|
||
|
||
| Feld | Beschreibung |
|
||
|------|-------------|
|
||
| player_name | Minecraft Name |
|
||
| server | Zielserver |
|
||
| item_title | Zusammenfassung |
|
||
| price | Gesamtpreis |
|
||
| response | JSON |
|
||
| status | pending / processing / completed / cancelled |
|
||
|
||
---
|
||
|
||
## `wp_wis_coupons`
|
||
|
||
| Feld | Beschreibung |
|
||
|------|-------------|
|
||
| code | Gutschein |
|
||
| type | fixed / percent |
|
||
| value | Rabattwert |
|
||
| usage_limit | Limit |
|
||
| used_count | Nutzung |
|
||
|
||
---
|
||
|
||
## `wp_wis_servers`
|
||
|
||
Serverdefinitionen
|
||
|
||
---
|
||
|
||
## `wp_wis_categories`
|
||
|
||
Kategoriedefinitionen
|
||
|
||
---
|
||
|
||
# ⚡ Performance Empfehlung
|
||
|
||
Bei 1500+ PNG-Dateien:
|
||
|
||
- CDN empfohlen
|
||
- PNG verlustfrei komprimieren
|
||
- Gitea Caching aktivieren
|
||
- Optional WebP-Versionen erstellen
|
||
|
||
---
|
||
|
||
# 🔐 Sicherheitshinweis
|
||
|
||
Aktuell sind API-Endpunkte öffentlich (`__return_true`).
|
||
|
||
Für Produktion empfohlen:
|
||
|
||
- API-Key Header
|
||
- Bearer Token
|
||
- IP Whitelisting
|
||
- Nonce/Signature System
|
||
|
||
---
|
||
|
||
# 📦 Meta
|
||
|
||
Version: 2.1.0
|
||
Autor: M_Viper
|
||
Lizenz: GPL-2.0-or-later
|