我正在尝试对购物车的总价格应用折扣,但我只能对商品基本价格而不是全部价格进行折扣。我用Google搜索并在this发布了帖子 wordpress stackoverflow:
$ amount = floatval(preg_replace('#[^ \ d。]#','', $ woocommerce-> cart-> get_cart_total())); preg_replace消除了 除十进制字符和冒号之外的所有内容。
如果您想用它做数学运算,floatval会转换该值 从字符串到数字字符串。
我尝试添加:
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
并改变
$discount = round( (($discounting_amount / 100 ) * $this->amount)*-1, WC()->cart->dp);
到
$discount = round( (($discounting_amount / 100 ) * $amount2)*-1, WC()->cart->dp);
但是我收到以下错误:
Fatal error: Call to a member function get_cart_total() on a non-object in...
答案 0 :(得分:24)
试试这个:
WC()->cart->cart_contents_total
函数get_cart_total使用wc_price函数将cart_contents_total转换为货币。
答案 1 :(得分:20)
您需要调用全局变量以确保它获得正确的值。
如果你添加
global $woocommerce;
之前
$amount2 = floatval( preg_replace( '#[^\d.]#', '', $woocommerce->cart->get_cart_total() ) );
应该解决你的问题。
答案 2 :(得分:10)
这也很有效。
<强> WC()->cart->total
强>
答案 3 :(得分:6)
这完美无缺,并删除了货币符号:
$woocommerce->cart->total;
答案 4 :(得分:4)
global $woocommerce;
$amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;
您还可以根据您的要求在浮动值中转换$ amount。
答案 5 :(得分:2)
截至2018年末,最好的方法是使用get_cart_contents_total()
。这是折扣后购物车中物品的总数。
WC()->cart->get_cart_contents_total(); // Float
其他方法可满足更具体的需求,只需看看the docs。
答案 6 :(得分:1)
要显示包含税和折扣的购物车总数,请使用此
$ordertotal = wp_kses_data( WC()->cart->get_total() );
答案 7 :(得分:1)
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()
答案 8 :(得分:1)
WC()->cart->subtotal;
this function use for get total without currency
WC()->cart->get_total();
this function use for get total with currency
答案 9 :(得分:0)
$ totalamount = $ woocommerce->购物车-> cart_contents_total;
回显$ totalamount;
答案 10 :(得分:0)
函数get_cart_contents_total()给出购物车中物品的总数,但扣除折扣。根据税收设置,您可能必须添加税收。谎言是这样的:
$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();
答案 11 :(得分:0)
以下代码输出带货币格式的价格
wc_price( WC()->cart->cart_contents_total); // Output example $118,000