Das Szenario im Plugin DATAPROZESSOR berechnet den Preis und befüllt durch die $param-Werte die Preistabelle
Diese ist auf Session-Basis. Die Werte werden durch andere Szenarien und (Pflichtfeld-)Prüfungen befüllt.
$_SESSION[‚verify_NAME_DES_FORMULARFELDES‚]
Der Vorname aus dem Input-Feld vorname wird in $_SESSION[‚verify_vorname‘] gespeichert und kann so abgerufen werden.
anrede,vorname,nachname,firma sind fixe Formularfelder.
Auch der ausgewählte Wert vom Radio-Button rechnung_bezahlung (mit Auswahloption rechnung oder kreditkarte ) wird in $_SESSION[‚verify_rechnung_bezahlung‘] gespeichert.
Weitere fixe und wichtige Formularfelder sind rechnung_firma, rechnung_empfaenger, rechnung_plz, rechnung_ort,rechnung_land, rechnung_email
Basisparameter:
wird in der Regel im Header gesetzt (PHP-Objekt set_locale() )oder im Menü
und in ein hidden-Formularfeld geschrieben. Wenn nichts definiert ist, dann ist de_DE=deutsch die gewählte Default-/Standard-Sprache
$session_locale =“de_DE“;
if($_SESSION[‚px_locale‘])
{
$session_locale = $_SESSION[‚px_locale‘];
}
wird im Szenario ganz oben definiert
$preise_brutto_netto = ‚brutto‘;
Damit wird ermittelt ob der Haupt-Preisgegenstand $px_preis ein Brutto- oder Nettobetrag darstellt und ob davon die Mehrwertsteuer dazugerechnet oder abgezogen werden muss.
Falls es ein Frühbucherrabatt gibt, muss folgende Passage im Szenario PREISRECHNER eingebaut werden.
Es können auch gestaffelte Frühbucherrabatte [6-3-1 Monat(e) vor Event] definiert werden und die if-/else-Abfragen entsprechend erweitert werden.
$early01_tag = mktime(23,59,59,4,10,2026); // – 10.April 23:59:59 mktime(Stunde,Minute,Sekunde,Monat,Tag,Jahr)
$early02_tag = mktime(23,59,59,6,10,2026); //10.Juni
if( get_current_user_id() > 0) //wenn eingeloggt, dann war er/sie schon mal eingeloggt und hat bereits ein Earlybird; daher Prüfung aussetzen
{
$earlybird_betrag = (float)get_user_meta( get_current_user_id(), „px_earlybird_betrag“, true) ;
$earlybird_betrag_netto = (float)get_user_meta( get_current_user_id(), „px_earlybird_betrag_netto“, true) ;
$earlybird_text_de = ‚Earlybird-Rabatt übertragen‘;
$earlybird_text_en = ‚Earlybird discount transferred‘;
$earlybird_text_de_netto = ‚Earlybird-Rabatt übertragen (Netto)‘;
$earlybird_text_en_netto = ‚Earlybird discount transferred (Net)‘;
}
elseif( $early01_tag >= strtotime(’now‘) ) //Zeit jetzt ist davor also Rabatt-fähig
{
$earlybird_betrag = (float)‘-200.00‚ ;
$earlybird_betrag_netto = -200.00/1.19;
$earlybird_text_de = ‚Earlybird-Rabatt‘;
$earlybird_text_de_netto = ‚Earlybird-Rabatt (Netto)‘;
$earlybird_text_en = ‚Earlybird discount‘;
$earlybird_text_en_netto = ‚Earlybird discount (Net)‘;
}
}
elseif( $early02_tag >= strtotime(’now‘) ) //Zeit jetzt ist davor also Rabatt-fähig
{
$earlybird_betrag = (float)‘-100.00‚ ;
$earlybird_betrag_netto = -100.00/1.19;
$earlybird_text_de = ‚Earlybird-Rabatt‘;
$earlybird_text_de_netto = ‚Earlybird-Rabatt (Netto)‘;
$earlybird_text_en = ‚Earlybird discount‘;
$earlybird_text_en_netto = ‚Earlybird discount (Net)‘;
}
$param[‚NAME-DES_FORMULARFELDES‘], dann wird es nachher automatisch in das entsprechende Formularfeld mit JAvascript/jQuery geschrieben
Preise und Texte definieren
if($gse_member==’ja‘ && $teilnahme_hotel==’ja‘ && $teilnahme_guest==’ja‘)
{
$px_preis = (float)‘1111.00‚;
$px_preis_brutto_formatted = number_format($px_preis,2,‘,‘,“);
$px_preis_netto = number_format($px_preis/1.19,2,‘.‘,“);
$px_preis_netto_formatted = number_format($px_preis_netto,2,‘,‘,“);
$px_produkt_de = ‚A21-MD Tagungsgebühr 2 Tage mit 1 Hotelübernachtung (‚.$tagestring_de.‘) mit Gast: ‚;
$px_produkt_en = ‚A21-MD Conference fee 2 days with 1x hotelaccommodation (‚.$tagestring_en.‘) with guest: ‚;
$px_produkt_de_brutto = $px_produkt_de.$px_preis_brutto_formatted.‘ €‘;
$px_produkt_en_brutto = $px_produkt_en.$px_preis_brutto_formatted.‘ €‘;
$px_produkt_de_netto = $px_produkt_de.$px_preis_netto_formatted.‘ € (Netto)‘;
$px_produkt_en_netto = $px_produkt_en.$px_preis_netto_formatted.‘ € (Net)‘;
}
elseif …..
{
….
}
In der Preistabelle müssen die Input-Felder mit dem Namen der hier violetten Parameter vorhanden sein um mit den zugewiesenen Werten befüllt werden zu können.
if($session_locale ==’de_DE‘)
{
$param[‚px_preis‚] = number_format($px_preis,2,‘.‘,“);
$param[‚px_preis_netto‚] = number_format($px_preis_netto,2,‘.‘,“);
$param[‚px_produkt‚] = $px_produkt_de_brutto;
$param[‚px_produkt_netto‚] = $px_produkt_de_netto;
$param[‚px_zusatzuebernachtung_betrag‚] = number_format($zusatzuebernachtung_betrag,2,‘.‘,“);
$param[‚px_zusatzuebernachtung_betrag_netto‚] = number_format($zusatzuebernachtung_betrag_netto,2,‘.‘,“);
$param[‚px_zusatzuebernachtung_text‚] = $zusatzuebernachtung_text_de_brutto;
$param[‚px_zusatzuebernachtung_text_netto‚] = $zusatzuebernachtung_text_de_netto;
$param[‚px_earlybird_betrag‚] = number_format($earlybird_betrag,2,‘.‘,“);
$param[‚px_earlybird_betrag_netto‚] = number_format($earlybird_betrag_netto,2,‘.‘,“);
$param[‚px_earlybird_text‚] = $earlybird_text_de;
$param[‚px_earlybird_text_netto‚] = $earlybird_text_de_netto;
$param[‚gutschrift_text‚] = $gutschrift_text_de;
$response = ‚Preis wurde automatisch ermittelt!‘;
}
else
{
$param[‚px_preis‘] = number_format($px_preis,2,‘.‘,“);
$param[‚px_preis_netto‘] = $px_preis_netto;
$param[‚px_produkt‘] = $px_produkt_en_brutto;
$param[‚px_produkt_netto‘] = $px_produkt_en_netto;
$param[‚earlybird_betrag_unformatted‘] = $earlybird_betrag;
$param[‚px_zusatzuebernachtung_betrag‘] = number_format($zusatzuebernachtung_betrag,2,‘.‘,“);
$param[‚px_zusatzuebernachtung_betrag_netto‘] = number_format($zusatzuebernachtung_betrag_netto,2,‘.‘,“);
$param[‚px_zusatzuebernachtung_text‘] = $zusatzuebernachtung_text_en_brutto;
$param[‚px_zusatzuebernachtung_text_netto‘] = $zusatzuebernachtung_text_en_netto;
$param[‚px_earlybird_betrag‘] = number_format($earlybird_betrag,2,‘.‘,“);
$param[‚px_earlybird_betrag_netto‘] = number_format($earlybird_betrag_netto,2,‘.‘,“);
$param[‚px_earlybird_text‘] = $earlybird_text_en;
$param[‚px_earlybird_text_netto‘] = $earlybird_text_en_netto;
$param[‚gutschrift_text‘] = $gutschrift_text_en;
$response = ‚Prices were calculated automatically!‘;
}

