{"id":622,"date":"2023-02-26T11:03:57","date_gmt":"2023-02-26T03:03:57","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=622"},"modified":"2023-04-29T20:17:33","modified_gmt":"2023-04-29T12:17:33","slug":"summary-of-opencart-data-field-transformation","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/02\/26\/summary-of-opencart-data-field-transformation\/","title":{"rendered":"OpenCart\u6570\u636e\u5b57\u6bb5\u6539\u9020\u603b\u7ed3"},"content":{"rendered":"<h3>\u6dfb\u52a0\u6570\u636e\u5e93\u8868\u5b57\u6bb5<\/h3>\n<p><strong>oc_address \u6dfb\u52a0\u5b57\u6bb5<\/strong><\/p>\n<ul>\n<li>district<\/li>\n<li>street_name<\/li>\n<li>house_number<\/li>\n<\/ul>\n<p><!-- more --><\/p>\n<p><strong>oc_order \u6dfb\u52a0\u5b57\u6bb5<\/strong><\/p>\n<ul>\n<li>doc_type<\/li>\n<li>doc_no<\/li>\n<li>payment_district<\/li>\n<li>payment_street_name<\/li>\n<li>payment_house_number<\/li>\n<li>shipping_district<\/li>\n<li>shipping_street_name<\/li>\n<li>shipping_house_number<\/li>\n<\/ul>\n<p><strong>oc_customer \u6dfb\u52a0\u5b57\u6bb5<\/strong><\/p>\n<ul>\n<li>doc_type<\/li>\n<li>doc_no<\/li>\n<\/ul>\n<h3>\u4fee\u6539Model<\/h3>\n<p>catalog\/model\/account\/address.php<\/p>\n<pre><code class=\"language-php\">public function addAddress($customer_id, $data) {\n    $this-&gt;db-&gt;query(&quot;INSERT INTO &quot; . DB_PREFIX . &quot;address SET customer_id = &#039;&quot; . (int)$customer_id . &quot;&#039;, firstname = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;firstname&#039;]) ... . &quot;&#039;, district = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;district&#039;]) . &quot;&#039;, street_name = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;street_name&#039;]) . &quot;&#039;, house_number = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;house_number&#039;]) ...);\n\n    ...\n}\n\npublic function editAddress($address_id, $data) {\n    $this-&gt;db-&gt;query(&quot;UPDATE &quot; . DB_PREFIX . &quot;address SET firstname = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;firstname&#039;]) ... . &quot;&#039;, district = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;district&#039;]) . &quot;&#039;, street_name = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;street_name&#039;]) . &quot;&#039;, house_number = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;house_number&#039;]) ...);\n\n    ...\n}\n\npublic function getAddress($address_id) {\n    ...\n\n    if ($address_query-&gt;num_rows) {\n        ...\n\n        $address_data = array(\n            ...\n            &#039;district&#039;       =&gt; $address_query-&gt;row[&#039;district&#039;],\n            &#039;street_name&#039;    =&gt; $address_query-&gt;row[&#039;street_name&#039;],\n            &#039;house_number&#039;   =&gt; $address_query-&gt;row[&#039;house_number&#039;],\n            ...\n}\n\npublic function getAddresses() {\n    ...\n\n    foreach ($query-&gt;rows as $result) {\n        ...\n\n        $address_data[$result[&#039;address_id&#039;]] = array(\n            ...\n            &#039;district&#039;       =&gt; $result[&#039;district&#039;],\n            &#039;street_name&#039;    =&gt; $result[&#039;street_name&#039;],\n            &#039;house_number&#039;   =&gt; $result[&#039;house_number&#039;],\n            ...\n}<\/code><\/pre>\n<p>catalog\/model\/account\/order.php<\/p>\n<pre><code class=\"language-php\">public function getOrder($order_id) {\n    ...\n\n    if ($order_query-&gt;num_rows) {\n        ...\n\n        return array(\n            ...\n            &#039;doc_type&#039;                =&gt; $order_query-&gt;row[&#039;doc_type&#039;],\n            &#039;doc_no&#039;                  =&gt; $order_query-&gt;row[&#039;doc_no&#039;],\n            ...\n            &#039;payment_district&#039;        =&gt; $order_query-&gt;row[&#039;payment_district&#039;],\n            &#039;payment_street_name&#039;     =&gt; $order_query-&gt;row[&#039;payment_street_name&#039;],\n            &#039;payment_house_number&#039;    =&gt; $order_query-&gt;row[&#039;payment_house_number&#039;],\n            ...\n            &#039;shipping_district&#039;       =&gt; $order_query-&gt;row[&#039;shipping_district&#039;],\n            &#039;shipping_street_name&#039;    =&gt; $order_query-&gt;row[&#039;shipping_street_name&#039;],\n            &#039;shipping_house_number&#039;   =&gt; $order_query-&gt;row[&#039;shipping_house_number&#039;],\n            ...\n        );<\/code><\/pre>\n<p>catalog\/model\/account\/customer.php<\/p>\n<pre><code class=\"language-php\">public function editCustomer($customer_id, $data) {\n    $this-&gt;db-&gt;query(&quot;UPDATE &quot; . DB_PREFIX . &quot;customer SET firstname = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;firstname&#039;]) ... . &quot;&#039;, doc_type = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;doc_type&#039;]) . &quot;&#039;, doc_no = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;doc_no&#039;]) ...);\n}<\/code><\/pre>\n<p>opencart\/catalog\/model\/checkout\/order.php<\/p>\n<pre><code class=\"language-php\">public function addOrder($data) {\n    $this-&gt;db-&gt;query(&quot;INSERT INTO `&quot; . DB_PREFIX . &quot;order` SET invoice_prefix = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;invoice_prefix&#039;]) ... . &quot;&#039;, doc_type = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;doc_type&#039;]) . &quot;&#039;, doc_no = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;doc_no&#039;]) ... . &quot;&#039;, payment_district = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;payment_district&#039;]) . &quot;&#039;, payment_street_name = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;payment_street_name&#039;]) . &quot;&#039;, payment_house_number = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;payment_house_number&#039;]) ... . &quot;&#039;, shipping_district = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;shipping_district&#039;]) . &quot;&#039;, shipping_street_name = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;shipping_street_name&#039;]) . &quot;&#039;, shipping_house_number = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;shipping_house_number&#039;]) ....);\n\n    ...\n}\n\npublic function editOrder($order_id, $data) {\n    ...\n    $this-&gt;db-&gt;query(&quot;UPDATE `&quot; . DB_PREFIX . &quot;order` SET invoice_prefix = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;invoice_prefix&#039;]) ... . &quot;&#039;, doc_type = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;doc_type&#039;]) . &quot;&#039;, doc_no = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;doc_no&#039;]) ... . &quot;&#039;, payment_district = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;payment_district&#039;]) . &quot;&#039;, payment_street_name = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;payment_street_name&#039;]) . &quot;&#039;, payment_house_number = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;payment_house_number&#039;]) ... . &quot;&#039;, shipping_district = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;shipping_district&#039;]) . &quot;&#039;, shipping_street_name = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;shipping_street_name&#039;]) . &quot;&#039;, shipping_house_number = &#039;&quot; . $this-&gt;db-&gt;escape($data[&#039;shipping_house_number&#039;]) ...);\n\n    ...\n}\n\npublic function getOrder($order_id) {\n    ...\n\n    if ($order_query-&gt;num_rows) {\n        ...\n\n        $order_products = $this-&gt;db-&gt;query(&quot;SELECT `name`,`quantity` as `qty`,`price` FROM `&quot; . DB_PREFIX . &quot;order_product` WHERE order_id = $order_id&quot;);\n\n        ...\n\n        return array(\n            &#039;order_id&#039;                =&gt; $order_query-&gt;row[&#039;order_id&#039;],\n            &#039;products&#039;                =&gt; $order_products-&gt;rows,\n            ...\n            &#039;doc_type&#039;                =&gt; $order_query-&gt;row[&#039;doc_type&#039;],\n            &#039;doc_no&#039;                  =&gt; $order_query-&gt;row[&#039;doc_no&#039;],\n            ...\n            &#039;payment_district&#039;        =&gt; $order_query-&gt;row[&#039;payment_district&#039;],\n            &#039;payment_street_name&#039;     =&gt; $order_query-&gt;row[&#039;payment_street_name&#039;],\n            &#039;payment_house_number&#039;    =&gt; $order_query-&gt;row[&#039;payment_house_number&#039;],\n            ...\n            &#039;shipping_district&#039;       =&gt; $order_query-&gt;row[&#039;shipping_district&#039;],\n            &#039;shipping_street_name&#039;    =&gt; $order_query-&gt;row[&#039;shipping_street_name&#039;],\n            &#039;shipping_house_number&#039;   =&gt; $order_query-&gt;row[&#039;shipping_house_number&#039;],\n            ...\n}<\/code><\/pre>\n<h3>\u4fee\u6539Language<\/h3>\n<p>catalog\/language\/en-gb\/account\/address.php<br \/>\ncatalog\/language\/en-gb\/checkout\/checkout.php<\/p>\n<h3>\u4fee\u6539Controller<\/h3>\n<p>catalog\/controller\/account\/address.php<\/p>\n<pre><code class=\"language-php\">protected function getForm() {\n    ...\n\n    if (isset($this-&gt;request-&gt;post[&#039;district&#039;])) {\n        $data[&#039;district&#039;] = $this-&gt;request-&gt;post[&#039;district&#039;];\n    } elseif (!empty($address_info)) {\n        $data[&#039;district&#039;] = $address_info[&#039;district&#039;];\n    } else {\n        $data[&#039;district&#039;] = &#039;&#039;;\n    }\n\n    if (isset($this-&gt;request-&gt;post[&#039;city&#039;])) {\n        $data[&#039;street_name&#039;] = $this-&gt;request-&gt;post[&#039;street_name&#039;];\n    } elseif (!empty($address_info)) {\n        $data[&#039;street_name&#039;] = $address_info[&#039;street_name&#039;];\n    } else {\n        $data[&#039;street_name&#039;] = &#039;&#039;;\n    }\n\n    if (isset($this-&gt;request-&gt;post[&#039;house_number&#039;])) {\n        $data[&#039;house_number&#039;] = $this-&gt;request-&gt;post[&#039;house_number&#039;];\n    } elseif (!empty($address_info)) {\n        $data[&#039;house_number&#039;] = $address_info[&#039;house_number&#039;];\n    } else {\n        $data[&#039;house_number&#039;] = &#039;&#039;;\n    }\n\n    ...\n}<\/code><\/pre>\n<p>catalog\/controller\/account\/edit.php<\/p>\n<pre><code class=\"language-php\">public function index() {\n    ...\n\n    if (($this-&gt;request-&gt;server[&#039;REQUEST_METHOD&#039;] == &#039;POST&#039;) &amp;&amp; $this-&gt;validate()) {\n        $this-&gt;model_account_customer-&gt;editCustomer($this-&gt;customer-&gt;getId(), $this-&gt;request-&gt;post);\n\n        $this-&gt;session-&gt;data[&#039;success&#039;] = $this-&gt;language-&gt;get(&#039;text_success&#039;);\n\n        $this-&gt;response-&gt;redirect($this-&gt;url-&gt;link(&#039;account\/account&#039;, &#039;&#039;, true));\n    }\n\n    ...\n\n    if (isset($this-&gt;error[&#039;doc_type&#039;])) {\n        $data[&#039;error_doc_type&#039;] = $this-&gt;error[&#039;doc_type&#039;];\n    } else {\n        $data[&#039;error_doc_type&#039;] = &#039;&#039;;\n    }\n\n    if (isset($this-&gt;error[&#039;doc_no&#039;])) {\n        $data[&#039;error_doc_no&#039;] = $this-&gt;error[&#039;doc_no&#039;];\n    } else {\n        $data[&#039;error_doc_no&#039;] = &#039;&#039;;\n    }\n\n    ...\n\n    if (isset($this-&gt;request-&gt;post[&#039;doc_type&#039;])) {\n        $data[&#039;doc_type&#039;] = $this-&gt;request-&gt;post[&#039;doc_type&#039;];\n    } elseif (!empty($customer_info)) {\n        $data[&#039;doc_type&#039;] = $customer_info[&#039;doc_type&#039;];\n    } else {\n        $data[&#039;doc_type&#039;] = &#039;&#039;;\n    }\n\n    if (isset($this-&gt;request-&gt;post[&#039;doc_no&#039;])) {\n        $data[&#039;doc_no&#039;] = $this-&gt;request-&gt;post[&#039;doc_no&#039;];\n    } elseif (!empty($customer_info)) {\n        $data[&#039;doc_no&#039;] = $customer_info[&#039;doc_no&#039;];\n    } else {\n        $data[&#039;doc_no&#039;] = &#039;&#039;;\n    }\n\n    ...\n}<\/code><\/pre>\n<p>catalog\/controller\/checkout\/confirm.php<\/p>\n<pre><code class=\"language-php\">public function index() {\n    ...\n\n    if (!$redirect) {\n        ...\n\n        $this-&gt;load-&gt;model(&#039;account\/customer&#039;);\n\n        if ($this-&gt;customer-&gt;isLogged()) {\n            $customer_info = $this-&gt;model_account_customer-&gt;getCustomer($this-&gt;customer-&gt;getId());\n\n            $order_data[&#039;customer_id&#039;] = $this-&gt;customer-&gt;getId();\n            ...\n\n            $order_data[&#039;doc_type&#039;] = empty($customer_info[&#039;doc_type&#039;]) ? $this-&gt;session-&gt;data[&#039;doc_type&#039;] : $customer_info[&#039;doc_type&#039;];\n            $order_data[&#039;doc_no&#039;] = empty($customer_info[&#039;doc_type&#039;]) ? $this-&gt;session-&gt;data[&#039;doc_no&#039;] : $customer_info[&#039;doc_no&#039;];\n            ...\n\n        } elseif (isset($this-&gt;session-&gt;data[&#039;guest&#039;])) {\n            $order_data[&#039;customer_id&#039;] = 0;\n            ...\n\n            $order_data[&#039;doc_type&#039;] = $this-&gt;session-&gt;data[&#039;guest&#039;][&#039;doc_type&#039;];\n            $order_data[&#039;doc_no&#039;] = $this-&gt;session-&gt;data[&#039;guest&#039;][&#039;doc_no&#039;];\n            ...\n\n        }\n\n        ...\n\n        $order_data[&#039;payment_district&#039;] = $this-&gt;session-&gt;data[&#039;payment_address&#039;][&#039;district&#039;];\n        $order_data[&#039;payment_street_name&#039;] = $this-&gt;session-&gt;data[&#039;payment_address&#039;][&#039;street_name&#039;];\n        $order_data[&#039;payment_house_number&#039;] = $this-&gt;session-&gt;data[&#039;payment_address&#039;][&#039;house_number&#039;];\n\n        ...\n\n        if ($this-&gt;cart-&gt;hasShipping()) {\n            ...\n\n            $order_data[&#039;shipping_district&#039;] = $this-&gt;session-&gt;data[&#039;shipping_address&#039;][&#039;district&#039;];\n            $order_data[&#039;shipping_street_name&#039;] = $this-&gt;session-&gt;data[&#039;shipping_address&#039;][&#039;street_name&#039;];\n            $order_data[&#039;shipping_house_number&#039;] = $this-&gt;session-&gt;data[&#039;shipping_address&#039;][&#039;house_number&#039;];\n            ...\n\n        } else {\n            ...\n\n            $order_data[&#039;shipping_district&#039;] = &#039;&#039;;\n            $order_data[&#039;shipping_street_name&#039;] = &#039;&#039;;\n            $order_data[&#039;shipping_house_number&#039;] = &#039;&#039;;\n            ...\n}<\/code><\/pre>\n<h3>\u4fee\u6539Twig\u6a21\u677f<\/h3>\n<p>catalog\/view\/theme\/default\/template\/account\/address_form.twig<br \/>\ncatalog\/view\/theme\/default\/template\/account\/edit.twig<br \/>\ncatalog\/view\/theme\/default\/template\/checkout\/payment_address.twig<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6dfb\u52a0\u6570\u636e\u5e93\u8868\u5b57\u6bb5 oc_address \u6dfb\u52a0\u5b57\u6bb5 district street_name house_num [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[173],"tags":[],"class_list":["post-622","post","type-post","status-publish","format-standard","hentry","category-opencart"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=622"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/622\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}