Disabilitare il Popup “Aggiungi al Carrello” Prestashop

Molte persone vogliono disabilitare il pop-up che si apre quando si aggiunge un prodotto al carrello con Ajax, e invece vogliono essere reindirizzati alla Pagina di Riepilogo del carrello. Ho visto molti post che danno delle istruzioni per disabilitare il pop-up Aggiungi al Carrello nel modulo di Blocco del Carrello, ma funziona solo con Prestashop 1.6.

In Prestashop 1.7, la feature “Reindirizza dopo aver aggiunto il prodotto al carrello” non esiste più e, in questo caso, potreste voler disabilitare la feature Ajax Cart che appartiene al modulo del Shopping Cart (Carrello degli Acquisti). Purtroppo, se disabilitate questa funzione, il pop-up non si aprirà, ma il vostro cliente non sarà reindirizzato alla pagina di Riepilogo del Carrello.

In questo tutorial, vi mostrerò come disabilitare il pop-up “Aggiungi al carrello” Prestashop e come essere reindirizzati al Riepilogo del Carrello in Prestashop 1.7.

Disabilitare il Popup “Aggiungi al Carrello” Prestashop- Istruzioni Passo Passo

Come reindirizzare il cliente alla pagina di Riepilogo del Carrello dopo aver cliccato "Aggiungi al Carrello"?

Nella 1.6, l’opzione era sotto Preferenze -> Prodotto(Reindirizza dopo aver aggiunto il prodotto al carrello). Questa funzione è stata rimossa da Prestashop 1.7. Non so perché ma sono sicuro che a molti manchi tantissimo :)

Primo modo

Con questo metodo, proveremo a modificare il file /your- website/modules/ps_shoppingcart/ps_shoppingcart.js. Da qualche parte vicino alla riga 49 troverete un codice come questo:

if (resp.modal) {
            showModal(resp.modal);
}

showModal(resp.modal) è il codice sorgente che fa aprire il popup. Cambiatelo per disabilitare il popup e reindirizzare i clienti alla pagina di Riepilogo del Carrello:

if (resp.modal) {
            window.location.replace(prestashop.urls.pages.cart);
}

Cancellate le cache del browser e del sito per vedere i risultati.

Funziona!

Ma...aspettate! Questo trucco funziona se i visitatori non hanno fatto l'accesso. Comunque, se aggiungono dei prodotti quando hanno già fatto l’accesso nel loro account, saranno reindirizzati alla home invece che al Riepilogo del Carrello.

Eccolo qui

Abbiamo sviluppato un Prestashop Moduli chiamato ChargeMe che vi permetterà di vendere i prodotti della sottoscrizione (riviste, adesioni, libri, ecc.) via Paypal.

Vogliamo solo 1 prodotto di sottoscrizione nel carrello quando si va alla cassa, quindi è necessario il reindirizzamento automatico quando si clicca sul tasto Iscriviti. Poi aggiungiamo una funzione nel nostro file js:

prestashop.on('updateCart',function (event) {
						...
					        $.post(ajax_url, requestData, null, 'json').then(function (resp) {
						      	location.href = cart_url;
					        }).fail(function (resp) {
					          	prestashop.emit('handleError', {eventType: 'updateShoppingCart', resp: resp});
					        });
				      });

Come vedete, invece di reindirizzare al prestashop.urls.pages.cart, vogliamo reindirizzarlo al cart_url. Questo valore è predefinito. E non importa se hanno effettuato l’accesso o meno, il modulo li reindirizza al riepilogo del carrello immediatamente.

Cosa dovrete fare adesso? Dovremo aggiungere il nostro valore al vostro sito. Aprite il file yourwebsite/modules/ ps_shoppingcart/ps_shoppingcart.php per aggiungere qualcosa. Vedrete:

public function hookHeader()
    {
        if (Configuration::isCatalogMode()) {
            return;
        }

        if (Configuration::get('PS_BLOCK_CART_AJAX')) {
            $this->context->controller->registerJavascript('modules-shoppingcart', 'modules/'.$this->name.'/ps_shoppingcart.js', ['position' => 'bottom', 'priority' => 150]);
        }
    }

Modificatela in:

public function hookHeader()
    {
        if (Configuration::isCatalogMode()) {
            return;
        }

        if (Configuration::get('PS_BLOCK_CART_AJAX')) {
            $this->context->controller->registerJavascript('modules-shoppingcart', 'modules/'.$this->name.'/ps_shoppingcart.js', ['position' => 'bottom', 'priority' => 150]);
        }
    	$this->smarty->assign(array(
            'cart_url' => $this->getCartSummaryURL(),
        ));

        return $this->fetch('module:ps_shoppingcart/header.tpl');
    }

Abbiamo attribuito un nome al nuovo file, e ora dobbiamo crearlo come /yourwebsite/modules/ ps_shoppingcart/header.tpl. Mettete questo contenuto dentro questo file:

<script type="text/javascript">
	{if isset($cart_url)}
		var cart_url = '{$cart_url}';
	{/if}
</script>

Qual è la differenza? Sapete, prestashop.urls.pages.cart non è un valore predefinito. Se il cliente fa il login, prestashop.urls.pages.cart significa homepage, o no, significa pagina del Carrello. Abbiamo bisogno di usare il nostro valore.

Ora possiamo modificare il file /your-website/modules/ ps_shoppingcart/ps_shoppingcart.js usando il nostro valore:

if (resp.modal) {
           location.href = cart_url;
}

Sarebbe meglio se avessimo un’opzione per abilitare o disabilitare questa funzione. Ad ogni modo, spero che questo trucco vi dia un po’ di valore.

Va bene, gente. Non vedo l’ora di leggere i vostri commenti qui sotto. Ci vediamo settimana prossima con altri guida Prestashop. Statemi bene.

{module 337}
Get this Advanced Cart Rules module

New module.

Xleft module

Xleft shows customers how much more they need to spend to get free shipping in real time.

Ultimo aggiornamento moduli!

Age Restriction - 18+ ⊙
Risolvere alcuni problemi di visualizzazione sui dispositivi mobili.


Newsletter Popup v3.2.2
Christmas Edition per incrementare le tue vendite.


Trusty v1.4.7 ⊙ 
Compatibile con PrestaShop 1.7 e PrestaShop 8.

PrestaSOO team
Tutto il necessario per guadagnarti da vivere facendo il lavoro che ami.

Scoprire


È un investimento saggio

I moduli Prestashop che abbiamo creato per primi per risolvere il problema del nostro business - un sito di e-commerce. Ciò significa che sono molto utili per un'azienda seria. Se apprezzi la tua proprietà web, questi moduli sono un investimento saggio.
Sarah Reeves, Sviluppatore di app @ PrestaSOO
Realizzato con a Parigi e Hanoi
PrestaSOO © 2024. Tutti i diritti riservati. // Politica sulla riservatezza Termini di servizio