更改 Woocommerce 产品发布日期

时间:2021-01-28 01:04:57

标签: php woocommerce wordpress-plugin-creation

我正在尝试编写一个插件,允许我导入和导出产品的发布日期。我已经基于 this gist 并让它适用于自定义分类法和 post slug,所以我相信这种方法应该有效,但我似乎无法导入以正确更新日期.

我正在尝试在 WC_Product 上使用 get_date_createdset_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() 上的创建日期二传手。这些价值观都是我所期望的。

我没有找到任何文档说“发布日期”实际上是“创建日期”,但即使不是这样,我也希望重新导出我更改过的产品“创建日期”具有更改的值,但它没有。

有人能发现我做错了什么吗?这个“创建日期”甚至是我想要更改以更改“发布日期”的正确属性吗?

0 个答案:

没有答案