如何动态地更新wp_options序列化数组中的帖子ID?

时间:2019-06-02 12:41:54

标签: php arrays wordpress multidimensional-array woocommerce

我正在尝试向WordPress / WooCommerce免费插件添加额外的功能,但我遇到了麻烦。我希望我能解释清楚,因为我不是开发人员。

该插件将所有数据(产品选件)作为序列化数组存储在wp_options表的专用索引中。

我要做的是根据复选框的状态在此数组中创建/读取/更新/删除产品ID。就像是: -如果该产品具有此选项,请显示一个复选框 -如果没有,请勾选此复选框,然后将此选项添加到此产品 -取消选中此复选框时,请从此产品中删除此选项。

但是我注意到该插件在同一数组中的两个位置(这里[conditional_rules_json] => [[[{"subject":"product","comparison":"equals","cvalue":["11","20"]}]]]]

)痛处

在这里

[value] => Array                                                                                (
[0] => 11
[1] => 20
).

1120是现在正在使用此选项的产品的ID。

我不知道如何根据复选框的状态更新ID。 我应该在两个位置还是仅在一个位置更新它?我该怎么办呢? str_replace?

a:1:{s:29:"woo_before_add_to_cart_button";a:1:{s:6:"colour";O:26:"WEPOF_Product_Field_Select":27:{s:5:"order";i:0;s:4:"type";s:6:"select";s:2:"id";s:6:"colour";s:4:"name";s:6:"colour";s:5:"value";s:0:"";s:11:"placeholder";s:0:"";s:7:"options";a:3:{i:0;s:3:"Red";i:1;s:5:"Green";i:2;s:4:"Blue";}s:9:"validator";s:0:"";s:8:"cssclass";s:0:"";s:12:"cssclass_str";s:0:"";s:5:"title";s:0:"";s:11:"title_class";s:0:"";s:15:"title_class_str";s:0:"";s:14:"title_position";s:7:"default";s:8:"required";s:3:"yes";s:7:"enabled";s:3:"yes";s:8:"position";s:29:"woo_before_add_to_cart_button";s:22:"conditional_rules_json";s:72:"[[[[{"subject":"product","comparison":"equals","cvalue":["11","20"]}]]]]";s:17:"conditional_rules";a:1:{i:0;O:24:"WEPOF_Condition_Rule_Set":2:{s:5:"logic";s:3:"and";s:15:"condition_rules";a:1:{i:0;O:20:"WEPOF_Condition_Rule":2:{s:5:"logic";s:2:"or";s:14:"condition_sets";a:1:{i:0;O:19:"WEPOF_Condition_Set":2:{s:5:"logic";s:3:"and";s:10:"conditions";a:1:{i:0;O:15:"WEPOF_Condition":3:{s:7:"subject";s:7:"product";s:10:"comparison";s:6:"equals";s:5:"value";a:2:{i:0;s:2:"11";i:1;s:2:"20";}}}}}}}}}s:8:"name_old";s:0:"";s:12:"position_old";s:0:"";s:11:"input_class";s:0:"";s:9:"minlength";s:0:"";s:9:"maxlength";s:0:"";s:4:"cols";s:0:"";s:4:"rows";s:0:"";s:7:"checked";i:0;}}}

0 个答案:

没有答案