使用 WooCommerce 的导入导出套件导出序列化 ACF 字段组
Exporting Serialized ACF Field Groups with Import Export Suite for WooCommerce
我正在尝试使用 WP All Export Pro 插件导出我的产品。我还使用 ACF 插件来显示产品规格等详细信息。但是,在导出产品时,它会序列化导出。我也尝试使用 Import Export Suite for WooCommerce 导出并得到相同的结果。
下面的序列化示例数据
a:4:{s:12:"pa_waist-pad";a:6:{s:4:"name";s:12:"pa_waist-pad";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:19:"pa_d-ring-placement";a:6:{s:4:"name";s:19:"pa_d-ring-placement";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;}s:17:"pa_leg-connection";a:6:{s:4:"name";s:17:"pa_leg-connection";s:5:"value";s:0:"";s:8:"position";i:2;s:10:"is_visible";i:1;s:12:"is_variation";i:0;s:11:"is_taxonomy";i:1;}s:7:"pa_size";a:6:{s:4:"name";s:7:"pa_size";s:5:"value";s:0:"";s:8:"position";i:3;s:10:"is_visible";i:0;s:12:"is_variation";i:1;s:11:"is_taxonomy";i:1;}}
我用下面的代码反序列化了它们。
function data_deserialize_csv($value)
{
$output = '';
$data = unserialize($value);
print_r($data);$data = reset($data);
return $data['specs_product'];
}
以上代码输出结果如下
Array
[header] =>
[caption] =>
[body] => Array
(
[0] => Array
(
[0] => Array
(
[c] => Attachment Points:
)
[1] => Array
(
[c] => 1 dorsal D-ring
)
)
[1] => Array
(
[0] => Array
(
[c] => Weight:
)
[1] => Array
(
[c] => 3.7 lbs. (1.7 kg)
我只需要此输出中的重量值。例如;
Weight:130kg,Height:130cm,Attachment Points:1 dorsal D-ring
更新 1
当我使用下面的代码时
function data_deserialize_csv($value)
{
$data = unserialize($value);
unset ($value);
return implode( ',', $data );
print_r ($data);
它给出以下输出
Array,Array,Array,Array,Array,Array
更新 2
当我使用下面的代码时
function data_deserialize_csv($valuess)
{
$data = unserialize($valuess);
foreach ($data as $key => $data) {
$output= $key." =>".$data.","; }
unset($value);
return $output;
}
它给出以下输出
pa_leg-connection =>Array,
您可以将以下代码片段与 Import Export Suite for WooCommerce 结合使用,以自定义格式导出产品数据。
add_filter('wt_batch_product_export_row_data', 'wt_batch_product_export_row_data_acf', 10, 2);
function wt_batch_product_export_row_data_acf($row, $product) {
if (isset($row['meta:specs_product']) && !empty($row['meta:specs_product'])) {
$acf_data = json_decode($row['meta:specs_product']);
if (!empty($acf_data)) {
$acf_string = '';
$acf_string .= "Weight:" . $acf_data->b[1][1]->c;
$acf_string .= ', ';
$acf_string .= "ANSI Weight Capacity:" . $acf_data->b[2][1]->c;
$row['meta:specs_product'] = $acf_string;
}
}
return $row;
}
根据您的要求更改密钥。
我正在尝试使用 WP All Export Pro 插件导出我的产品。我还使用 ACF 插件来显示产品规格等详细信息。但是,在导出产品时,它会序列化导出。我也尝试使用 Import Export Suite for WooCommerce 导出并得到相同的结果。
下面的序列化示例数据
a:4:{s:12:"pa_waist-pad";a:6:{s:4:"name";s:12:"pa_waist-pad";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:19:"pa_d-ring-placement";a:6:{s:4:"name";s:19:"pa_d-ring-placement";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;}s:17:"pa_leg-connection";a:6:{s:4:"name";s:17:"pa_leg-connection";s:5:"value";s:0:"";s:8:"position";i:2;s:10:"is_visible";i:1;s:12:"is_variation";i:0;s:11:"is_taxonomy";i:1;}s:7:"pa_size";a:6:{s:4:"name";s:7:"pa_size";s:5:"value";s:0:"";s:8:"position";i:3;s:10:"is_visible";i:0;s:12:"is_variation";i:1;s:11:"is_taxonomy";i:1;}}
我用下面的代码反序列化了它们。
function data_deserialize_csv($value)
{
$output = '';
$data = unserialize($value);
print_r($data);$data = reset($data);
return $data['specs_product'];
}
以上代码输出结果如下
Array
[header] =>
[caption] =>
[body] => Array
(
[0] => Array
(
[0] => Array
(
[c] => Attachment Points:
)
[1] => Array
(
[c] => 1 dorsal D-ring
)
)
[1] => Array
(
[0] => Array
(
[c] => Weight:
)
[1] => Array
(
[c] => 3.7 lbs. (1.7 kg)
我只需要此输出中的重量值。例如;
Weight:130kg,Height:130cm,Attachment Points:1 dorsal D-ring
更新 1
当我使用下面的代码时
function data_deserialize_csv($value)
{
$data = unserialize($value);
unset ($value);
return implode( ',', $data );
print_r ($data);
它给出以下输出
Array,Array,Array,Array,Array,Array
更新 2
当我使用下面的代码时
function data_deserialize_csv($valuess)
{
$data = unserialize($valuess);
foreach ($data as $key => $data) {
$output= $key." =>".$data.","; }
unset($value);
return $output;
}
它给出以下输出
pa_leg-connection =>Array,
您可以将以下代码片段与 Import Export Suite for WooCommerce 结合使用,以自定义格式导出产品数据。
add_filter('wt_batch_product_export_row_data', 'wt_batch_product_export_row_data_acf', 10, 2);
function wt_batch_product_export_row_data_acf($row, $product) {
if (isset($row['meta:specs_product']) && !empty($row['meta:specs_product'])) {
$acf_data = json_decode($row['meta:specs_product']);
if (!empty($acf_data)) {
$acf_string = '';
$acf_string .= "Weight:" . $acf_data->b[1][1]->c;
$acf_string .= ', ';
$acf_string .= "ANSI Weight Capacity:" . $acf_data->b[2][1]->c;
$row['meta:specs_product'] = $acf_string;
}
}
return $row;
}
根据您的要求更改密钥。