我有一个客户想要将他的各个WooCommerce商店的所有购物车重新路由到一个购物车。例如,来自商店A,B,C和D的购物车将被传递到商店F的支付网关。
我找到了一种方法,通过从任何商店获取购物车的内容并将其传递给在WooCommerce中下订单的功能,但我在这里遇到问题,因为如果我if(speed>0)speed=acc+speed-friction
var_dump
它返回此数组:
WC()->cart->get_cart()
当我尝试循环并存储序列化或编码值时,这就是我得到的:
array(1) {
["98f13708210194c475687be6106a3b84"]=>
array(10) {
["product_id"]=>
int(20)
["variation_id"]=>
int(0)
["variation"]=>
array(0) {
}
["quantity"]=>
int(2)
["line_total"]=>
float(3001.98)
["line_subtotal"]=>
float(3001.98)
["line_tax"]=>
float(0)
["line_subtotal_tax"]=>
float(0)
["line_tax_data"]=>
array(2) {
["total"]=>
array(0) {
}
["subtotal"]=>
array(0) {
}
}
["data"]=>
object(WC_Product_Simple)#8809 (12) {
["object_type":protected]=>
string(7) "product"
["post_type":protected]=>
string(7) "product"
["cache_group":protected]=>
string(8) "products"
["data":protected]=>
array(48) {
["name"]=>
string(7) "Jet sky"
["slug"]=>
string(7) "jet-sky"
["date_created"]=>
object(WC_DateTime)#8801 (4) {
["utc_offset":protected]=>
int(0)
["date"]=>
string(26) "2017-06-23 15:25:27.000000"
["timezone_type"]=>
int(1)
["timezone"]=>
string(6) "+00:00"
}
["date_modified"]=>
object(WC_DateTime)#8804 (4) {
["utc_offset":protected]=>
int(0)
["date"]=>
string(26) "2017-06-23 15:25:27.000000"
["timezone_type"]=>
int(1)
["timezone"]=>
string(6) "+00:00"
}
["status"]=>
string(7) "publish"
["featured"]=>
bool(false)
["catalog_visibility"]=>
string(7) "visible"
["description"]=>
string(278) "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo."
["short_description"]=>
string(93) "Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
["sku"]=>
string(0) ""
["price"]=>
string(7) "1500.99"
["regular_price"]=>
string(7) "1500.99"
["sale_price"]=>
string(0) ""
["date_on_sale_from"]=>
NULL
["date_on_sale_to"]=>
NULL
["total_sales"]=>
int(0)
["tax_status"]=>
string(7) "taxable"
["tax_class"]=>
string(0) ""
["manage_stock"]=>
bool(false)
["stock_quantity"]=>
NULL
["stock_status"]=>
string(7) "instock"
["backorders"]=>
string(2) "no"
["sold_individually"]=>
bool(false)
["weight"]=>
string(0) ""
["length"]=>
string(0) ""
["width"]=>
string(0) ""
["height"]=>
string(0) ""
["upsell_ids"]=>
array(0) {
}
["cross_sell_ids"]=>
array(0) {
}
["parent_id"]=>
int(0)
["reviews_allowed"]=>
bool(true)
["purchase_note"]=>
string(0) ""
["attributes"]=>
array(0) {
}
["default_attributes"]=>
array(0) {
}
["menu_order"]=>
int(0)
["virtual"]=>
bool(false)
["downloadable"]=>
bool(false)
["category_ids"]=>
array(0) {
}
["tag_ids"]=>
array(0) {
}
["shipping_class_id"]=>
int(0)
["downloads"]=>
array(0) {
}
["image_id"]=>
string(2) "18"
["gallery_image_ids"]=>
array(1) {
[0]=>
int(19)
}
["download_limit"]=>
int(-1)
["download_expiry"]=>
int(-1)
["rating_counts"]=>
array(0) {
}
["average_rating"]=>
string(1) "0"
["review_count"]=>
int(0)
}
["supports":protected]=>
array(1) {
[0]=>
string(16) "ajax_add_to_cart"
}
["id":protected]=>
int(20)
["changes":protected]=>
array(0) {
}
["object_read":protected]=>
bool(true)
["extra_data":protected]=>
array(0) {
}
["default_data":protected]=>
array(48) {
["name"]=>
string(0) ""
["slug"]=>
string(0) ""
["date_created"]=>
NULL
["date_modified"]=>
NULL
["status"]=>
bool(false)
["featured"]=>
bool(false)
["catalog_visibility"]=>
string(7) "visible"
["description"]=>
string(0) ""
["short_description"]=>
string(0) ""
["sku"]=>
string(0) ""
["price"]=>
string(0) ""
["regular_price"]=>
string(0) ""
["sale_price"]=>
string(0) ""
["date_on_sale_from"]=>
NULL
["date_on_sale_to"]=>
NULL
["total_sales"]=>
string(1) "0"
["tax_status"]=>
string(7) "taxable"
["tax_class"]=>
string(0) ""
["manage_stock"]=>
bool(false)
["stock_quantity"]=>
NULL
["stock_status"]=>
string(7) "instock"
["backorders"]=>
string(2) "no"
["sold_individually"]=>
bool(false)
["weight"]=>
string(0) ""
["length"]=>
string(0) ""
["width"]=>
string(0) ""
["height"]=>
string(0) ""
["upsell_ids"]=>
array(0) {
}
["cross_sell_ids"]=>
array(0) {
}
["parent_id"]=>
int(0)
["reviews_allowed"]=>
bool(true)
["purchase_note"]=>
string(0) ""
["attributes"]=>
array(0) {
}
["default_attributes"]=>
array(0) {
}
["menu_order"]=>
int(0)
["virtual"]=>
bool(false)
["downloadable"]=>
bool(false)
["category_ids"]=>
array(0) {
}
["tag_ids"]=>
array(0) {
}
["shipping_class_id"]=>
int(0)
["downloads"]=>
array(0) {
}
["image_id"]=>
string(0) ""
["gallery_image_ids"]=>
array(0) {
}
["download_limit"]=>
int(-1)
["download_expiry"]=>
int(-1)
["rating_counts"]=>
array(0) {
}
["average_rating"]=>
int(0)
["review_count"]=>
int(0)
}
["data_store":protected]=>
object(WC_Data_Store)#8807 (4) {
["instance":"WC_Data_Store":private]=>
object(WC_Product_Data_Store_CPT)#8806 (5) {
["internal_meta_keys":protected]=>
array(39) {
[0]=>
string(11) "_visibility"
[1]=>
string(4) "_sku"
[2]=>
string(6) "_price"
[3]=>
string(14) "_regular_price"
[4]=>
string(11) "_sale_price"
[5]=>
string(22) "_sale_price_dates_from"
[6]=>
string(20) "_sale_price_dates_to"
[7]=>
string(11) "total_sales"
[8]=>
string(11) "_tax_status"
[9]=>
string(10) "_tax_class"
[10]=>
string(13) "_manage_stock"
[11]=>
string(6) "_stock"
[12]=>
string(13) "_stock_status"
[13]=>
string(11) "_backorders"
[14]=>
string(18) "_sold_individually"
[15]=>
string(7) "_weight"
[16]=>
string(7) "_length"
[17]=>
string(6) "_width"
[18]=>
string(7) "_height"
[19]=>
string(11) "_upsell_ids"
[20]=>
string(14) "_crosssell_ids"
[21]=>
string(14) "_purchase_note"
[22]=>
string(19) "_default_attributes"
[23]=>
string(19) "_product_attributes"
[24]=>
string(8) "_virtual"
[25]=>
string(13) "_downloadable"
[26]=>
string(9) "_featured"
[27]=>
string(19) "_downloadable_files"
[28]=>
string(16) "_wc_rating_count"
[29]=>
string(18) "_wc_average_rating"
[30]=>
string(16) "_wc_review_count"
[31]=>
string(22) "_variation_description"
[32]=>
string(13) "_thumbnail_id"
[33]=>
string(11) "_file_paths"
[34]=>
string(22) "_product_image_gallery"
[35]=>
string(16) "_product_version"
[36]=>
string(12) "_wp_old_slug"
[37]=>
string(10) "_edit_last"
[38]=>
string(10) "_edit_lock"
}
["extra_data_saved":protected]=>
bool(false)
["updated_props":protected]=>
array(0) {
}
["meta_type":protected]=>
string(4) "post"
["object_id_field_for_meta":protected]=>
string(0) ""
}
["stores":"WC_Data_Store":private]=>
array(18) {
["coupon"]=>
string(24) "WC_Coupon_Data_Store_CPT"
["customer"]=>
string(22) "WC_Customer_Data_Store"
["customer-download"]=>
string(31) "WC_Customer_Download_Data_Store"
["customer-session"]=>
string(30) "WC_Customer_Data_Store_Session"
["order"]=>
string(23) "WC_Order_Data_Store_CPT"
["order-refund"]=>
string(30) "WC_Order_Refund_Data_Store_CPT"
["order-item…
我的问题:
答案 0 :(得分:2)
您正在丢失["data"]
,因为您可以看到 WC_product
对象,您可以直接访问数据,因为woocommerce 3 +。
之后的所有其他数据都受到保护,因此您也无法获取。
所以你需要以这种方式使用foreach循环:
// iterating through each cart items
foreach ( WC()->cart->get_cart() as $item_key => $item_values ){
// We set the cart item data in an array
$wc_get_cart[$item_key] = $item_values;
// We remove the WC_Product object from this array
unset($wc_get_cart[$item_key]['data']);
// We set the data with WC_Data get_data() method in a variable (array)
$product_data = $item_values['data']->get_data();
// We set back this data
$wc_get_cart[$item_key]['data'] = $product_data;
}
现在您可以序列化 $wc_get_cart
多维数组,您将看到所有需要的数据
因此,您可以使用
WC_Data get_data()
方法转换数组中的订单或产品等WooCommerce对象,然后在不使用类方法的情况下访问属性。< / p>