使用 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;
}

根据您的要求更改密钥。