チェックアウトページから顧客のミドルネームのイニシャル/名前を削除するにはどうすればよいですか?


19

Magentoの最新バージョンにアップグレードしてから、チェックアウトページに顧客のミドルネーム/イニシャルを求める新しいエントリが表示されていることに気付きました。

チェックアウトページからエントリ「ミドルネーム/イニシャル」を削除するにはどうすればよいですか?

回答:


46

Magento 1.9.2.1アップデートがミドルネームに与える影響

まず、解決策

Magento CE 1.9.2.0からMagento CE 1.9.2.1にアップデートするときに同じ問題が発生しました。更新によりミドルネームが表示されましたが、管理者を確認したときにSystem > Configuration > Customers > Customer Configuration > Name and Address Options、「ミドルネームを表示(初期)」設定にすでに「いいえ」が表示されていました。[構成を保存]をクリックする前に、設定を[はい]に変更してから[いいえ]に変更しました。これにより、ページを更新したときに、すぐにミドルネーム/初期がCheckoutから削除されました。

データベース

私の場合、Magento 1.8.xからMagento 1.9.xへのストアの更新に取り組んでいます。1.9.2.0から1.9.2.1に更新したのは開発環境です。1.8.xから1.9.xへのアップグレードを開始したときにライブサイトを最新の状態にするには、多くの管理設定を更新する必要があります。これは、クエリを使用してデータベースで直接実行する予定です。データベースで、Magentoがミドルネーム設定をどのように変更するかを確認できます。

表示される管理設定は誤解を招く可能性があります

テーブル `core_config_data`は、" whereミドルネーム(初期)を表示するレコードの管理設定を処理し`core_config_data`.`path`='customer/address/middlename_show'ます。

このレコードは、 `value`フィールドの設定を保持します(0 =" No "、1 =" Yes ")。Magento CE 1.9.2.1にアップグレードしてミドルネームが表示されても、このフィールドは変更されません。Magentoが1.9.2.1への更新中に変更を行った後、管理設定の「ミドルネームの表示(初期)」への変更を保存すると、ここで `core_config_data`の値が変更されます。

1.9.2.1への更新では、 `core_config_data`のレコードは変更されなかったため、管理設定に表示される内容は変更されませんでした。ただし、更新により、別のテーブルの別のレコードが変更されます。

実際のミドルネームの可視性は「customer_eav_attribute」にあります

Magentoの多くの開発インスタンスでは、テーブル `eav_attribute`には2つの"ミドルネーム "` attribute_code`(s)があり、 `attribute_id`(s)は621です。`customer_eav_attribute`のテーブルには、フィールド` is_visible`を持つ属性の可視性を設定します。

  • 私のライブ1.8.x環境では、 `attribute_id`(s)6と21にがありました`is_visible` = 0
  • DevMagento CE 1.9.2.0からMagento CE 1.9.2.1にアップデートした後、Magento CE 1.9.2.0になりました`is_visible` = 1
  • 管理者を「ミドルネーム(初期)を表示」から「いいえ」に切り替えて保存する`is_visible`=0と、チェックアウトからミドルネーム/初期フィールドが消えました。

概要

MagentoのCE 1.9.2.1アップデートは「ショーミドルネーム(イニシャル)」の設定の下でMagentoの管理者に表示される内容に影響することなく`customer_eav_attribute`テーブルにミドルネームの設定を裏返し。「ミドルネーム(初期)を表示」設定を切り替えることにより、広範囲にわたるテンプレート調整を行わずに、管理者が設定を通常調整する方法で修正できます。

サイドノート

何らかの理由で、この管理設定をストアの複数のコピー間で転送する必要がある場合、または開発環境に一致するようにストアをアップグレードする場合など、管理更新のバッチで転送する必要がある場合... この設定に次のSQLステートメントを使用できます(ストアの「ミドルネーム」が「attribute_id」6および21であることがわかっている場合。これはMagentoの標準ですが、安全のために、最初に「eav_attribute」テーブルを再確認してください。

UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);


Magentoの1.9.2.1の修正は私のために罰金を作品
フラ

5

技術的な答え

システム構成オプションには、顧客EAV属性(テーブル:)で同じ変更を行うメソッドをMage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer持つバックエンドモデル()があり_afterSaveますcustomer_eav_attribute

システム設定オプションの値とEAV属性is_visible値は必ずしも同期しているとは限りません(Magentoのアップグレード、または設定オプションがプログラムで変更された場合、またはその他の理由)。

スイッチを数回ひっくり返すと、それが修正されます。または、あなたが私のようなもので、すべてにインストール/アップグレードスクリプトを使用している場合は、次のことができます。

Mage::getModel('core/config')
    ->saveConfig('customer/address/middlename_show', 0);    

try {

    $attribute = Mage::getSingleton('eav/config')
        ->getAttribute('customer', 'middlename')
        ->setIsVisible(0)
        ->save();

    $attribute = Mage::getSingleton('eav/config')
        ->getAttribute('customer_address', 'middlename')
        ->setIsVisible(0)
        ->save();

} catch (Exception $e) {
    Mage::logException($e);
    throw $e;
}

1
よろしくお願いします。あなたにも、顧客のアドレス属性のためのコードを追加する必要があります:$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
アンドレアス・フォン・Studnitz

2

最も簡単な方法:

Magento ver。1.9.2.1

System > Configuration > Customers > Customer configuration > Name and Address Options

Show Middle Name (initial) = No

ここに画像の説明を入力してください


これはすでに設定されています。
SR_Magento

[はい]-> [保存]を選択するだけです。再度[いいえ]-> [保存]を選択します。キャッシュを更新して確認してください。
プラティックカマニ

0

削除{{depend middlename}}{{var middlename}}@sr_magentoのようなことは彼の答えに提案し、実際に削除されませんShow Middle Name (initial)チェックアウトページ自体からフィールドを。管理者エリア、PDF、電子メールテンプレートなど、顧客の住所情報がレンダリング/印刷されるエリアからのみ削除します。

電子メールテンプレートからフィールドを削除する必要はありません。これはやり過ぎですShow Middle Name(initial)。将来有効にする場合は、これらのエントリをメールテンプレートに再度追加する必要があります。

Magentoダウンローダーを使用してMagento CE 1.9.2.0からMagento CE 1.9.2.1にアップデートした後、このグリッチにも気付きました。更新は下の設定を調整するようですShow Middle Name (initial)

System > Configuration > Customers > Customer Configuration > Name and Address Options

「いいえ」「はい」。異なるサーバー上の複数の店舗で私に起こりました。

これを元に戻すには、単に「いいえ」に戻して設定を保存します。このShow Middle Name (initial)フィールドは、チェックアウトページに表示されなくなります。


@sr_magentoメソッドは機能するかもしれませんが(理由はわかりませんが、単に設定を保存するだけでうまくいくと思います)、あなたの推論は間違っています。Address Templates提案するように変更しても、ストアのフロントエンドのチェックアウトページの入力フィールドは変更されません。住所を印刷するためのテンプレートにのみ影響します。次のドキュメントをお読みください。管理者パネルの顧客エリアについては正しいです。答えのこの部分を言い換えます。
ForMat

0

ファイルから直接削除する場合

次のファイルを開く

app => design => frontend => base => default => template => customer => widget => name.phtml

if ($this->showMiddlename()) コメントアウトを検索するか、完全なifステートメントを削除します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.