Sponsor-Board.de

Normale Version: WHMCs Stornierte Produkte
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

gibt es für WHMCs eine Möglichkeit wenn Produkte Storniert wurden das diese dann auch nicht mehr in der Client Area dargestellt werden?

Rechnungen werden nicht erstellt das es sich um ein Free Product handelt.

Zb. eine automatisches Löschen über eine Hook? Oder gar als Modul?

Würde für den goldenen Tip 500 Pkt. spendieren.

Danke für eure Mithilfe, Gn8 ;D
Hi,

mit API:Get_Clients_Products kannst du dir alle Produkte ausgeben lassen und dann selbst nach dem Status storniert filtern. Und dann gibts auch bestimmt ne Möglichkeit das irgendwie zu löschen.

Dir gehts aber ja nur um's Ausblenden: Kein Thema.

Gehe in das Wunschtemplate und öffne clientareaproducts.tpl. Dann suchst du:

Code:
{foreach from=$services item=service}


darunter fügst du nun

Code:
{if $service.rawstatus!="cancelled"}


ein. Sodass es nun heißt:


Code:
{foreach from=$services item=service}
{if $service.rawstatus!="cancelled"}


Danach suchst du das nächste "{foreachelse}" und fügst darüber ein "{/if}" ein, sodass nun

Code:
{/if}
{foreachelse}


dort steht.

Und siehe da: Alle stornierten Produkte sind für den User verschwunden.
Wenn dir das nicht reicht, müsste man dafür einen Cronjob Hook basteln der dann mit jedem Cronjob über die API die Arbeit erledigt, habe das jetzt aber nicht in 2-3 Minuten Morgens um fast 4 Uhr geschrieben, sorry Biggrin Müsste ich dann morgen machen. Meld dich einfach mal und sag ob's geklappt/gereicht hat.

Hey, vielen Dank für die ausführliche Beschreibung Wink - Noch ne Nachteule Wink

Das die Produkte ausgeblendet werden reicht leider nicht ganz aus. Ich habe noch einen Hook drin der verhindert das ein User sich ein neues Free Produkt bestellen kann sofern noch eins vorhanden ist. Und wenn die Produkte nur "ausgeblendet" werden erkennt WHMCs ja dennoch durch den DB Eintrag das noch ein Produkt vorhanden ist.

Ich denke das müsste man über nen neuen Hook erledigen wie du schon geschrieben hast.
Hi,

statt noch einen Hook zu schreiben der das im Cron Verfahren löscht (Zieht ja auch ne Wartezeit mit sich) wäre es einfacher den free-Hook anzupassen, sodass er einfach stornierte Produkte ignoriert.

Wenn du magst kannst du mir den Hook per PN schicken, dann passe ich ihn dir an, ansonsten müsste ich den "nur 1 Free-Produkt"- Hook auch noch selbst irgendwo rumliegen haben.
@Noez, hättest du das noch irgendwo? ^^

Ich stelle mir gerade die Frage welchen Hook ich dafür nehmen soll. Prinzipiell würde ich dann die Bestellungen nachträglich Stornieren.

@mech

Was ist denn dein Ziel damit? Ich verstehe das gerade nicht so ganz.

Alternativ kannst du doch direkt nen Query schreiben - ich finde die DB von WHMCS ist nicht schwer zu verstehen.
@Storage:

PHP-Code:
<?php

if (!defined("WHMCS"))
        die(
"This file cannot be accessed directly");


function 
limitOrders($vars) {
        if(
mysql_num_rows(mysql_query("SELECT packageid FROM `tblhosting` WHERE `userid` = '{$_SESSION['uid']}'")) > 0) {

                if(
$packageid '2') {
                global 
$errormessage;
                
$errormessage "<li>Sorry, you already have a Free VPS account and there's a limit of one per user.</li>";
                }
        }
}
add_hook("ShoppingCartValidateCheckout"1"limitOrders");
?>


Quelle: Whmcs Forum, ist nicht meins. Finde mein eigenes nicht mehr :/ ([Link: Registrierung erforderlich]) - (Muss dann halt noch die ID anpassen vom Paket)

@noez

Ahh alles klar - Danke! Biggrin

Hab eben schon angefangen ein Addon dafür zu schreiben um das Dynamisch eintragen zu können, nur bei dem Hook für das AddOn wusste ich nicht genau was ich nehmen sollte und vorallem wie ich das dem Kunden anzeigen Biggrin
Hey, jetzt wo du den Hook ja hast, sollte das kein Problem mehr sein. Hatte das früher auch per Modul gelöst. Mittlerweile schränke ich das aber nicht mehr ein, meine Kunden sind einfach die liebsten, die bestellen nicht mehr als sie brauchen Biggrin
Hey, mein Problem ist das der Hook halt weiterhin auf die Stornierten Bestellungen greift. Benutze auch den Hook den Noez gepostet hat.

[Link: Registrierung erforderlich]

Die Stonierten Bestellungen verbleiben ja im Kundeninterface nach der Stornierung der gelöschten Server.

Sodass wenn der Kunde dann nach 24 Stunden zb. erneut einen Testserver bestellen will der Hook das ablehnt weil er die Produkt id beim Kunden ja noch in der DB findet.

Dazu dachte ich mir das ich den Hook dann so anpasse das er bei der Bestellung nur noch überprüft ob das Produkt noch "Aktiv" ist, aber das will auch nicht wirklich fruchten.

Jetzt kann der Kunde komischerweise nur noch 1 Produkt generell Bestellen. Obwohl er doch eigentlich nur das Produkt mit der ID 23 checken müsste.

Hier mal meine Anpassung vielleicht gibts ja Vorschläge Smile

Code:
<?php

if (!defined("WHMCS"))
        die("This file cannot be accessed directly");


function limitOrders($vars) {
        if(mysql_num_rows(mysql_query("SELECT packageid FROM `tblhosting` WHERE `domainstatus` = 'Active' and  and `userid` = '{$_SESSION['uid']}'")) > 0)  {

                if($packageid = '23') {
                global $errormessage;
                $errormessage = "<li>Sorry, you already have a Free VPS account and there's a limit of one per user.</li>";
                }
        }
    
}
add_hook("ShoppingCartValidateCheckout", 1, "limitOrders");
?>

Hi,

ich schreibe dir morgen irgendwann den fertigen Hook. Bin jetzt für heute erst mal weg.
Seiten: 1 2 3
Referenz-URLs