WooCommerce Booking - 在购物车中检索特定数据?

时间:2016-08-22 09:12:04

标签: php wordpress woocommerce cart woocommerce-bookings

我有这个数组,使用以下行从WooCommerce转储:

$items = $woocommerce->cart->get_cart();
foreach($items as $item => $values) { 
    // some code here…
} 

如果我制作购物车的原始输出($ items),我会得到这个:

array(1) {
  ["f584d8671586d336d84e8cf9ed43303c"]=>

  array(11) {


["booking"]=>
array(15) {
  ["_year"]=>
  int(2016)
  ["_month"]=>
  int(8)
  ["_day"]=>
  int(28)
  ["_persons"]=>
  array(1) {
    [0]=>
    int(1)
  }
  ["_date"]=>
  string(9) "2016-8-28"
  ["date"]=>
  string(13) "28 août 2016"
  ["_time"]=>
  string(5) "21:30"
  ["time"]=>
  string(11) "21 h 30 min"
  ["_qty"]=>
  int(1)
  ["Personnes"]=>
  int(1)
  ["_start_date"]=>
  int(1472419800)
  ["_end_date"]=>
  int(1472421600)
  ["_all_day"]=>
  int(0)
  ["_cost"]=>
  int(0)
  ["_booking_id"]=>
  int(13013)
}



["product_id"]=>
int(12856)
["variation_id"]=>
int(0)
["variation"]=>
array(0) {
}
["quantity"]=>
int(1)
["line_total"]=>
float(0)
["line_tax"]=>
int(0)
["line_subtotal"]=>
int(0)
["line_subtotal_tax"]=>
int(0)
["line_tax_data"]=>
array(2) {
  ["total"]=>
  array(0) {
  }
  ["subtotal"]=>
  array(0) {
  }
}
["data"]=>
object(WC_Product_Booking)#11131 (20) {
  ["availability_rules":"WC_Product_Booking":private]=>
  array(0) {
  }
  ["id"]=>
  int(12856)
  ["post"]=>
  object(WP_Post)#11132 (24) {
    ["ID"]=>
    int(12856)
    ["post_author"]=>
    string(2) "14"
    ["post_date"]=>
    string(19) "2016-08-16 22:04:09"
    ["post_date_gmt"]=>
    string(19) "2016-08-16 20:04:09"
    ["post_content"]=>
    string(0) ""
    ["post_title"]=>
    string(10) "La Cuchara"
    ["post_excerpt"]=>
    string(0) ""
    ["post_status"]=>
    string(7) "publish"
    ["comment_status"]=>
    string(4) "open"
    ["ping_status"]=>
    string(6) "closed"
    ["post_password"]=>
    string(0) ""
    ["post_name"]=>
    string(12) "la-cuchara-2"
    ["to_ping"]=>
    string(0) ""
    ["pinged"]=>
    string(0) ""
    ["post_modified"]=>
    string(19) "2016-08-16 22:13:52"
    ["post_modified_gmt"]=>
    string(19) "2016-08-16 20:13:52"
    ["post_content_filtered"]=>
    string(0) ""
    ["post_parent"]=>
    int(0)
    ["guid"]=>
    string(59) ""
    ["menu_order"]=>
    int(0)
    ["post_type"]=>
    string(7) "product"
    ["post_mime_type"]=>
    string(0) ""
    ["comment_count"]=>
    string(1) "0"
    ["filter"]=>
    string(3) "raw"
  }
  ["product_type"]=>
  string(7) "booking"
  ["shipping_class":protected]=>
  string(0) ""
  ["shipping_class_id":protected]=>
  int(0)
  ["total_stock"]=>
  NULL
  ["supports":protected]=>
  array(0) {
  }
  ["price"]=>
  string(1) "0"
  ["wc_display_cost"]=>
  string(0) ""
  ["wc_booking_base_cost"]=>
  string(0) ""
  ["wc_booking_min_duration"]=>
  string(1) "1"
  ["wc_booking_cost"]=>
  string(0) ""
  ["wc_booking_has_resources"]=>
  string(2) "no"
  ["wc_booking_has_persons"]=>
  string(3) "yes"
  ["wc_booking_has_person_types"]=>
  string(2) "no"
  ["wc_booking_min_persons_group"]=>
  string(1) "1"
  ["tax_status"]=>
  string(7) "taxable"
  ["stock_status"]=>
  string(7) "instock"
  ["manage_stock"]=>
  string(2) "no"
    }
  }
}

我想在php变量中使用特定的数据值(预订日期,时间和人)

  ["date"]=> string(13) "28 août 2016"

  ["_persons"]=> array(1) { [0]=> int(1) }

  ["time"]=> string(11) "21 h 30 min"

如何从WooCommerce购物车对象中获取此特定值?

由于

1 个答案:

答案 0 :(得分:4)

你可以先尝试一下(但我不确定,因为我认为它可能是一个对象,所以它可能不起作用):

 echo $items[0]['booking']['date'] . '<br>';
 echo $items[0]['booking']['_persons'] . '<br>';
 echo $items[0]['booking']['time'] . '<br>';

如果不使用foreach循环,它将:

$items = WC()->cart->get_cart();

foreach($items as $item) { 
    $date = $item['booking']['date'];
    $person = $item['booking']['_persons'];
    $time = $item['booking']['time'];
}
// displaying values for test
echo 'Booking - Date: ' . $date . '/ Person: ' . $person . '/ Time: ' . $time;

其中一个肯定会起作用......