此变量适用于模板:
$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;
}
}
答案 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 );