Seite 2 von 2

Re: Lieferadresse wird nicht übernommen

Verfasst: 08.04.2013, 17:09
von fiat500
Danke für die schnelle Antwort!
Die obige Lösung wurde von Euch aber nie bestätigt... Und Eure Aussage "Da sind noch mehr schreckliche Fehler im Lieferadressemodul!" erfordert wohl noch weitergehende Fixes als die obigen paar Zeilen...

Ich freue mich auf das Update!

Re: Lieferadresse wird nicht übernommen

Verfasst: 11.04.2013, 13:50
von Gecko123
"Zwei Posts weiter oben hast du doch schon eine Lösung." ist leider nur für die Overview, in den Mails und im Rechnungsmodul passiert noch nichts :( komm da jetzt auch nicht weiter und warte auf den Fix.

Gruß

Re: Lieferadresse wird nicht übernommen

Verfasst: 11.04.2013, 14:47
von Gecko123
Oh, update ist ja da :) geht nun alles, prima!

Re: Lieferadresse wird nicht übernommen

Verfasst: 27.04.2013, 14:39
von kungfunefar
Also bei mir funktioniert es mit der Version 3.1.2 immer noch nicht. Das Problem ist, dass die SESSION Variable ['wpsg']['checkout']['diff_shippingadress'] nicht korrekt gespeichert wird. Ich habe mir das nun mal etwas näher angeschaut und meine den Fehler gefunden zu haben:

Der Wert für ['wpsg']['checkout']['diff_shippingadress'] wird als Checkbox Wert gesendet. Dieser Wert wird anscheinend vom Shop Controller nicht korrekt ausgewertet.

LÖSUNG:
Ich habe in der Datei "checkout_shippingadress.phtml" ein zusätzliches Feld (input type="hidden") für die diff_shippingadress Variable eingebaut, deren Wert per jQuery auf '1' bzw. '0' gesetzt wird. Und siehe da, alles funktioniert wunderbar !!!

DETAILS ZUR LÖSUNG:
(Alles in der Datei 'checkout_shippingadress.phtml')

Ganz oben folgendes rein:

Code: Alles auswählen

<?php
$diff_shippingadress = ( $_SESSION['wpsg']['checkout']['diff_shippingadress'] == '1' ) ? true : false;
$checkbox_checked = ( $diff_shippingadress ) ? 'checked="checked"' : '';
$checkbox_value = ( $diff_shippingadress ) ? '1' : '0';
?>
Die Checkbox:
Input name und value sind dann hier eigentlich egal.

Code: Alles auswählen

<input id="act_checkout_shippingadress" class="wpsg_checkout formfield_checkbox" type="checkbox" name="diff_shippingadress" value="diff_shippingadress" <?php echo $checkbox_checked; ?> onclick="view_checkout_shippingadresss()" />
Das Hidden Field, einfach direkt unter die Checkbox oder drüber, egal:

Code: Alles auswählen

<input id="val_checkout_shippingadress" type="hidden" name="wpsg[checkout][diff_shippingadress]" value="<?php echo $checkbox_value; ?>" />
Dann ganz unten die jQuery Funktion anpassen:

Code: Alles auswählen

<script type="text/javascript">
	/* <![CDATA[ */
	jQuery(document).ready(function()
	{
		view_checkout_shippingadresss();
	});

	function view_checkout_shippingadresss()
	{

		if (jQuery('#act_checkout_shippingadress').attr('checked') != 'checked')
		{
			jQuery('.checkout_shippingadress').hide();
			jQuery('#val_checkout_shippingadress').val('0');
		}
		else
		{
			jQuery('.checkout_shippingadress').show();
			jQuery('#val_checkout_shippingadress').val('1');
		}

		return false;

	}
	/* ]]> */
	</script>
Bei mir funktioniert jetzt alles einwandfrei, könnte also die Lösung des Problems sein ;-)

Auf Wunsch eines Einzelnen hier nochmal der komplette Code meiner "checkout_shippingadress.phtml"
(Ich habe den Code noch ein bischen angepasst, also die jQuery Funktion vereinfacht und das onclick Event aus der Checkbox rausgenommen.
):

Code: Alles auswählen

<?php
$diff_shippingadress = ( $_SESSION['wpsg']['checkout']['diff_shippingadress'] == '1' ) ? true : false;
$checkbox_checked = ( $diff_shippingadress ) ? 'checked="checked"' : '';
$checkbox_value = ( $diff_shippingadress ) ? '1' : '0';
$display = ( $diff_shippingadress ) ? 'block' : 'none';
?>

<div class="act_checkout_shippingadress">
   <input id="act_checkout_shippingadress" class="wpsg_checkout formfield_checkbox" type="checkbox" name="diff_shippingadress" value="diff_shippingadress" <?php echo $checkbox_checked; ?> />
   <label for="act_checkout_shippingadress"><?php echo __('Die Bestellung soll an eine andere Adresse geliefert werden.', 'wpsg') ?></label>
   <input id="val_checkout_shippingadress" type="hidden" name="wpsg[checkout][diff_shippingadress]" value="<?php echo $checkbox_value; ?>" />
</div>

