我在wordpress序列化数据中遇到问题。我正在开发一个与wooccommerce相关的自定义插件。我在wooccommerce设置部分添加了一个结账部分。此外,我在插件部分提供了相同的设置更新表单,这是左侧菜单中的新菜单选项。
当我通过wooccommerce设置部分保存数据时,它将数据作为序列化数据存储在wp_options表中。以下是示例:
a:18:{s:7:"已启用";s:3:"是";s:9:"test_mode";s:2:"否";s:19:"is_application_name";s:0:";s:10:"is_api_key";s:0:";s:17:"order_customtable";s:0 _merchant_id";s:0:";s:5:"title";s:12:"Infusionsoft";s:9:"tax_label";s:9:"销售税";s:16:"is_free_shipping";s:2:"no";s:11:"description";s:20:"通过Infusionsoft";s:5:"卡";s:16:"VISAMASTERCARD";s:14:"woorderstatus";s:0:";s:14:"thanks_message";s:39:"谢谢你您的订单已经received";s:5:"debug";s:2:"no";s:11:"debug_email";s:0:";s:13:"http_post_key";s:0:";}
从我的插件页面,在表单提交中,我正在获取字段值并创建一个数组,如下所示:
数组([enabled]=>是[test_mode]=>否[is_application_name]=>[is_api_key]=>[order_customtable]=>[order_customlds]=>[order_product_customfold]=>[is_merchant_id]=>[title]=>输液器[tax_label]=>营业税[is_free_shipping]=>否[描述]=>通过Infusionsoft支付[cards]=>VISA万事达卡[wooorderstatus]=>[thanks_message]=>谢谢。您的订单已收到[debug]=>否[debug_email]=>[http_post_key]=>)
现在使用函数update_option序列化和更新选项,它将把数据保存在数据库中,如下字符串所示:
s:597:"a:18:{s:7:"已启用";s:3:"是";s:9:"test_mode";s:2:"否";s:19:"is_application_name";s:0:";s:10:"is_api_key";s:0:";s:17:"order_customtable";s:0";s:16:"order_ccustomflds";s:0:";s:23:"order_product_customld";s:0"s:14:"is_merchant_id";s:0:";s:5:"title";s:12:"Infusionsoft";s:9:"tax_label";s:9:"销售税";s:16:"is_free_shipping";s:2:"no";s:11:"description";s:20:"通过Infusionsoft";s:5:"卡";s:15:"VISAMASTERCARD";s:14:"woorderstatus";s:0:";s:14:"thanks_message";s:39:"谢谢你您的订单已经收到";s:5:"调试";s:2:"否";s:11:"调试邮件";s:0:";s:13:"http_post_key";s:0:";}";
请在这个问题上帮助我。
不要自己序列化数组,如果需要,update_option
会执行。
https://developer.wordpress.org/reference/functions/update_option/