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, ex
It is a meta data string serialized array and s:31
is the length of pa_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() (or unserialize()
in PHP).
A normal array can be serialized using using WordPress maybe_serialize() (or serialize()
in PHP).
Wordpress functions like add_post_meta() or update_post_meta() will always serialize an arrays before saving a meta_value
in wp_postmeta
table.
Same thing for WooCommerce with some related WC_Data
method as save()
on CRUD Objects and all related data stores classes.
using maybe_unserialize() on your serialized string array will give:
$values = array(
'pa_hrup' => array(
'name' => 'pa_hrup',
'value' => '',
'position' => '0',
'is_visible' => '1',
'is_variation' => '0',
'is_taxonomy' => '1'
),
'pa_kapaciteta-rezervoarja-za-go' => array(
'name' => 'pa_kapaciteta-rezervoarja-za-go',
'value' => '',
'position' => '1',
'is_visible' => '1',
'is_variation' => '0',
'is_taxonomy' => '1'
)
);