{"id":59723,"date":"2025-04-23T14:43:51","date_gmt":"2025-04-23T06:43:51","guid":{"rendered":"https:\/\/fwq.ai\/blog\/59723\/"},"modified":"2025-04-23T14:43:51","modified_gmt":"2025-04-23T06:43:51","slug":"ecshop%e5%b1%9e%e6%80%a7%e8%a7%84%e6%a0%bc%e6%b7%bb%e5%8a%a0%e5%b0%8f%e5%9b%be%e6%a0%87","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/59723\/","title":{"rendered":"ecshop\u5c5e\u6027\u89c4\u683c\u6dfb\u52a0\u5c0f\u56fe\u6807"},"content":{"rendered":"<p> 1\uff0c\u6570\u636e\u5e93\u6dfb\u52a0\u89c4\u683c\u56fe\u7247\u5b57\u6bb5<\/p>\n<p> alter table ecs_goods_attr add attr_image varchar(255) Null;<\/p>\n<p> 2\uff0c\u540e\u53f0\u5546\u54c1\u7f16\u8f91\u6dfb\u52a0\u56fe\u7247\u5c5e\u6027<\/p>\n<p> \u4f4d\u4e8e admin\/includes\/lib_goods.php<\/p>\n<p> \u627e\u5230<\/p>\n<pre>\r\nfunction&nbsp;build_attr_html($cat_id,&nbsp;$goods_id&nbsp;=&nbsp;0)<\/pre>\n<p> \u51fd\u6570<\/p>\n<p> \u5728sql\u8bed\u53e5\u4e2d\u6dfb\u52a0attr_image\u5b57\u6bb5<\/p>\n<pre>\r\n$sql&nbsp;=&nbsp;.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.$GLOBALS[]-&gt;table().&nbsp;.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.$GLOBALS[]-&gt;table().&nbsp;.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;($cat_id)&nbsp;..\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<\/pre>\n<p> \u5728\uff08\u5927\u6982734\u884c\uff09<\/p>\n<pre>\r\n$html&nbsp;.=&nbsp;'&lt;\/td&gt;&lt;\/tr&gt;';<\/pre>\n<p> \u524d\u6dfb\u52a0<\/p>\n<pre>\r\n$html&nbsp;.=&nbsp;&nbsp;.$val[].;<\/pre>\n<p> &nbsp;<\/p>\n<p> 3\uff0c\u6dfb\u52a0\u89c4\u683c\u56fe\u7247\u4e0a\u4f20\u5904\u7406 &nbsp;\u540c\u6837\u4f4d\u4e8e lib_goods.php\u6587\u4ef6<\/p>\n<p> \u4efb\u610f\u4f4d\u7f6e\u63d2\u5165<\/p>\n<pre>\r\nfunction&nbsp;handle_attr_image($goods_id,$image_files,$key){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$upload&nbsp;=&nbsp;(\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$image_files[][$key],\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$image_files[][$key],\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$image_files[][$key],\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$image_files[][$key],\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$img_original&nbsp;=&nbsp;$GLOBALS[]-&gt;upload_image($upload);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($img_original&nbsp;===&nbsp;false){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys_msg($GLOBALS[]-&gt;error_msg(),&nbsp;,&nbsp;(),&nbsp;false);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$img_url&nbsp;=&nbsp;$img_original;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$img_url;\r\n}<\/pre>\n<p> 4\uff0c\u6dfb\u52a0\u5546\u54c1\u8be6\u60c5\u4fdd\u5b58\u4e2d\u7684\u89c4\u683c\u56fe\u7247\u5904\u7406<\/p>\n<p> \u4f4d\u4e8e admin\/goods.php<\/p>\n<p> \u627e\u5230\uff08\u5927\u6982982\u884c\uff09<\/p>\n<pre>\r\n$attr_price&nbsp;=&nbsp;$_POST['attr_price_list'][$key]\r\nif&nbsp;(!empty($attr_value))\r\n{<\/pre>\n<p> \u4e0b\u65b9\u63d2\u5165<\/p>\n<pre>\r\n$imgSrc&nbsp;=&nbsp;false;\r\nif($_FILES[]){\r\n&nbsp;&nbsp;&nbsp;&nbsp;$imgSrc&nbsp;=&nbsp;handle_attr_image($goods_id,&nbsp;$_FILES[],$key);\r\n}<\/pre>\n<p> \u5728\u5f80\u4e0b\u51e0\u884c<\/p>\n<pre>\r\nif&nbsp;(($goods_attr_list[$attr_id][$attr_value]))\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;$goods_attr_list[$attr_id][$attr_value][]&nbsp;=&nbsp;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;$goods_attr_list[$attr_id][$attr_value][]&nbsp;=&nbsp;$attr_price;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if($imgSrc){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$goods_attr_list[$attr_id][$attr_value][]&nbsp;=&nbsp;$imgSrc;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$goods_attr_list[$attr_id][$attr_value][]&nbsp;=&nbsp;$_POST[][$key];\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}\r\nelse\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;$goods_attr_list[$attr_id][$attr_value][]&nbsp;=&nbsp;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;$goods_attr_list[$attr_id][$attr_value][]&nbsp;=&nbsp;$attr_price;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if($imgSrc){\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$goods_attr_list[$attr_id][$attr_value][]&nbsp;=&nbsp;$imgSrc;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}else{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$goods_attr_list[$attr_id][$attr_value][]&nbsp;=&nbsp;$_POST[][$key];\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n}<\/pre>\n<p> &nbsp;<\/p>\n<p> 5\uff0c\u4e0a\u4e00\u6b65\u7ee7\u7eed\u5f80\u4e0b\u627e &nbsp;\u627e\u5230sql\u63d2\u5165\u8bed\u53e5\u4e0e\u4fee\u6539\u8bed\u53e5<\/p>\n<p> \u6dfb\u52a0attr_image\u5b57\u6bb5<\/p>\n<pre>\r\nif&nbsp;($info[]&nbsp;==&nbsp;)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;$sql&nbsp;=&nbsp;.$ecs-&gt;table().&nbsp;.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;\r\n}\r\nelseif&nbsp;($info[]&nbsp;==&nbsp;)\r\n{\r\n&nbsp;&nbsp;&nbsp;&nbsp;$sql&nbsp;=&nbsp;.$ecs-&gt;table().&nbsp;;\r\n}<\/pre>\n<p> &nbsp;<\/p>\n<p> 6\uff0c\u4fee\u6539\u524d\u7aef\u5546\u54c1\u8be6\u60c5\u9875\u67e5\u8be2\u89c4\u683c\u5c5e\u6027<\/p>\n<p> \u4f4d\u4e8e icludes\/lib_goods.php<\/p>\n<p> \u627e\u5230sql\u8bed\u53e5\uff08\u5927\u6982632\u884c\uff09<\/p>\n<pre>\r\n$sql&nbsp;=&nbsp;\"SELECT&nbsp;a.attr_id,&nbsp;a.attr_name,&nbsp;a.attr_group,&nbsp;a.is_linked,&nbsp;a.attr_type,&nbsp;\".<\/pre>\n<p> \u6dfb\u52a0attr_image\u5b57\u6bb5<\/p>\n<pre>\r\n$sql&nbsp;=&nbsp;.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;$GLOBALS[]-&gt;table()&nbsp;.&nbsp;.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;$GLOBALS[]-&gt;table()&nbsp;.&nbsp;.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<\/pre>\n<p> \u627e\u5230\uff08\u5927\u6982659\u884c\uff09<\/p>\n<pre>\r\n$arr['spe'][$row['attr_id']]['values'][]&nbsp;=&nbsp;array(\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'label'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$row['attr_value'],<\/pre>\n<p> \u4e0b\u65b9\u6dfb\u52a0<\/p>\n<pre>\r\n'image'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$row['attr_image'],<\/pre>\n<p> &nbsp;<\/p>\n<p> 7\uff0c\u5728\u6a21\u677f\u9875\u9762\u8c03\u7528<\/p>\n<p> goods.dwt<\/p>\n<p> \u627e\u5230<\/p>\n<pre>\r\n{$value.label}<\/pre>\n<p> \u4e0a\u65b9\u63d2\u5165<\/p>\n<pre>\r\n&lt;img&nbsp;src=\"{$value.image}\"&nbsp;width=\"30\"&nbsp;height=\"30\"&nbsp;style=\"float:left;padding:5px;\"\/&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1\uff0c\u6570\u636e\u5e93\u6dfb\u52a0\u89c4\u683c\u56fe\u7247\u5b57\u6bb5 alter table ecs_goods_attr add attr_image varchar(255) Null; 2\uff0c\u540e\u53f0\u5546\u54c1\u7f16\u8f91\u6dfb\u52a0\u56fe\u7247\u5c5e\u6027 \u4f4d\u4e8e admin\/includes\/lib_goods.php \u627e\u5230 function&nbsp;build_attr_html($cat_id,&nbsp;$goods_id&nbsp;=&nbsp;0) \u51fd\u6570 \u5728sql\u8bed\u53e5\u4e2d\u6dfb\u52a0attr_image\u5b57\u6bb5 $sql&nbsp;=&nbsp;. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.$GLOBALS[]-&gt;table().&nbsp;. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.$GLOBALS[]-&gt;table().&nbsp;. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;($cat_id)&nbsp;.. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; \u5728\uff08\u5927\u6982734\u884c\uff09 $html&nbsp;.=&nbsp;&#8216;&lt;\/td&gt;&lt;\/tr&gt;&#8217;; \u524d\u6dfb\u52a0 $html&nbsp;.=&nbsp;&nbsp;.$val[].; &nbsp; 3\uff0c\u6dfb\u52a0\u89c4\u683c\u56fe\u7247\u4e0a\u4f20\u5904\u7406 &nbsp;\u540c\u6837\u4f4d\u4e8e lib_goods.php\u6587\u4ef6 \u4efb\u610f\u4f4d\u7f6e\u63d2\u5165 function&nbsp;handle_attr_image($goods_id,$image_files,$key){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$upload&nbsp;=&nbsp;( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$image_files[][$key], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$image_files[][$key], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$image_files[][$key], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&gt;&nbsp;$image_files[][$key], &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$img_original&nbsp;=&nbsp;$GLOBALS[]-&gt;upload_image($upload); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($img_original&nbsp;===&nbsp;false){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sys_msg($GLOBALS[]-&gt;error_msg(),&nbsp;,&nbsp;(),&nbsp;false); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$img_url&nbsp;=&nbsp;$img_original; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$img_url; } 4\uff0c\u6dfb\u52a0\u5546\u54c1\u8be6\u60c5\u4fdd\u5b58\u4e2d\u7684\u89c4\u683c\u56fe\u7247\u5904\u7406 \u4f4d\u4e8e admin\/goods.php \u627e\u5230\uff08\u5927\u6982982\u884c\uff09 $attr_price&nbsp;=&nbsp;$_POST[&#8216;attr_price_list&#8217;][$key] if&nbsp;(!empty($attr_value)) { \u4e0b\u65b9\u63d2\u5165 $imgSrc&nbsp;=&nbsp;false; if($_FILES[]){ &nbsp;&nbsp;&nbsp;&nbsp;$imgSrc&nbsp;=&nbsp;handle_attr_image($goods_id,&nbsp;$_FILES[],$key); [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-59723","post","type-post","status-publish","format-standard","hentry","category-16"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/59723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=59723"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/59723\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=59723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=59723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=59723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}