class overloading xtcPrice

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

  1. ff-webdesigner
    ff-webdesigner Erfahrener Benutzer
    Registriert seit:
    22. Januar 2014
    Beiträge:
    529
    Danke erhalten:
    47
    Danke vergeben:
    59
    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
    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.749
    Danke vergeben:
    137
    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
    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.807
    Danke erhalten:
    953
    Danke vergeben:
    304
    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
    Registriert seit:
    22. Januar 2014
    Beiträge:
    529
    Danke erhalten:
    47
    Danke vergeben:
    59
    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
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Warum setzt Du nicht in der "products"-Klasse an?
     
  6. PhoneWerkstatt
    PhoneWerkstatt Mitglied
    Registriert seit:
    26. Januar 2014
    Beiträge:
    9
    Danke erhalten:
    0
    Danke vergeben:
    1
    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
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    erst die Methode im "parent" der products-Klasse ausführen und danach im Overload Deine notwendigen Änderungen durchführen?