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:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    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.748
    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.694
    Danke erhalten:
    885
    Danke vergeben:
    288
    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:
    419
    Danke erhalten:
    36
    Danke vergeben:
    53
    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?