gpt4 book ai didi

excel - 使用自定义元动态定价规则导入 WooCommerce 产品

转载 作者:行者123 更新时间:2023-12-04 20:31:32 34 4
gpt4 key购买 nike

我有一个带有数量和价格列的 excel 文件,我用它来为插件 WooCommerce Dynamic Pricing 创建必要的输出的定价规则。

我几乎想通了,但是 WooCommerce 进口商正在用它自己的 s:1:"..."; 包装我的元值.里面...是确定我的产品定价规则(具有固定价格折扣的价格范围)的正确值。如果我手动删除包装器,它可以工作。问题是我有 1500 多种产品。 如何准确导入 CSV 中的值?
meta: _pricing_rules列的输出如下所示:

a:1:{s:17:"set_9jhpu8nb76h30";a:8:{s:15:"conditions_type";s:3:"all";s:10:"conditions";a:1:{i:1;a:2:{s:4:"type";s:8:"apply_to";s:4:"args";a:1:{s:10:"applies_to";s:8:"everyone";}}}s:9:"collector";a:1:{s:4:"type";s:7:"product";}s:4:"mode";s:10:"continuous";s:9:"date_from";s:0:"";s:7:"date_to";s:0:"";s:5:"rules";a:5:{i:1;a:4:{s:4:"from";s:3:"100";s:2:"to";s:3:"249";s:4:"type";s:11:"fixed_price";s:6:"amount";s:4:"3.65";}i:2;a:4:{s:4:"from";s:3:"250";s:2:"to";s:3:"499";s:4:"type";s:11:"fixed_price";s:6:"amount";s:4:"3.55";}i:3;a:4:{s:4:"from";s:3:"500";s:2:"to";s:3:"999";s:4:"type";s:11:"fixed_price";s:6:"amount";s:4:"3.46";}i:4;a:4:{s:4:"from";s:4:"1000";s:2:"to";s:4:"2499";s:4:"type";s:11:"fixed_price";s:6:"amount";s:4:"3.36";}i:5;a:4:{s:4:"from";s:4:"2500";s:2:"to";s:0:"";s:4:"type";s:11:"fixed_price";s:6:"amount";s:4:"3.27";}}s:10:"blockrules";a:1:{i:1;a:5:{s:4:"from";s:0:"";s:6:"adjust";s:0:"";s:4:"type";s:16:"fixed_adjustment";s:6:"amount";s:0:"";s:9:"repeating";s:2:"no";}}}}

最佳答案

这些值在导入时被双重序列化。 This is by design in WordPress.保存帖子或对象元数据时,WordPress 将自动序列化和反序列化对象和数组。但是,有时开发人员(错误)使用元数据 API 并尝试手动处理序列化。为了保持与这些开发人员及其代码的向后兼容性,元数据 API 将完全按照传入的方式返回任何序列化值。为此,必须将存储在数据库中的值包装在 s:99:"..." 中。格式。

解决方法是确保 WooCommerce 在保存产品元数据时导入未序列化的值。
woocommerce_product_importer_parsed_data maybe_unserialize 一起过滤函数可用于有条件地将元值反序列化为数组/对象。然后,元数据 API 将存储这些字段而不进行双重序列化。

<?php

// Step through import meta fields.
// Use `maybe_unserialize` to conditionally expand any serialized
// values to their corresponding objects/arrays.
function csv_import_serialized($data, $importer) {
if (isset($data["meta_data"]) && is_array($data["meta_data"])) {
foreach (array_keys($data["meta_data"]) as $k) {
$data["meta_data"][$k]["value"] = maybe_unserialize($data["meta_data"][$k]["value"]);
}
}
return $data;
}

// Hook into the filter
add_filter("woocommerce_product_importer_parsed_data", "csv_import_serialized", 10, 2);

关于excel - 使用自定义元动态定价规则导入 WooCommerce 产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49592027/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com