Produkt in Warenkorb legen und auf feste URL weiterleiten¶
Szenario: Ein Klick auf „In den Warenkorb“ soll das Produkt in den Warenkorb legen und den Besucher danach auf eine bestimmte Seite weiterleiten, z. B. eine Aktionsseite.
Wo der Shop nach dem Einlegen standardmäßig hinleitet, stellen Sie unter wpShopGermany → Konfiguration → Einstellungen → Allgemein → Nach neuem Produkt im Warenkorb ein (siehe Allgemeine Einstellungen). Eine frei wählbare Zieladresse ist dort nicht vorgesehen; dafür passen Sie das Produkttemplate an.
Voraussetzung¶
Bearbeiten Sie nicht das Original-Template im Plugin-Ordner, sondern eine Kopie in den User-Views, z. B. wp-content/uploads/wpsg/user_views/produkttemplates/standard.phtml. Wie das geht, beschreibt HTML-Templates individualisieren.
Template anpassen¶
Im Produkttemplate (standard.phtml, sinngemäß auch in standard2.phtml und standard3.phtml) steht unter dem Button „In den Warenkorb“ folgender Block:
<?php if (in_array($this->get_option('wpsg_afterinsert'), array('2', '3'))) { ?>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('.wpsg_add_basket_<?php echo $this->getTemplateIndex(); ?>').on('click', function() {
wpsg_blockProductTemplate(<?php echo $this->getTemplateIndex(); ?>);
jQuery.ajax( {
url: '<?php echo $this->getURL(wpsg_ShopController::URL_BASKET); ?>',
data: {
'wpsg_form_data': jQuery('#wpsg_produktform_<?php echo $this->getTemplateIndex(); ?>').serialize(),
'wpsg[ajax]': '1',
'wpsg[submit]': '1'
},
success: function(data) {
wpsg_refreshBasketWidget();
<?php if ($this->get_option('wpsg_afterinsert') == '2') { ?>
tb_show('<?php echo __('Ihr Warenkorb', 'wpsg'); ?>', '<?php echo $this->getURL(wpsg_ShopController::URL_BASKET_AJAX); ?>&height=500');
<?php } else { ?>
jQuery('body').append(data);
<?php } ?>
wpsg_unblockProductTemplate(<?php echo $this->getTemplateIndex(); ?>);
}
} );
return false;
} );
} );
</script>
<?php } ?>
Ersetzen Sie den gesamten Block durch folgenden Code:
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('.wpsg_add_basket_<?php echo $this->getTemplateIndex(); ?>').on('click', function() {
wpsg_blockProductTemplate(<?php echo $this->getTemplateIndex(); ?>);
jQuery.ajax( {
url: '<?php echo $this->getURL(wpsg_ShopController::URL_BASKET); ?>',
data: {
'wpsg_form_data': jQuery('#wpsg_produktform_<?php echo $this->getTemplateIndex(); ?>').serialize(),
'wpsg[ajax]': '1',
'wpsg[submit]': '1'
},
success: function(data) {
location.href = 'https://shop.test/zielseite/';
}
} );
return false;
} );
} );
</script>
Tragen Sie statt https://shop.test/zielseite/ die gewünschte Zieladresse ein. Ein Klick auf „In den Warenkorb“ legt das Produkt nun per Ajax in den Warenkorb und leitet danach auf diese Adresse weiter – unabhängig von der Einstellung „Nach neuem Produkt im Warenkorb“.
Hinweis
Nach einem Update des Plugins kann sich das Original-Template ändern. Vergleichen Sie Ihre angepasste Kopie dann mit der neuen Version, siehe Unterschiede von Templates erkennen.