<div class="checkout_shippingadress" style="display:<?php echo $display; ?>;">

   <div class="wpsg_checkoutblock">
      <label for="firma" class="wpsg_checkout"><?php echo __("Firma:", "wpsg"); ?>
      </label>
      <input class="wpsg_checkout <?php echo ((in_array("name", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="name" name="wpsg[checkout][shipping_firma]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_firma']); ?>" />
   </div>

   <div class="wpsg_checkoutblock">
      <label for="title" class="wpsg_checkout"><?php echo __("Anrede:", "wpsg"); ?>
         <span class="wpsg_required">*</span>
      </label>
      <select class="wpsg_checkout <?php echo ((in_array("title", (array)$this->view['error']))?'wpsg_error':''); ?>" type="select" name="wpsg[checkout][shipping_title]" id="title" >
      <?php foreach (explode("|", $this->view['pflicht']['anrede_auswahl']) as $t) { ?>
      <option value="<?php echo $t; ?>" <?php echo (($this->view['basket']['checkout']['shipping_title'] == $t)?'selected="selected"':''); ?>><?php echo $t; ?></option>
      <?php } ?>
      </select>
   </div>

   <div class="wpsg_checkoutblock">
      <label for="vname" class="wpsg_checkout"><?php echo __("Vorname:", "wpsg"); ?>
         <span class="wpsg_required">*</span>
      </label>
      <input class="wpsg_checkout <?php echo ((in_array("shipping_vname", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="vname" name="wpsg[checkout][shipping_vname]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_vname']); ?>" />
   </div>

   <div class="wpsg_checkoutblock">
      <label for="name" class="wpsg_checkout"><?php echo __("Name:", "wpsg"); ?>
         <span class="wpsg_required">*</span>
      </label>
      <input class="wpsg_checkout <?php echo ((in_array("shipping_name", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="name" name="wpsg[checkout][shipping_name]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_name']); ?>" />
   </div>

   <div class="wpsg_checkoutblock">
      <label for="strasse" class="wpsg_checkout"><?php echo __("Strasse, Nr.:", "wpsg"); ?>
         <span class="wpsg_required">*</span>
      </label>
      <input class="wpsg_checkout <?php echo ((in_array("shipping_strasse", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="strasse" name="wpsg[checkout][shipping_strasse]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_strasse']); ?>" />
   </div>

   <div class="wpsg_checkoutblock">
      <label for="plz" class="wpsg_checkout"><?php echo __("Postleitzahl:", "wpsg"); ?>
         <span class="wpsg_required">*</span>
      </label>
      <input class="wpsg_checkout <?php echo ((in_array("shipping_plz", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="plz" name="wpsg[checkout][shipping_plz]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_plz']); ?>" />
   </div>

   <div class="wpsg_checkoutblock">
      <label for="ort" class="wpshopgermany_checkout"><?php echo __("Ort:", "wpsg"); ?>
         <span class="wpsg_required">*</span>
      </label>
      <input class="wpsg_checkout <?php echo ((in_array("shipping_ort", (array)$this->view['error']))?'wpsg_error':''); ?>" type="text" id="ort" name="wpsg[checkout][shipping_ort]" value="<?php echo htmlspecialchars($this->view['basket']['checkout']['shipping_ort']); ?>" />
   </div>

   <div class="wpsg_checkoutblock">
      <label for="wpsg_land" class="wpsg_checkout"><?php echo __("Land:", "wpsg"); ?>
      </label>
      <select name="wpsg[checkout][shipping_land]" class="wpsg_checkout <?php echo ((in_array("land", (array)$this->view['error']))?'wpsg_error':''); ?>" id="wpsg_land">
         <option value="-1"><?php echo __('Bitte auswählen', 'wpsg'); ?></option>
         <?php foreach ($this->view['laender'] as $l) { ?>
         <option value="<?php echo $l['id']; ?>" <?php echo (($l['id'] == $this->view['basket']['checkout']['shipping_land'])?'selected="selected"':''); ?>><?php echo wpsg_hspc($l['name']); ?></option>
         <?php } ?>
      </select>
   </div>
   <br />
   <script type="text/javascript">
   /* <![CDATA[ */
   jQuery(document).ready(function()
   {
      jQuery('#act_checkout_shippingadress').change(function()
         {
            if ( this.checked )
            {
               jQuery('.checkout_shippingadress').show();
               jQuery('#val_checkout_shippingadress').val('1');
            }
            else
            {
               jQuery('.checkout_shippingadress').hide();
               jQuery('#val_checkout_shippingadress').val('0');
            }
         });
   });
   /* ]]> */
   </script>
</div>

Re: Lieferadresse wird nicht übernommen

Verfasst: 05.05.2013, 22:47
von 3DM
Also das mit der abweichenden Lieferadresse funktionierte in Version 3.1.2 noch. Nach dem Update auf 3.1.4 wird die abweichende Lieferadresse nicht mehr übernommen. Was ist das jetzt wieder?

Re: Lieferadresse wird nicht übernommen

Verfasst: 06.05.2013, 14:26
von maennchen1.de
Was "funktioniert" deiner Meinung nach konkret nicht?

Re: Lieferadresse wird nicht übernommen

Verfasst: 07.05.2013, 10:33
von 3DM
Sowohl in der Mailbestätigung für den Kunden als auch für den Admin taucht die abweichende Lieferadresse nicht auf. Im Checkout des Shops wird sie aufgeführt.

Re: Lieferadresse wird nicht übernommen

Verfasst: 21.05.2013, 13:36
von sluderitz
Aktuelle Version 3.1.4:
Man kann die Lieferadresse eintragen, und diese wird zuletzt bei der Bestellübersicht angezeigt.
Das wars dann aber auch.
Weder in der Bestätigungsemail, noch auf der Rechnung, noch im Backend in der Bestellansicht
wird die Lieferadresse angezeigt.
Auch in der entsprechenden Datenbanktabelle ist die Lieferadresse nicht korrekt, es ist immer die Kundenadresse.
Das ist insgesamt ein recht großes Problem, da man so garantiert falsch liefert.
Wird das Problem bald behoben?

Re: Lieferadresse wird nicht übernommen

Verfasst: 21.05.2013, 14:55
von maennchen1.de
Hier gibt es bereits einen Workaround: viewtopic.php?f=13&t=4228