Woocommerce动态定价 - 手动插入定价规则

时间:2014-03-31 20:13:01

标签: wordpress wordpress-plugin woocommerce

我正在使用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。任何人都可以解释一下,当我手动更新表格时,我可以重现这个字符串吗?

1 个答案:

答案 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。 希望有所帮助。