WooCommerce - 获取订单购物车数量ADMIN

时间:2013-12-26 21:25:55

标签: wordpress admin woocommerce

此变量适用于模板:

$woocommerce->cart->cart_contents_count;

但对管理员不起作用......

有谁知道如何获取购物车商品数量并将其显示在订单编辑页面上?


/**
* Display field value on the order edition page
**/
add_action( 'woocommerce_admin_order_data_after_billing_address','my_custom_checkout_field_display_admin_order_meta', 10, 1 );

function my_custom_checkout_field_display_admin_order_meta($order){
 // doesn't work...
 echo $woocommerce->cart->cart_contents_count;
}

}

1 个答案:

答案 0 :(得分:0)

默认情况下,购物车的类未加载到仪表板区域。

您可能需要显示您正在编辑的订单中的产品数量。在这种情况下,您应该在“my_custom_checkout_field_display_admin_order_meta”中使用$order->get_item_count()函数。

但是如果你真的需要获得当前登录用户(admin)的购物车项目,你应该手动加载会话中的所有购物车内容:

function my_custom_checkout_field_display_admin_order_meta(WC_Order $order){
    global $woocommerce;

    include_once( $woocommerce->plugin_path . '/classes/abstracts/abstract-wc-session.php' ); // Abstract for session implementations
    include_once( $woocommerce->plugin_path . '/classes/class-wc-session-handler.php' );    // WC Session class

    $session_class = apply_filters( 'woocommerce_session_handler', 'WC_Session_Handler' );
    $woocommerce->session = new $session_class();
    $woocommerce->cart = new WC_Cart();
    $woocommerce->cart->get_cart_from_session();

    echo $woocommerce->cart->cart_contents_count; //here it is

}

add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );