Ofte vil det være belejligt at kunne begrænse kundens betalings-valg afhængigt af hvilket leverings-valg kunden har valgt (f.eks. hvis kunden vælger efterkravs-levering, så skal kun være muligt at betale via efterkrav). For at se en demo, så gå til www.skatepro.dk og se hvordan f.eks. efterkrav-levering giver andre betalings-muligheder
end forsendelse-levering.
Her er en beskrivelse af 4 trin til hvordan dette kan implemeteres i MS1-releasen:
1) I filen: catalog/includes/class/payment.php ændres flg. 3 linier:
if ( (tep_not_null($module)) && (in_array($module . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1)), $this->modules)) ) {
$this->selected_module = $module;
$include_modules[] = array('class' => $module, 'file' => $module . '.php');
til:
if ( (tep_not_null($module))) {
$modules_param = explode(';', $module);
reset($modules_param);
while (list(, $class) = each($modules_param)) {
$classfile = $class . '.' . substr($PHP_SELF, (strrpos($PHP_SELF, '.')+1));
if (in_array($classfile, $this->modules)) {
$include_modules[] = array('class' => $class, 'file' => $classfile);
}
}
if (sizeof($modules_param) == 1) {
$this->selected_module = $module;
}
2) I alle aktive shipping-moduler i catalog/includes/modules/shipping/ ændres de 2 liner:
function quote($method = '') {
$this->quotes = array('id' => $this->code,
til:
function quote($method = '') {
$this->quotes = array('id' => $this->code,
'allowed_payment' => 'xxx;yyy;zzz',
Skriv navnene på de betalings-moduler som skal vises hvis dette shipping-modul vælges (hvis du kun skriver '', så er alle betalingsmoduler tilladte). F.eks. kan skrives: 'pbscc;girotransfer;banktransfer'.
3) I filen catalog/checkout_payment.php skal du ændre linien:
$payment_modules = new payment;
til:
$payment_modules = new payment($shipping['allowed_payment']);
4) I filen catalog/checkout_shipping.php skal du ændre linierne:
$shipping = array('id' => $shipping,
'title' => (($free_shipping == true) ? $quote[0]['methods'][0]['title'] :
$quote[0]['module'] . ' (' . $quote[0]['methods'][0]['title'] . ')'),
'cost' => $quote[0]['methods'][0]['cost']);
til:
$shipping = array('id' => $shipping,
'title' => (($free_shipping == true) ? $quote[0]['methods'][0]['title'] :
$quote[0]['module'] . ' (' . $quote[0]['methods'][0]['title'] . ')'),
'cost' => $quote[0]['methods'][0]['cost'],
'allowed_payment' => $quote[0]['allowed_payment']);
God fornøjelse