Uzyskaj łączną liczbę koszyków woocommerce


Próbuję zastosować rabat do całkowitej ceny koszyka, ale mogę to zrobić tylko do ceny podstawowej przedmiotu, a nie do ceny całkowitej. Poszukałem w Google i natknąłem się

to
https://wordpress.stackexchange.com/a/115441
opublikuj w
witryna wordpress StackOverflow:

$amount = floatval( preg_replace( '#[^\d.]#', ",
$ woocommerce- & > koszyk- & > get_cart_total ())); preg_replace usuwa
wszystko oprócz miejsc dziesiętnych i dwukropków.
Jeśli chcesz zrobić z nim matematykę, floatval przekonwertuje wartość
od ciągu znaków do liczb.

Próbowałem dodać:
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );

i zmiany
$discount = round( (($discounting_amount/100 ) * $this->amount)*-1, WC()->cart->dp);

do
$discount = round( (($discounting_amount/100 ) * $amount2)*-1, WC()->cart->dp);

Ale pojawia się następujący błąd:
Fatal error: Call to a member function get_cart_total() on a non-object in...

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Spróbuj:
WC()->cart->cart_contents_total

Funkcja get_cart_total używa funkcji wc_price, która konwertuje cart_contents_total na walutę.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz wywołać zmienną globalną, aby upewnić się, że ma prawidłowe wartości.
Jeśli dodasz
global $woocommerce;

tuż przed tym
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );

to powinno rozwiązać twój problem.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

To też działa dobrze.
WC()->cart->total
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Od końca 2018 roku najlepiej jest używać metody
get_cart_contents_total ()
. Jest to całkowita liczba pozycji w koszyku po rabatach.
WC()->cart->get_cart_contents_total();// Float

Inne metody są dostępne dla bardziej szczegółowych potrzeb, wystarczy spojrzeć na

dokumenty
https://docs.woocommerce.com/w ... otals
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Działa to świetnie i usuwa symbol waluty:
$woocommerce->cart->total;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

global $woocommerce;
$amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;

Możesz także przeliczyć kwotę na zmienną zgodnie z wymaganiami.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Użyj tego parametru, aby wyświetlić całkowitą liczbę koszyków, w tym podatki i rabaty

$ordertotal = wp_kses_data( WC()->cart->get_total() );
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

$totalamount = $woocommerce->cart->cart_contents_total;
Echo $ totalamount;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Funkcja Get_cart_contents_total () podaje całkowitą liczbę pozycji w koszyku, ale po rabatach. W zależności od ustawień podatkowych może być konieczne dodanie podatków. Coś takiego:
$cart_total_price = wc_prices_include_tax() ? WC()->cart->get_cart_contents_total() + WC()->cart->get_cart_contents_tax() : WC()->cart->get_cart_contents_total();
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

REPUESTA FINAL
global $woocommerce;

$order = wc_get_order( $order_id );

if ( $order ) {
$order->get_id();
$order->get_order_key();
$order->get_formatted_order_total();
$order->get_cart_tax();
$order->get_currency();
$order->get_discount_tax();
$order->get_discount_to_display();
$order->get_discount_total();
$order->get_fees();
$order->get_formatted_line_subtotal();
$order->get_shipping_tax();
$order->get_shipping_total();
$order->get_subtotal();
$order->get_subtotal_to_display();
$order->get_tax_location();
$order->get_tax_totals();
$order->get_taxes();
$order->get_total();
$order->get_total_discount();
$order->get_total_tax();
$order->get_total_refunded();
$order->get_total_tax_refunded();
$order->get_total_shipping_refunded();
$order->get_item_count_refunded();
$order->get_total_qty_refunded();
$order->get_qty_refunded_for_item();
$order->get_total_refunded_for_item();
$order->get_tax_refunded_for_item();
$order->get_total_tax_refunded_by_rate_id();
$order->get_remaining_refund_amount();

// recorder ITEMs foreach ( $order->get_items() as $item_id => $item ) {
$product_id = $item->get_product_id();
$variation_id = $item->get_variation_id();
$product = $item->get_product();
$name = $item->get_name();
$quantity = $item->get_quantity();
$subtotal = $item->get_subtotal();
$total = $item->get_total();
$tax = $item->get_subtotal_tax();
$taxclass = $item->get_tax_class();
$taxstat = $item->get_tax_status();
$allmeta = $item->get_meta_data();
$somemeta = $item->get_meta( '_whatever', true );
$type = $item->get_type();
}$order->get_items_key();
$order->get_items_tax_classes();
$order->get_item_count();
$order->get_item_total();
$order->get_downloadable_items();
$order->get_line_subtotal();
$order->get_line_tax();
$order->get_line_total();
$order->get_shipping_method();
$order->get_shipping_methods();
$order->get_shipping_to_display();
$order->get_date_created();
$order->get_date_modified();
$order->get_date_completed();
$order->get_date_paid();
$order->get_customer_id();
$order->get_user_id();
$order->get_user();
$order->get_customer_ip_address();
$order->get_customer_user_agent();
$order->get_created_via();
$order->get_customer_note();
$order->get_address_prop();
$order->get_billing_first_name();
$order->get_billing_last_name();
$order->get_billing_company();
$order->get_billing_address_1();
$order->get_billing_address_2();
$order->get_billing_city();
$order->get_billing_state();
$order->get_billing_postcode();
$order->get_billing_country();
$order->get_billing_email();
$order->get_billing_phone();
$order->get_shipping_first_name();
$order->get_shipping_last_name();
$order->get_shipping_company();
$order->get_shipping_address_1();
$order->get_shipping_address_2();
$order->get_shipping_city();
$order->get_shipping_state();
$order->get_shipping_postcode();
$order->get_shipping_country();
$order->get_address();
$order->get_shipping_address_map_url();
$order->get_formatted_billing_full_name();
$order->get_formatted_shipping_full_name();
$order->get_formatted_billing_address();
$order->get_formatted_shipping_address();

// Get Order Payment Details
$order->get_payment_method();
$order->get_payment_method_title();
$order->get_transaction_id();

// Get Order URLs
$order->get_checkout_payment_url();
$order->get_checkout_order_received_url();
$order->get_cancel_order_url();
$order->get_cancel_order_url_raw();
$order->get_cancel_endpoint();
$order->get_view_order_url();
$order->get_edit_order_url();
$order->get_status();}// para obtener el simbolo '$'get_woocommerce_currency_symbol()
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Poniższy kod wyświetla sformatowaną cenę z walutą
wc_price( WC()->cart->cart_contents_total);// Output example $118,000

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się