2012-04-05 14 views

Antwort

4

Es gibt ein paar Möglichkeiten, dies zu tun. Sie können ein externes Modul wie this one erwerben oder eine Überschreibung erstellen like so:

1) Kopieren Sie "classes/Address.php" in "override/classes/Address.php".

2) In Zeile 28 ändern Klassenname von AddressCore

3 bis Adresse) Bevor Funktion getZoneById, fügen Sie diese neue Funktion

/** 
* Return postcode of address 
* 
* @param $id_address Address id 
* @return integer postcode 
*/ 
public static function getPostcodeByAddress($id_address){ 
    $row = Db::getInstance()->getRow(' 
    SELECT `postcode` 
    FROM '._DB_PREFIX_.'address a 
    WHERE a.`id_address` = '.(int)($id_address)); 
    return $row['postcode']; 
} 

4) hinzufügen vor der ersten Zeile der Funktion dieses getZoneById:

$postcode=self::getPostcodeByAddress($id_address); 

if(in_array($postcode,array(your list of postcodes))){ 
    return id-of-your-zone; 
} 
2

Das ist für mich gearbeitet:

  1. Gehen Sie zu Lokalisierungs-> Zonen
  2. Erstellt neue verschiedene Zonen nach Zustand. z.B. Zonenname = "NSW"
  3. Gehen Sie zu Lokalisierungs-> Status
  4. Wählen Sie den Status und ändern Sie die neue Zone. z.B. "New South Wales" wurde in "NSW" umbenannt.
  5. Gehen Sie zu Versand-> Carriers
  6. Klicken Sie auf "Bearbeiten" auf Versandart.
  7. Klicken Sie auf "Lieferorte und -kosten"
  8. Ändern Sie jetzt die Versandkosten nach jeder Zone, die jetzt in Verbindung steht.