ในแผงผู้ดูแลระบบเมื่อฉันต้องการค้นหาคำสั่งซื้อตามชื่อลูกค้าฉันต้องเพิ่ม 2 ช่องว่างระหว่างชื่อและนามสกุล เมื่อฉันดูค่าในหน้าต่างองค์ประกอบตรวจสอบฉันสังเกตเห็นว่าค่านั้นถูกแสดงด้วยพื้นที่พิเศษ ฉันจะแก้ไขได้อย่างไร
ในแผงผู้ดูแลระบบเมื่อฉันต้องการค้นหาคำสั่งซื้อตามชื่อลูกค้าฉันต้องเพิ่ม 2 ช่องว่างระหว่างชื่อและนามสกุล เมื่อฉันดูค่าในหน้าต่างองค์ประกอบตรวจสอบฉันสังเกตเห็นว่าค่านั้นถูกแสดงด้วยพื้นที่พิเศษ ฉันจะแก้ไขได้อย่างไร
คำตอบ:
ใน Magento 1.9.2 มีการเพิ่มชื่อกลางในคอลัมน์นี้:
$ifnullFirst = $adapter->getIfNullSql('{{table}}.firstname', $adapter->quote(''));
$ifnullMiddle = $adapter->getIfNullSql('{{table}}.middlename', $adapter->quote(''));
$ifnullLast = $adapter->getIfNullSql('{{table}}.lastname', $adapter->quote(''));
$concatAddress = $adapter->getConcatSql(array(
$ifnullFirst,
$adapter->quote(' '),
$ifnullMiddle,
$adapter->quote(' '),
$ifnullLast
));
น่าเสียดายที่พวกเขาไม่ได้คิดถึงกรณีที่ลูกค้าไม่มีชื่อกลาง นี่คือลักษณะของรหัสที่ควรเป็น :
$ifnullFirst = $adapter->getIfNullSql('{{table}}.firstname', $adapter->quote(''));
$ifnullMiddle = $adapter->getIfNullSql('{{table}}.middlename', $adapter->quote(''));
$ifnullLast = $adapter->getIfNullSql('{{table}}.lastname', $adapter->quote(''));
$concatAddress = $adapter->getConcatSql(array(
$ifnullFirst,
$adapter->quote(' '),
$ifnullMiddle,
new Zend_Db_Expr('IF({{table}}.middlename IS NULL OR {{table}}.middlename="", "", " ")'),
$ifnullLast
));
คุณสามารถคัดลอกไฟล์app/code/local/Mage/Sales/Model/Resource/Order.php
และแก้ไขตามที่อธิบายไว้
เพื่อแก้ไขระเบียนที่มีอยู่คุณสามารถใช้สคริปต์ PHP ใบนี้:
<?php
require 'app/Mage.php';
Mage::app();
Mage::getModel('sales/order')->getResource()->updateGridRecords(
Mage::getResourceModel('sales/order_collection')->getAllIds());
echo 'done';
วางไว้fixordergrid.php
ในไดเรกทอรีรากของวีโอไอพีเรียกใช้และลบทิ้ง อาจใช้เวลาสักครู่ดังนั้นคุณควรเรียกใช้จากคอนโซลไม่ใช่ในเบราว์เซอร์:
php fixordergrid.php
Mage::getModel('sales/order')->getResource()->updateGridRecords(Mage::getResourceModel('sales/order_collection')->getAllIds());
เพื่อเพิ่มเติมคำตอบที่ยอมรับเป็นแนวปฏิบัติที่ดีที่สุดที่จะไม่แก้ไขโค้ดหลักของวีโอไอพีหลักดังนั้นการใช้การเขียนซ้ำด้วยการแก้ไขจะดีกว่า
ใน config.xml
<global>
<models>
<sales_resource>
<rewrite>
<order>Yournamespace_Yourextension_Model_Sales_Order_Resource_Order</order>
</rewrite>
</sales_resource>
</models>
</global>