2015-02-16 2 views
0

Я пытаюсь прочитать детали отказанной корзины в woocommerce из таблицы wp_options. Строка ниже форматаwoocommerce читать детали отказанной корзины

a:19:{s:4:"cart";s:308:"a:1:{s:32:"d3d9446802a44259755d38e6d163e820";a:9:{s:10:"product_id";i:10;s:12:"variation_id";s:0:"";s:9:"variation";a:0:{}s:8:"quantity";i:1;s:10:"line_total";d:189;s:8:"line_tax";i:0;s:13:"line_subtotal";i:189;s:17:"line_subtotal_tax";i:0;s:13:"line_tax_data";a:2:{s:5:"total";a:0:{}s:8:"subtotal";a:0:{}}}}";s:15:"applied_coupons";s:6:"a:0:{}";s:23:"coupon_discount_amounts";s:6:"a:0:{}";s:27:"coupon_discount_tax_amounts";s:6:"a:0:{}";s:21:"removed_cart_contents";s:6:"a:0:{}";s:19:"cart_contents_total";d:189;s:20:"cart_contents_weight";i:2;s:19:"cart_contents_count";i:1;s:5:"total";i:0;s:8:"subtotal";i:189;s:15:"subtotal_ex_tax";i:189;s:9:"tax_total";i:0;s:5:"taxes";s:6:"a:0:{}";s:14:"shipping_taxes";s:6:"a:0:{}";s:13:"discount_cart";i:0;s:14:"shipping_total";i:0;s:18:"shipping_tax_total";i:0;s:9:"fee_total";i:0;s:4:"fees";s:6:"a:0:{}";} 

Как я могу разделить это значение, чтобы прочитать данные по тележке и продукту.

+0

См. Https://php.net/manual/en/function.unserialize.php –

ответ

2

Ваша строка сериализована. Вы должны его неэтериализовать. Вы можете использовать онлайн-инструмент для этого.

http://www.unserialize.com/

Или, вы можете запустить PHP код;

<?php 

    $serialized = 'a:19:{s:4:"cart";s:308:"a:1:{s:32:"d3d9446802a44259755d38e6d163e820";a:9:{s:10:"product_id";i:10;s:12:"variation_id";s:0:"";s:9:"variation";a:0:{}s:8:"quantity";i:1;s:10:"line_total";d:189;s:8:"line_tax";i:0;s:13:"line_subtotal";i:189;s:17:"line_subtotal_tax";i:0;s:13:"line_tax_data";a:2:{s:5:"total";a:0:{}s:8:"subtotal";a:0:{}}}}";s:15:"applied_coupons";s:6:"a:0:{}";s:23:"coupon_discount_amounts";s:6:"a:0:{}";s:27:"coupon_discount_tax_amounts";s:6:"a:0:{}";s:21:"removed_cart_contents";s:6:"a:0:{}";s:19:"cart_contents_total";d:189;s:20:"cart_contents_weight";i:2;s:19:"cart_contents_count";i:1;s:5:"total";i:0;s:8:"subtotal";i:189;s:15:"subtotal_ex_tax";i:189;s:9:"tax_total";i:0;s:5:"taxes";s:6:"a:0:{}";s:14:"shipping_taxes";s:6:"a:0:{}";s:13:"discount_cart";i:0;s:14:"shipping_total";i:0;s:18:"shipping_tax_total";i:0;s:9:"fee_total";i:0;s:4:"fees";s:6:"a:0:{}";}'; 

    $unserialized = unserialize($serialized); 

    var_dump($unserialized); 

?> 
2

Строка, которую вы показываете, сериализована. Serializing - способ хранения значения PHP (в данном случае массива) вместе со своим типом и структурой в виде строки.

Вы можете использовать unserialize функцию PHP, чтобы преобразовать строку обратно в значение PHP:

$value = unserialize($value); 

Это возвращает массив, содержащий cart ключ, который по какой-то причине сериализации, так что вы будете должны использовать unserialize снова:

$cart = unserialize($value['cart']); 

Теперь вы сможете получить доступ к данным телеги.

echo $cart['d3d9446802a44259755d38e6d163e820']['product_id']; // 10 
Смежные вопросы