我在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 ;;
请在这个问题上帮助我。
答案 0 :(得分:2)
不要自己序列化数组,update_option
会在需要时执行此操作。
https://developer.wordpress.org/reference/functions/update_option/