I am inserting items and attributes via SQL. Everything works fine, but i cannot figure it out how the _product_attributes in wp_postmeta
I understand the logic, except the s:7:"pa_hrup" <-- where do i get 7 and s:31:"pa_kapaciteta-rezervoarja-za-go" <-- where do i get 31..
a:2:{s:7:"pa_hrup";a:6:{s:4:"name";s:7:"pa_hrup";s:5:"value";s:0:"";s:8:"position";i:0;s:10:"is_visible";i:1;s:12:"is_variation";i:0;s:11:"is_taxonomy";i:1;}s:31:"pa_kapaciteta-rezervoarja-za-go";a:6:{s:4:"name";s:31:"pa_kapaciteta-rezervoarja-za-go";s:5:"value";s:0:"";s:8:"position";i:1;s:10:"is_visible";i:1;s:12:"is_variation";i:0;s:11:"is_taxonomy";i:1;}}
It is a meta data string serialized array and
s:31
is the length ofpa_kapaciteta-rezervoarja-za-go
in this case.a:6
is the number ok key/value pairs items for each array (or sub array).So a seriallized array:
a:
for array, plus the number of items key/value pairs in it and:
.{
for items starts:
for string, plus the lenght of the string item (key or value) and:
, plus the key or value string.;
to separate each key or value component}
for items endSerialized arrays, can be unserialized using WordPress
maybe_unserialize()
(orunserialize()
in PHP).A normal array can be serialized using using WordPress
maybe_serialize()
(orserialize()
in PHP).Wordpress functions like add_post_meta() or update_post_meta() will always serialize an arrays before saving a
meta_value
inwp_postmeta
table.Same thing for WooCommerce with some related
WC_Data
method assave()
on CRUD Objects and all related data stores classes.using
maybe_unserialize()
on your serialized string array will give: