Как динамически обновить идентификаторы записей в сериализованном массиве wp_options? - PullRequest
1 голос
/ 02 июня 2019

Я пытаюсь добавить дополнительную функциональность в бесплатный плагин WordPress / WooCommerce, но я застрял.Я надеюсь, что смогу правильно объяснить, потому что я не разработчик.

Плагин сохраняет все данные (параметры продукта) в специальном индексе в таблице wp_options, как сериализованный массив.

Что яхочу сделать - создать / прочитать / обновить / удалить идентификатор продукта в этом массиве на основе состояния флажка.Что-то вроде: - если этот продукт имеет этот параметр, установите флажок, если нет, добавьте этот параметр к этому продукту, если флажок установлен, - удалите этот параметр из этого продукта, если флажок снят.

НоЯ заметил, что плагин хранит его в двух местах в одном и том же массиве, здесь [conditional_rules_json] => [[[{"subject":"product","comparison":"equals","cvalue":["11","20"]}]]]]

и здесь

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

11 и 20 - идентификаторы продуктовкоторые используют эту опцию сейчас.

Я не понимаю, как я должен обновить идентификаторы на основе состояния флажка.Я должен обновить его в обоих местах или только один?И как я могу это сделать?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;}}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...