2013-11-27 17 views
6

Sto lavorando a questo sito dove mi è stato chiesto di aggiungere un elenco degli articoli del carrello alla pagina di pagamento. Ho deciso di aggiungere lo shortcodeWooCommerce Mostra articoli nel carrello Pag.

[woocommerce_cart] 

alla pagina di checkout, al di sopra del

[woocommerce_checkout] 

shortcode e semplicemente usare i CSS per nascondere il "Procedi alla verifica ->" pulsante nel carrello sulla pagina di checkout .

Tuttavia, questo ha introdotto un nuovo problema. Ora, quando si seleziona la spedizione nella pagina Paga, si imposta automaticamente la spedizione impostata per il carrello nella pagina Carrello ... anche quando la nuova spedizione viene selezionata nella pagina di pagamento.

Chiaramente, questo non era il modo di aggiungere l'output del carrello alla pagina di pagamento.

Esiste un codice breve solo per mostrare gli articoli del carrello?

Che cosa devo modificare per visualizzare gli articoli del carrello nella pagina di pagamento?

risposta

15

Ho intenzione di rispondere alla mia stessa domanda, dal momento che ho risolto con qualche spunto in più. Spero che aiuterà qualcun altro più avanti lungo la strada.

Non ho trovato uno shortcode per aggiungere semplicemente il carrello in cima alla pagina di pagamento. Ho dovuto modificare direttamente il file modello.

Così, ho copiato:

/wp-content/plugins/woocommerce/templates/checkout/form-checkout.php 

a:

/wp-content/mytheme/woocommerce/checkout/form-checkout.php 

per fare le mie modifiche a tale file direttamente in modo da non perderli quando è stato aggiornato WooCommerce. Poi ho copiato il codice del modulo da:

/wp-content/plugins/woocommerce/templates/cart/cart.php 

e incollato nel file ho copiato alla mia cartella del tema:

/wp-content/mytheme/woocommerce/checkout/form-checkout.php 

dove volevo la forma di apparire.

Ci possono essere modi più eleganti, ma questo ha risolto il mio problema.

+0

Salvato una grande quantità di lavoro MrGreen grazie mille per questo. – Jack

3

È inoltre possibile utilizzare un gancio per questo

// put this in functions.php, it will produce code before the form 
add_action('woocommerce_before_checkout_form','show_cart_summary',9); 

// gets the cart template and outputs it before the form 
function show_cart_summary() { 
    wc_get_template_part('cart/cart'); 
} 

Ho creato un modellocarrello-part.php che contiene jus la tavola della spesa e ha sostituito il codice con wc_get_template_part ('carrello/carrello ','parte');

0

Un modo più semplice per farlo è aggiungendo il seguente codice nel file functions.php nel tema figlio.

In questo modo non è necessario aggiungere alcun modello o modificare alcun codice woocommerce di base.

function remove_cart_collaterals() { 
    if (is_checkout()) { 
     remove_action('woocommerce_cart_collaterals', 'woocommerce_cross_sell_display'); 
     remove_action('woocommerce_cart_collaterals', 'woocommerce_cart_totals', 10); 
    } 
} 
add_action('wp', 'remove_cart_collaterals'); 
Problemi correlati