Wordpress和Woocommerce最近合并了一些更改,以适应GDPR EU关于隐私新要求的指令。
因此,Wordpress允许在“工具\导出个人数据”中导出有关用户/电子邮件密钥的所有个人数据。这将包括woocommerce数据。
问题在于,来自Woocommerce的字段是本机字段,并且不会添加我为计费数据和运输数据创建的自定义字段。
因此,我正在寻找一种方法,当我们使用wordpress功能导出个人数据时,将缺少的自定义字段添加到woocommerce计费/运输输出中。我相信woocommerce可以为此提供一些帮助,但是我一直无法成功使用它们。
为更加实用,我附上新的自定义计费字段之一的示例:
add_filter( 'woocommerce_billing_fields' , 'custom_override_checkout_fields1' );
function custom_override_checkout_fields1( $fields ) {
$fields['billing_title'] = array(
'type' => 'select',
'label' => __('Title', 'woocommerce_php'),
'required' => false,
'class' => array('form-row-wide'),
'clear' => true,
'options' => $title_sample,
);
return $fields;
}
我已经成功地将此字段添加到了wordpress的'wp_privacy_personal_data_exporters'钩子中,如下所示,但是该字段与主要内容是分开的,可能是由于$ exporters数组的定义。
add_filter('wp_privacy_personal_data_exporters', 'register_my_plugin_exporter', 10 );
function register_my_plugin_exporter( $exporters ) {
$exporters['my-plugin-data'] = array(
'exporter_friendly_name' => __( 'Custom Data' ),
'callback' => 'my_plugin_exporter_data',
);
return $exporters;
}
和
function my_plugin_exporter_data( $email_address, $page = 1 ) {
global $title_sample;
$export_items = array();
$user = get_user_by( 'email', $email_address );
$user_id = $user->ID;
$data = array(
array(
'name' => __('Billing title', 'woocommerce_php'),
'value' => get_user_meta( $user_id , 'billing_title', true ) !== '' ? $title_sample[ get_user_meta( $user_id , 'billing_title', true ) ] : '',
),
);
$export_items[] = array(
'group_id' => 'woocommerce_customer',
'group_label' => __( 'Customer Data', 'woocommerce' ),
'item_id' => $user_id,
'data' => $data,
);
// Tell core if we have more comments to work on still
return array(
'data' => $export_items,
'done' => true,
);
}
请明确地说,当我说它分开时,我的意思是:
我敢打赌,使用适当的woocommerce挂钩将解决此问题。
我们将不胜感激。