class overloading xtcPrice

Thema wurde von ff-webdesigner, 21. Oktober 2016 erstellt.

  1. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    wir nutzen folgenden code um alle produkte mit preis 0,00 € als "Preis auf Anfrage" zu kennzeichnen:

    PHP:
    class ff_xtcPrice extends ff_xtcPrice_parent
    {

       
    // mod ff
       
    function xtcFormat($p_price$p_format$p_tax_class 0$p_calculate_currency false$p_return_array 0$p_products_id 0)
         {
      
    $output parent::xtcFormat($p_price$p_format$p_tax_class$p_calculate_currency$p_return_array,
      
    $p_products_id);
         if(
    is_array($output))
           {
           
    //echo "ff".$output['formated']."ff";
           
    if(strpos($output['formated']," 0,00 EUR")!==FALSE)$output['formated']=" Preis auf Anfrage*";
           
    $output['formated']=str_replace("EUR","€",$output['formated']);
           }
         elseif(
    $p_format)
           {
           if(
    strpos($output," 0,00 EUR")!==FALSE$output " Preis auf Anfrage*";
           
    $output str_replace("EUR","€",$output);
           }
         return 
    $output;
       }
    }
    grund hierfür ist dass auch diese produkte in den warenkorb gelegt werden können sollen. bei echtem "preis auf anfrage" aus gambio wäre dies nicht möglich.

    funktioniert auch alles gut, aber wenn versandkosten 0,00 EUR sind erscheint jetzt hier natürlich auch "Preis auf Anfrage*"

    meine frage:

    gibt es irgendeine möglichkeit zu identifizieren, welche übergeordnete klasse die preisausgabe via xtcFormat angestossen hat - und diese dann selektiv nur für bestimmte preise (also nicht versandkosten) anzustossen?

    oder muss ich hier an einem ganz anderen punkt ansetzen?
     
  2. Anonymous

    Anonymous Erfahrener Benutzer Mitarbeiter

    Das wäre debug_backtrace(). Wie praktikabel das als Lösung ist, kann ich aus dem Stegreif nicht sagen.
     
  3. Christian Mueller

    Christian Mueller Beta-Held

    Wieso setzt Du nicht einfach über ein Event in der Datenbank die Artikel wirklich auf "Preis auf Anfrage"?
     
  4. ff-webdesigner

    ff-webdesigner Erfahrener Benutzer

    mit dem "echten" preis auf anfrage sind produkte nicht käuflich. wir wollen sie aber käuflich machen. daher verwandeln wir den in der db hinterlegten preis "0 €" in "preis auf anfrage".
     
  5. Avenger

    Avenger G-WARD 2012/13/14/15

    Warum setzt Du nicht in der "products"-Klasse an?
     
  6. PhoneWerkstatt

    PhoneWerkstatt Mitglied

    war meint erster gedanke. aber da der preis später durch xtcPriceFormat gejagt wird, führt umwandlung 0 euro in "preis auf anfrage" hier natürlich zu massig fehlermeldungen.
     
  7. Avenger

    Avenger G-WARD 2012/13/14/15

    erst die Methode im "parent" der products-Klasse ausführen und danach im Overload Deine notwendigen Änderungen durchführen?