Sofern im Projektverlauf ein weiterer Kostenfaktor wie Treuebonus, Workshop-Gebühr, Ermäßigung Ehrenmitglied,… hinzukommt,
muss der Betrag sowohl brutto und netto bei der Zwischensumme hinzuaddiert werden (egal ob positiver oder negativer Wert)
if ($preise_brutto_netto==’brutto‘)
{
$px_zwsumme_brutto_unformatted = $px_preis + $zusatzuebernachtung_betrag + $gutschrift_betrag + $earlybird_betrag + $rabattcode_betrag + px_rechzusatz_preis02 ;
$px_zwsumme_netto_unformatted = $px_zwsumme_brutto_unformatted / (1.19);
}
else
{
$px_zwsumme_netto_unformatted = $px_preis_netto + $zusatzuebernachtung_betrag_netto + $px_gutschrift_betrag_netto + $px_earlybird_betrag_netto + $rabattcode_betrag_netto + px_rechzusatz_preis02_netto;
$px_zwsumme_brutto_unformatted = $px_zwsumme_netto_unformatted * (1.19);
}
$param[‚px_zwsumme_netto‘] =number_format($px_zwsumme_netto_unformatted,2,‘.‘,“);
$param[‚px_zwsumme_brutto‘] =number_format($px_zwsumme_brutto_unformatted,2,‘.‘,“);
Je nach Land (EWR = Europäische Währungsunion) gelten unterschiedliche Gebühren(Fees)
if($rechnung_bezahlung == ‚kreditkarte‚)
{
switch ($rechnung_land)
{
case in_array($rechnung_land,$EWRstaaten):
$px_fees_paypal_unformatted = $px_zwsumme_brutto_unformatted *(0+0.0299);
break;
case in_array($rechnung_land,array(‚Grossbritannien‘,’Großbritannien‘)):
$px_fees_paypal_unformatted = $px_zwsumme_brutto_unformatted *(0+0.0299+0.0129);
break;
case in_array($rechnung_land,array(‚Vereinigte Staaten von Amerika‘,’USA‘,’U.S.A.‘,’Kanada‘ )):
$px_fees_paypal_unformatted = $px_zwsumme_brutto_unformatted *(0+0.0299+0.0199);
break;
default:
$px_fees_paypal_unformatted = $px_zwsumme_brutto_unformatted *(0+0.0299+0.0299);
break;
}
$px_fees_paypal = number_format($px_fees_paypal_unformatted,2,‘.‘,“);
$px_mwst = ‚0.00‘;
$px_gesamtbetrag = ‚0.00‘;
$px_gesamtbrutto = ‚0.00‘;
$px_mwst_inclfees_unformatted = ($px_zwsumme_netto_unformatted + $px_fees_paypal_unformatted)*0.19;
$px_mwst_exclfees_unformatted = ($px_zwsumme_netto_unformatted )*0.19;
$px_mwst_gesamtbetrag = number_format($px_mwst_exclfees_unformatted,2,‘.‘,“);
$px_mwst_gesamtbrutto = number_format($px_mwst_inclfees_unformatted,2,‘.‘,“);
$px_gesamtbetrag_unformatted = $px_zwsumme_netto_unformatted +$px_mwst_exclfees_unformatted;
$px_gesamtbrutto_unformatted = $px_zwsumme_netto_unformatted +$px_fees_paypal_unformatted +$px_mwst_inclfees_unformatted;
$px_gesamtbetrag = number_format( $px_gesamtbetrag_unformatted,2,‘.‘,“);
$px_gesamtbrutto = number_format( $px_gesamtbrutto_unformatted,2,‘.‘,“);
$param[‚px_fees_paypal‘] = $px_fees_paypal;
$param[‚px_fees_paypal_unformatted‘] = $px_fees_paypal_unformatted;
$param[‚px_mwst_gesamtbetrag‘]= $px_mwst_gesamtbetrag;
$param[‚px_gesamtbetrag‘] = $px_gesamtbetrag;
$param[‚px_mwst‘] = $px_mwst_gesamtbrutto;
$param[‚px_mwst_gesamtbrutto‘]= $px_mwst_gesamtbrutto;
$param[‚px_gesamtbrutto‘] = $px_gesamtbrutto;
if($session_locale==’de_DE‘)
{
$param[‚px_zwsumme_nettotext‘] = ‚Zwischensumme (Netto)‘;
$param[‚px_zwsumme_bruttotext‘] = ‚Zwischensumme (Brutto)‘;
$param[‚px_fees_paypaltext‘] = ‚Gebühren‘;
$param[‚px_mwsttext‘] = ‚MwSt. (19%)‘;
$param[‚px_gesamtbetragtext‘] = ‚Gesamtbetrag (Brutto)‘;
}
else
{
$param[‚px_zwsumme_nettotext‘] = ‚Subtotal (net)‘;
$param[‚px_zwsumme_bruttotext‘] = ‚Subtotal (gross)‘;
$param[‚px_fees_paypaltext‘] = ‚Fees‘;//’Fees‘.$rechnung_land.’wie: ‚.$rechnung_bezahlung .‘:‘.$px_fees_paypal;
$param[‚px_mwsttext‘] = ‚VAT (19%)‘;
$param[‚px_gesamtbetragtext‘] = ‚Total (Gross)‘;
$param[‚px_gesamtbruttotext‘] = ‚Total (Gross)‘;
}
dp_action_set_teilnahmebetrag_exec();
dp_response($response,’nix‘,“px_gesamtbrutto“);
