On the checkout page, I want to remove the Last Name field and Merge the Last Name field value with the First Name field.
- Create a module.
app/code/Magepow/CustomFieldCheckout/registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magepow_CustomFieldCheckout',
__DIR__
);app/code/Magepow/CustomFieldCheckout/etc/module.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Magepow_CustomFieldCheckout" setup_version="1.0.3"/>
</config>app/code/Magepow/CustomFieldCheckout/Setup/UpgradeSchema.php
<?php
namespace Magepow\CustomFieldCheckout\Setup;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\UpgradeSchemaInterface;
class UpgradeSchema implements UpgradeSchemaInterface
{
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
if (version_compare($context->getVersion(), '1.0.1', '<=')) {
$setup->startSetup();
$setup->getConnection()->addColumn(
$setup->getTable('customer_entity'),
'lastname_bk',
['type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'nullable' => 0,
'comment' => 'Last name field backup'
]
);
$setup->getConnection()->addColumn(
$setup->getTable('customer_address_entity'),
'lastname_bk',
['type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'nullable' => 0,
'comment' => 'Last name field backup'
]
);
$setup->endSetup();
}
}
}app/code/Magepow/CustomFieldCheckout/Setup/UpgradeData.php
<?php
namespace Magepow\CustomFieldCheckout\Setup;
use Magento\Framework\Setup\ModuleDataSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Customer\Model\Customer;
use Magento\Customer\Setup\CustomerSetupFactory;
use Magento\Framework\App\ResourceConnection;
class UpgradeData implements \Magento\Framework\Setup\UpgradeDataInterface
{
private $customerSetupFactory;
protected $resourceConnection;
public function __construct(
CustomerSetupFactory $customerSetupFactory,
ResourceConnection $resourceConnection
)
{
$this->customerSetupFactory = $customerSetupFactory;
$this->resourceConnection = $resourceConnection;
}
public function upgrade(ModuleDataSetupInterface $setup,
ModuleContextInterface $context)
{
$setup->startSetup();
if (version_compare($context->getVersion(), '1.0.3', '<=')) {
$customerSetup = $this->customerSetupFactory->create(['setup' => $setup]);
$customerSetup->updateAttribute(Customer::ENTITY, 'lastname', 'is_required', 0);
$entityAttributes = [
'customer_address' => [
'lastname' => [
'is_required' => 0,
'is_visible' => 0,
],
],
];
$customerSetup->upgradeAttributes($entityAttributes);
$tableName = $this->getTableName('customer_entity');
$sql = "update $tableName set lastname_bk = lastname";
$this->resourceConnection->getConnection()->query($sql);
$sql = "update $tableName set firstname = concat( firstname, ' ', lastname)";
$this->resourceConnection->getConnection()->query($sql);
$sql = "update $tableName set lastname = NULL";
$this->resourceConnection->getConnection()->query($sql);
$tableName = $this->getTableName('customer_address_entity');
$sql = "update $tableName set lastname_bk = lastname";
$this->resourceConnection->getConnection()->query($sql);
$sql = "update $tableName set firstname = concat( firstname, ' ', lastname)";
$this->resourceConnection->getConnection()->query($sql);
$sql = "update $tableName set lastname = ''";
$this->resourceConnection->getConnection()->query($sql);
}
$setup->endSetup();
}
public function getTablename($tableName)
{
/* Create Connection */
$connection = $this->resourceConnection->getConnection();
$tableName = $connection->getTableName($tableName);
return $tableName;
}
}Using SSH execute command at the root of Magento 2 installation.
Using SSH execute command at the root of Magento 2 installation.
php -dmemory_limit=4G bin/magento setup:upgrade
php -dmemory_limit=4G bin/magento setup:static-content:deploy -f
php -dmemory_limit=4G bin/magento cache:flush
Result

Hope this article will help you in some way, You can see useful articles in the next articles.
Anything you need support from Magento 2 feel free to contact us at Alothemes and
Phone: (+84)865633728
Email: support@alothemes.com








