获取woocommerce购物车总量

Posted

技术标签:

【中文标题】获取woocommerce购物车总量【英文标题】:Get woocommerce carts total amount 【发布时间】:2014-04-10 13:44:04 【问题描述】:

我正在尝试对购物车总价应用折扣,但我只能对商品基本价格而不是总价进行折扣。我在 Google 上搜索并发现了 this 的帖子 wordpress 堆栈溢出:

$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...

【问题讨论】:

【参考方案1】:

您需要调用全局变量以确保它获得正确的值。

如果你添加

 global $woocommerce;

就在之前

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

这应该可以解决您的问题。

【讨论】:

对于某些国家,您还必须考虑逗号,试试这个'#[^\d.,]#' WC()->cart->get_cart_total() 做到了,而无需致电全球 $woocommerce【参考方案2】:

试试这个:

WC()->cart->cart_contents_total

get_cart_total 函数使用 wc_price 函数将 cart_contents_total 转换为货币。

【讨论】:

【参考方案3】:

这完美地工作并删除了货币符号:

     $woocommerce->cart->total;

【讨论】:

【参考方案4】:

这也很好用。

WC()->cart->total

【讨论】:

这会自动包含运费【参考方案5】:
global $woocommerce;
    $amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;

您还可以根据需要将 $amount 转换为浮点值。

【讨论】:

【参考方案6】:

要显示包括税费和折扣在内的购物车总数,请使用此

$ordertotal = wp_kses_data( WC()->cart->get_total() );

【讨论】:

【参考方案7】:

$totalamount = $woocommerce->cart->cart_contents_total;

回显 $totalalmount;

【讨论】:

【参考方案8】:

截至 2018 年底,最好的方法是使用 get_cart_contents_total()。这是折扣后购物车中的商品总数。

WC()->cart->get_cart_contents_total(); // Float

其他方法可用于更具体的需求,只需查看the docs。

【讨论】:

是的,这是一个很好的,就像你说的,折扣和退货浮动后。谢谢。【参考方案9】:

函数 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();

【讨论】:

【参考方案10】:

REPUESTA 决赛

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()

【讨论】:

【参考方案11】:

以下代码输出带有货币的格式化价格

wc_price( WC()->cart->cart_contents_total); // Output example $118,000

【讨论】:

【参考方案12】:
WC()->cart->subtotal; 
this function use for get total without currency
WC()->cart->get_total();
this function use for get total with currency

【讨论】:

以上是关于获取woocommerce购物车总量的主要内容,如果未能解决你的问题,请参考以下文章

Woocommerce 添加到购物车按钮重定向到结帐

从 WooCommerce 中的订单总额中删除运费总额

触发jquery代码的Woocommerce函数

如何防止“woocommerce_simple_add_to_cart”重定向到购物车页面?

从 WooCommerce 订单中获取优惠券数据

Woocommerce 在购物车页面上获取特定属性值