我正在使用Woocommerce Dynamic Pricing plugin,这非常有用但不容易让我通过修改定价更新。数据库。
查看示例数据,
{"set_5339c459a78e7":
{"conditions_type":"all",
"conditions":{"1":{"type":"apply_to","args":{"applies_to":"everyone"}}},
"collector":{"type":"product"},
"mode":"block",
"date_from":"",
"date_to":"",
"rules":{"1":{"from":"","to":"","type":"price_discount","amount":""}},
"blockrules": {"1":{
"from":"2",
"adjust":"1",
"type":"fixed_adjustment",
"amount":"0.26","repeating":"yes"}}}}
似乎元要求set_ *与产品元一致,否则它将无法正确应用。
修改代码,我注意到了这一点:
$terms = get_terms('product_cat', array('hierarchical' => false, 'hide_empty' => false, 'parent' => 0));
foreach ($terms as $item_id => $item) {
$set_index = $item->term_id;
$name = 'set_' . $set_index;
}
这对我来说很奇怪,因为term_id似乎是一个13个字符的字母数字字符串而不是预期的bigint。任何人都可以解释一下,当我手动更新表格时,我可以重现这个字符串吗?
答案 0 :(得分:0)
我查看了代码,发现在/admin/admin-init.php
中指定了AJAX处理程序,这就是它如何产生新的集合名称:
function woocommerce_pricing_product_admin_create_empty_ruleset() {
global $wc_product_pricing_admin;
$wc_product_pricing_admin->create_empty_ruleset( uniqid('set_') );
die();
}
正如您所看到的,它只使用PHP的uniqid
函数,前缀为"set_"
,因此在产品规则的情况下,它似乎只是一个随机ID。
希望有所帮助。