Cambiare Carrello prezzo totale in WooCommerce

Io sono in esecuzione in problemi con il carrello totale solo visualizzazione 0

In sostanza quello che sto cercando di fare è accettare solo un deposito totale di un certo importo, dopo tutto carrello elementi sono stati aggiunti ai carri totale parziale.

Così, per esempio, se il cliente aggiunge un valore di 100 $elementi, non sarebbe solo pagare $10, inizialmente o (10%) del totale parziale come il valore totale.

Ho preso il codice da qui: Cambiamento totale e tax_total Woocommerce e personalizzare in questo modo:

add_action('woocommerce_cart_total', 'calculate_totals', 10, 1);

function calculate_totals($wc_price){
$new_total = ($wc_price*0.10);

return wc_price($new_total);
} 

Ma l’importo totale mostra 0.00 quando il codice è abilitato. Se rimosso il codice, ho la standard totale.

Ho anche potuto non trovare su woocommerce sito dove le api è elencato, solo generici articoli relativi a come creare un plugin.

Qualsiasi aiuto o un punto nella giusta direzione sarebbe grande.

  • Siete di fronte problema di Tipo di Dati, $wc_price è la stringa , non galleggiante, in modo che la vostra operazione aritmetica non è possibile.
  • avevi ragione, ho pensato woo-commerce avrebbe restituito il valore grezzo del totale parziale per essere manipolato, non si è reso conto che sarebbe restituire una stringa. La risposta qui sotto aiutato così come il tuo commento per aiutarmi a imparare perché non ci fu un galleggiante. Grazie.
  • Grande! Felice di codifica 🙂
InformationsquelleAutor DEVPROCB | 2017-04-14

 

2 Replies
  1. 9

    Dal Woocommerce 3.2+
    non funziona più con la nuova Classe WC_Cart_Totals

    Nuova risposta: Cambiare Carrello totale, utilizzando Ganci in Woocommerce 3.2+


    Primo woocommerce_cart_total hook è un filtro gancio, non un’azione gancio. Anche come wc_price argomento in woocommerce_cart_total è il formattato prezzo, non sarà in grado di aumentare del 10%. Ecco perché restituisce zero.

    Prima di Woocommerce v3.2 funziona come alcuni WC_Cart proprietà è possibile accedere direttamente

    È meglio utilizzare una funzione personalizzata agganciato in woocommerce_calculate_totals azione gancio
    in questo modo:

    //Tested and works for WooCommerce versions 2.6.x, 3.0.x and 3.1.x
    add_action( 'woocommerce_calculate_totals', 'action_cart_calculate_totals', 10, 1 );
    function action_cart_calculate_totals( $cart_object ) {
    
        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return;
    
        if ( !WC()->cart->is_empty() ):
            ## Displayed subtotal (+10%)
            //$cart_object->subtotal *= 1.1;
    
            ## Displayed TOTAL (+10%)
            //$cart_object->total *= 1.1;
    
            ## Displayed TOTAL CART CONTENT (+10%)
            $cart_object->cart_contents_total *= 1.1;
    
        endif;
    }

    Codice va in function.php i file del vostro bambino attivo il tema (o tema) o anche in qualche file del plugin.

    È anche possibile utilizzare WC_cart add_fee() metodo in questo hook, o utilizzata separatamente come in Cristina risposta.

    • Ciao @LoicTheAztec questo ha funzionato perfettamente. Io lo apprezzo!
    • ogni volta che si accetta una risposta (e Loic scrive le risposte migliori) il rank sale e altre persone sono aiutati.
    • Yep. Che è accettato mi aiuta a trovare la soluzione a guardare a prima. Si fa scrivere le risposte migliori.
  2. 13

    Non rispondere a questa domanda. Loic fa. Questo è un altro modo per mostrare un articolo di linea del 10% di sconto:

    function prefix_add_discount_line( $cart ) {
    
      $discount = $cart->subtotal * 0.1;
    
      $cart->add_fee( __( 'Down Payment', 'yourtext-domain' ) , -$discount );
    
    }
    add_action( 'woocommerce_cart_calculate_fees', 'prefix_add_discount_line' );

    Cambiare Carrello prezzo totale in WooCommerce

    • Sì le tasse può essere una buona soluzione. Bel colpo 🙂
    • gotcha, questo è interessante Christina, come questo aiuterà anche a separare la differenza tra il totale effettivo ed il pagamento si avrebbe bisogno di pagare oggi. Che è impressionante! grazie, mi può incorporare questo nel codice per amor di semplicità. È rock
    • Cristina, global $woocommerce con $woocommerce->cart è obsoleto. Devi usare direttamente il $cart argomento oggetto o WC()->cart.
    • Grazie. Corretto per le cose nuove. Non può tenere il passo. Io trovo che sia un buon momento quando ricevo nessun errore con il debug su ; -)
    • Ciao, quando ho aggiunto il codice in function.php l’intera sezione del carrello ottenuto scomparso can u help me con la mia versione di woocommerce è 2.6.14
    • Mi dispiace, non ti posso aiutare in quanto io non riesco a duplicare il problema. Potrebbe voler controllare lo sviluppatore docs, poiché essi sono per le vecchie versioni. docs.woocommerce.com/document/…
    • C’è un modo per aggiungere questo prima che il codice coupon è applicato?
    • Molti Gateway di Pagamento non supporta negativo tasse. Attenzione quindi, se si utilizza gateway di pagamento.

Lascia un commento