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, eine benutzerdefinierte Währung und ein Item-Ankauf-System – 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, Ankauf). -
💰 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. -
🔄 Item-Ankauf-System
Spieler können Items direkt ingame an den Shop verkaufen.
Ankaufspreis pro Item konfigurierbar (% vom VK, Festpreis oder VK minus Betrag). -
🌐 REST API ohne RCON
-
📊 Top-Spender & Umsatzstatistik
🚀 Installation
WordPress Plugin
- Ordner
wp-ingame-shop-pronach:
wp-content/plugins/
- Plugin im WordPress Backend aktivieren.
- Fertig.
Bei Aktivierung werden automatisch erstellt:
- Datenbanktabellen (
wp_wis_*) - Cron-Jobs für Daily Deals
Spigot/Paper Plugin
IngameShopSpigot.jarin denplugins/-Ordner des Servers legen.- Server starten –
config.ymlwird automatisch erstellt. config.ymlausfüllen (WordPress-URL, API-Key, Server-Name)./wpis reloadoder Server neu starten.
Voraussetzungen: Vault + ein Economy-Plugin (z.B. EssentialsX)
⚙️ Spigot Plugin Konfiguration
# WordPress-URL (kein abschließendes /)
wordpress-url: "https://deine-domain.de"
# API-Key aus den WordPress-Einstellungen
api-key: "HIER_DEN_KEY_AUS_WORDPRESS_EINTRAGEN"
# Name dieses Servers (muss mit dem Server-Slug in WordPress übereinstimmen)
server-name: "survival"
# Währungsname (muss mit WordPress-Einstellung übereinstimmen)
currency-name: "$"
# Wie oft (in Sekunden) nach ausstehenden Bestellungen gesucht wird
check-interval: 10
# Debug-Modus (ausführliche Logs in der Konsole)
debug-mode: false
# Fly-Code-Einlösung auf diesem Server deaktivieren
fly-redeem-disabled: false
# Spieler der die Einnahmen aus dem Shop erhält (Vault-Konto)
income-receiver: ""
# MySQL-Verbindung (für Fly-Code-System und Rang-Sessions)
mysql:
host: "localhost"
port: "3306"
database: "minecraft"
username: "root"
password: "DEIN_PASSWORT"
# Ankauf-Einstellungen
sell:
enabled: true
# Preiskorrektur relativ zum WP-Ankaufspreis (in Prozent)
# 0.0 = exakt WP-Preis | -10.0 = 10 % weniger | +5.0 = 5 % mehr
price-offset: 0.0
🎮 Ingame-Befehle
Shop / Bestellungen
| Befehl | Beschreibung | Berechtigung |
|---|---|---|
/orders |
Zeigt deine letzten Bestellungen | ingameshop.orders |
Fly-Gutscheine
| Befehl | Beschreibung | Berechtigung |
|---|---|---|
/flytime |
Zeigt deine aktive verbleibende Fly-Zeit | ingameshop.flytime |
/flyredeem <Code> |
Löst einen Fly-Gutschein-Code ein | ingameshop.flyredeem |
/flycodes |
GUI mit deinen ungenutzten Fly-Codes (einlösen / weitergeben) | ingameshop.flycodes |
/flygive <Spieler> <Sekunden> [Label] |
Gibt einem Spieler einen Fly-Code (Admin) | ingameshop.flygive |
/flypause |
Pausiert oder setzt die aktive Fly-Zeit fort | ingameshop.flypause |
Ränge
| Befehl | Beschreibung | Berechtigung |
|---|---|---|
/rankinfo |
Zeigt deine aktiven zeitbasierten Ränge | ingameshop.rankinfo |
Item-Ankauf
| Befehl | Beschreibung | Berechtigung |
|---|---|---|
/sell |
Öffnet das Ankauf-GUI mit allen ankaufbaren Items | ingameshop.sell |
/sell hand |
Verkauft den Stack in der Hand direkt | ingameshop.sell |
/sell all |
Verkauft alle ankaufbaren Items aus dem Inventar | ingameshop.sell |
Ankauf-GUI
- Linksklick auf ein Item → verkauft alle davon im Inventar
- Rechtsklick auf ein Item → verkauft genau 1 Stack (max. 64)
- Items werden alle 5 Minuten automatisch aus WordPress aktualisiert
Admin
| Befehl | Beschreibung | Berechtigung |
|---|---|---|
/wpis reload |
Lädt config.yml und Ankaufliste live neu | ingameshop.reload (OP) |
🖼️ 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
- Ingame Shop → JSON Tools
- Import
- URL einfügen
- 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) - Ankauf aktivieren (mit Preismodus und Live-Vorschau)
Ankauf-Preismodi (pro Item)
| Modus | Beispiel | Ergebnis bei VK 100 |
|---|---|---|
% vom VK |
80 | 80 Coins |
VK minus |
10 | 90 Coins |
Fixpreis |
15 | immer 15 Coins |
🔄 Bulk Edit (Mehrfachbearbeitung)
Beispiel: 100 Items auf Ankauf konfigurieren.
- Items anhaken
- „Massenaktionen" wählen:
- Server zuweisen
- Preis ändern
- Angebot ändern
- Kategorie setzen
- Status ändern
- Ankauf konfigurieren
- Anwenden
- Änderungen speichern
Bei Ankauf konfigurieren siehst du pro Item:
- Checkbox zum Aktivieren/Deaktivieren
- Modus-Auswahl (%, minus, fix)
- Wert-Eingabe
- Live-Vorschau des Ankaufspreises
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
{
"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
Ankauf – Items abrufen
GET /wis/v1/sell_items?server=survival
Antwort:
{
"items": [
{
"item_id": "minecraft:diamond",
"name": "Diamant",
"buy_price": 100,
"sell_price": 80
}
],
"currency": "Coins"
}
Ankauf – Item verkaufen
POST /wis/v1/sell_item
{
"player": "Steve",
"server": "survival",
"item_id": "minecraft:diamond",
"quantity": 5
}
Antwort:
{
"success": true,
"item_name": "Diamant",
"quantity": 5,
"price_per_item": 80.00,
"total": 400.00
}
💾 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 |
| sell_enabled | 0 / 1 – Ankauf aktiv? |
| sell_price_mode | percent / fixed / minus |
| sell_price_value | Wert passend zum Modus |
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_sell_log
| Feld | Beschreibung |
|---|---|
| player_name | Minecraft Name |
| server | Server-Slug |
| item_id | minecraft:diamond |
| item_name | Anzeigename |
| quantity | Verkaufte Menge |
| price_per_item | Ankaufspreis pro Stück |
| total_paid | Ausgezahlter Gesamtbetrag |
| sold_at | Zeitstempel |
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
Copyright © 2026 - M_Viper - Alle Rechte vorbehalten
Die unbefugte Vervielfältigung, Verbreitung oder Weitergabe dieses Plugins ist strafbar und wird rechtlich verfolgt.