首页 > 解决方案 > 如何动态更新 wp_options 序列化数组中的帖子 ID?

问题描述

我正在尝试向 WordPress/WooCommerce 免费插件添加额外的功能,但我被卡住了。我希望我能正确解释,因为我不是开发人员。

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

我想要做的是根据复选框的状态创建/读取/更新/删除此数组中的产品 ID。类似于: - 如果此产品有此选项,则显示勾选的复选框 - 如果没有,请在勾选复选框时将此选项添加到此产品 - 取消勾选复选框时从此产品中删除此选项。

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

和这里

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

11并且20是现在使用此选项的产品的 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;}}}

标签: phparrayswordpressmultidimensional-arraywoocommerce

解决方案


推荐阅读