On 3/24/2024 at 11:47 AM, Hoda245 said:same problem here...
Any proper solution for it???
Depends on how you define "proper" ![]()
Here's an example module that can rename the registration field labels and make them translatable at the same time.
<root>/modules/formlabelmangler.php
<?php /** * Module Name: formlabelmangler * Description: Example code to show how to modify field labels * Version: 8.0.0 * @author: Paul Campbell [https://www.prestashop.com/forums/profile/11264-paul-c/] * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) */ declare(strict_types=1); if (!defined('_PS_VERSION_')) { exit; } class formlabelmangler extends Module { /** @var array */ private $hooks; /** * @param string|null $name (Deprecated parameter) * @param Context|null $context * @return void */ public function __construct() { $this->name = 'formlabelmangler'; $this->tab = 'front_office_features'; $this->author = 'PaulC'; $this->version = '8.0.0'; parent::__construct(); $this->displayName = $this->trans('Fun with forms and hooks.', [], 'Modules:formlabelmangler.Admin'); $this->description = $this->trans('Modify field names on customer registration form.', [], 'Modules.formlabelmangler.Admin'); $this->ps_versions_compliancy = array('min' => '1.7.0', 'max' => _PS_VERSION_); // Hooks to install to $this->hooks = [ 'additionalCustomerFormFields' ]; } /** * Install and hook module. * @return bool True on success, False if an error is encountered */ public function install() { return parent::install() && $this->registerHook($this->hooks); } /** * Respond whether the module uses the new translation system. * * @return bool */ public function isUsingNewTranslationSystem(): bool { return true; } /** * Inject additional customer registration fields and/or manipulate existing * Hook::exec('additionalCustomerFormFields', ['fields' => &$format], null, true) * @see https://github.com/PrestaShop/PrestaShop/blob/develop/classes/form/FormField.php * * @param array FormField &$arguments['fields'] any additional data * @return array The field definitions to be rendered * */ public function hookAdditionalCustomerFormFields(array $arguments) : array { // The current fields which are set can be retrieved with the following // since the data is passed by reference. $fields = $arguments['fields']; // Uncomment the following if you want to record the current field details in the // PHP error log for reference. //error_log('We got ourselves some fields to play in: '. print_r($fields, true)); // In this example we want to spruce up the 'email' field and call it "Email Address" // instead of just plain old "Email". foreach ($fields as $field) { if ($field->getName() == 'email') { $field->setLabel( $this->trans( 'Email Address', [], 'Shop.Forms.Labels' )); } } // This is where you would return any additional fields you want to create return []; } }
This has been tested with 8.1.4 but should be fine for 1.7.0+ php7+
.png.022b5452a8f28f552bc9430097a16da2.png)