wordpress中的序列化数据问题

时间:2017-01-18 13:22:27

标签: wordpress serializearray

我在wordpress序列化数据中面临一个问题。我正在开发一个与woocommerce有关的自定义插件。我在woocommerce设置部分添加了一个结帐部分。此外,我在我的插件部分提供相同的设置更新表单,这是左侧菜单中的新菜单选项。

当我通过woocommerce设置部分保存数据时,它将数据存储在wp_options表中作为序列化数据。以下是示例:

  

一个:18:{S:7:"启用&#34 ;; S:3:"是&#34 ;; S:9:" TEST_MODE&#34 ;; S:2 :"无&#34 ;; S:19:" is_application_name&#34 ;; S:0:"&#34 ;; S:10:" is_api_key&#34 ;;小号0:"&#34 ;; S:17:" order_customtable&#34 ;; S:0:"&#34 ;; S:16:" order_customflds" ; S:0:"&#34 ;; S:23:" order_product_customfld&#34 ;; S:0:"&#34 ;; S:14:" is_merchant_id&# 34 ;; S:0:"&#34 ;; S:5:"标题&#34 ;; S:12:" Infusionsoft&#34 ;; S:9:" tax_label"; s:9:"销售税"; s:16:" is_free_shipping&#34 ;; s:2:" no&#34 ;; s:11:& #34;描述"; s:20:"付费通过   Infusionsoft&#34 ;; S:5:"卡&#34 ;; S:16:" VISA   MASTERCARD&#34 ;; S:14:" wooorderstatus&#34 ;; S:0:"&#34 ;; S:14:" thanks_message&#34 ;; S:39:&# 34,幸运的   您。你的订单一直都是   接收&#34 ;; S:5:"调试&#34 ;; S:2:"无&#34 ;; S:11:" debug_email&#34 ;; S:0:&# 34;&#34 ;; S:13:" http_post_key&#34 ;; S:0:"&#34 ;;}

从我的插件页面,在表单提交上,我获取字段值并创建一个数组,如下所示:

  

阵列(       [enabled] =>是       [test_mode] =>没有       [is_application_name] =>       [is_api_key] =>       [order_customtable] =>       [order_customflds] =>       [order_product_customfld] =>       [is_merchant_id] =>       [title] => Infusionsoft       [tax_label] =>销售税       [is_free_shipping] =>没有       [描述] =>通过Infusionsoft付款       [cards] => VISA MASTERCARD       [wooorderstatus] =>       [thanks_message] =>谢谢。您的订单已收到       [debug] =>没有       [debug_email] =>       [http_post_key] => )

现在使用函数update_option序列化和更新选项,它会将数据保存在数据库中,如下所示:

  

S:597:":18:{S:7:"启用&#34 ;; S:3:"是&#34 ;; S:9:" TEST_MODE&#34 ;; S:2:"无&#34 ;; S:19:" is_application_name&#34 ;; S:0:"&#34 ;; S:10:&# 34; is_api_key&#34 ;; S:0:"&#34 ;; S:17:" order_customtable&#34 ;; S:0:"&#34 ;; S:16: " order_customflds&#34 ;; S:0:"&#34 ;; S:23:" order_product_customfld&#34 ;; S:0:"&#34 ;; S: 14:" is_merchant_id&#34 ;; S:0:"&#34 ;; S:5:"标题&#34 ;; S:12:" Infusionsoft&#34 ;; s:9:" tax_label&#34 ;; s:9:"销售税&#34 ;; s:16:" is_free_shipping&#34 ;; s:2:" no&# 34 ;; s:11:"描述&#34 ;; s:20:"付费通过   Infusionsoft&#34 ;; S:5:"卡&#34 ;; S:15:" VISA   MASTERCARD&#34 ;; S:14:" wooorderstatus&#34 ;; S:0:"&#34 ;; S:14:" thanks_message&#34 ;; S:39:&# 34,幸运的   您。你的订单一直都是   接收&#34 ;; S:5:"调试&#34 ;; S:2:"无&#34 ;; S:11:" debug_email&#34 ;; S:0:&# 34;&#34 ;; S:13:" http_post_key&#34 ;; S:0:"&#34 ;;}&#34 ;;

请在这个问题上帮助我。

1 个答案:

答案 0 :(得分:2)

不要自己序列化数组,update_option会在需要时执行此操作。

https://developer.wordpress.org/reference/functions/update_option/