Hallo, ich möchte das man im Step 2 Adresse wählen beim checkout immer eine Lieferadresse angeben kann. Also das Häkchen soll nicht gesetzt sein bei:
“Rechnungsadresse als Lieferadresse verwenden”.
Habe ich vlt eine Option im Admin übersehen oder mus sich an an die tpl ran?
Gibt es dazu eine Lösung?
Hierfür gibt es im Admin keine Einstellung, musst direkt im Template schrauben.
Ok, kannst du mir sagen wo ich genau anfassen müsste?
hab leider keine Ahnung
Hat das jemand zufälligerweise schon mal umgesetzt?
Probiers mal mit Query, sollte relativ einfach möglich sein. Kannst dann mit oxscript
einbinden.
Da habe ich leider zu wenig Ahnung von.
Aber ist es nicht eigentlich so, wenn ich in user_checkout_registration.tpl diesen Wert ändere, dass der Haken nicht mehr aktiv ist?
oder bin ich im falschen tpl?
<div class="panel-body">
<div class="form-group">
<div class="col-lg-9 col-lg-offset-3">
<div class="checkbox">
<label>
<input type="checkbox" name="blshowshipaddress" id="showShipAddress" [{if !$oView->showShipAddress()}]checked[{/if}] value="0"> [{oxmultilang ident="USE_BILLINGADDRESS_FOR_SHIPPINGADDRESS"}]
</label>
</div>
</div>
</div>
Ist zwar schon ne Weile her, aber ich stand heute vor dem gleichen Problem, deswegen eine kurze Antwort:
-
Das Ändern des Wertes hier führt nicht zum Erfolg. checkboxen sind bei OXID ein bisschen speziell. Es gibt in der Regel vorgelagert ein Hidden Field mit dem gegensätzlichen Wert. Wird die Checkbox ausgewählt, wird der Wert der Checkbox übertragen, andernfalls als Fallback der Wert des versteckten Feldes. Andernfalls würde das Feld garnicht übertragen und es gäbe im weiteren Verlauf Probleme mit der Verarbeitung
-
Ich habe es jetzt dadurch gelöst, dass ich im UserController die Funktion showShipAddress() Überschrieben habe. Ich prüfe erst, ob es die Session Variable schon gibt. Ist das nicht der Fall, hat der User noch nichts ausgewählt und ich gebe true zurück, so dass die Lieferadressen gezeigt werden. Hat der User aber schon eine Auswahl getroffen, die in der Session gespeichert wurde, dann gebe ich die zurück (parent-Aufruf):
Code:
public function showShipAddress()
{
$showshipaddressSession = \OxidEsales\Eshop\Core\Registry::getSession()->getVariable('blshowshipaddress');
if(!isset($showshipaddressSession)){
return true;
}
return parent::showShipAddress();
}
Cheers,
Thorsten