Trong Magento 1.9.2, tên đệm đã được thêm vào cột này:
Nguồn: https://github.com/OpenMage/magento-mirror/blob/magento-1.9/app/code/core/Mage/Sales/Model/Resource/Order.php#L93-L99
$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
));
Thật không may, họ đã không thực sự nghĩ về trường hợp khách hàng không có tên đệm. Đây là cách mã sẽ như thế nào:
$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
));
Bạn có thể sao chép tập tin vào app/code/local/Mage/Sales/Model/Resource/Order.php
và vá nó như mô tả.
Để sửa các bản ghi hiện có, bạn có thể sử dụng tập lệnh PHP vứt đi này:
<?php
require 'app/Mage.php';
Mage::app();
Mage::getModel('sales/order')->getResource()->updateGridRecords(
Mage::getResourceModel('sales/order_collection')->getAllIds());
echo 'done';
Đặt nó như fixordergrid.php
trong thư mục gốc Magento, thực hiện và xóa nó. Nó có thể mất một chút thời gian, vì vậy bạn nên chạy nó từ bảng điều khiển, không phải trong trình duyệt:
php fixordergrid.php