我正在尝试编写一个插件,允许我导入和导出产品的发布日期。我已经基于 this gist 并让它适用于自定义分类法和 post slug,所以我相信这种方法应该有效,但我似乎无法导入以正确更新日期.
我正在尝试在 WC_Product 上使用 get_date_created 和 set_date_created。我有这样的东西用于导出:
function plg_add_columns($columns) {
$columns['PublishedDate'] = 'PublishedDate';
return $columns;
}
add_filter('woocommerce_product_export_column_names', 'plg_add_columns');
add_filter('woocommerce_product_export_product_default_columns', 'plg_add_columns');
function plg_export_published_date($value, $product) {
return $product->get_date_created();
}
add_filter('woocommerce_product_export_product_column_PublishedDate', 'plg_export_published_date', 10, 2);
但导入功能实际上并没有改变我的发布日期。我试过这样做:
function plg_map_columns($columns) {
$columns['PublishedDate'] = 'PublishedDate';
return $columns;
}
add_filter('woocommerce_csv_product_import_mapping_options', 'plg_map_columns');
add_filter('woocommerce_csv_product_import_mapping_default_columns', 'plg_map_columns');
function plg_set_published_date($product, $data) {
if (!empty($data['PublishedDate'])) {
$product->set_date_created($data['PublishedDate']);
}
return $product;
}
add_filter('woocommerce_product_import_inserted_product_object', 'plg_set_published_date', 10, 2);
我尝试将 $product->set_date_created($data['PublishedDate']);
包装在日志语句中以检查 $data['PublishedDate']
的值,然后在调用 $product
之前和之后检查 $product->get_date_created()
上的创建日期二传手。这些价值观都是我所期望的。
我没有找到任何文档说“发布日期”实际上是“创建日期”,但即使不是这样,我也希望重新导出我更改过的产品“创建日期”具有更改的值,但它没有。
有人能发现我做错了什么吗?这个“创建日期”甚至是我想要更改以更改“发布日期”的正确属性吗?