私はhook_form_alterを使用して、コマース製品の表示ノードのインラインエンティティフォームのフィールドを変更しようとしています。
通常のフィールドの編集方法は知っていますが、エンティティフォームフィールドでは機能しません。価格フィールドのラベルを変更するなど、フィールドを編集するにはどうすればよいですか?
ありがとう、ロバート
IEFの API docs に従って、次のものが得られます。
エンティティフォームがIEFウィジェットに含まれる前に変更を実行します。
hook_inline_entity_form_reference_form_alter()
参照フォームがIEFウィジェットに含まれる前に変更を実行します。
参照フォームは、オートコンプリートフィールドを通じて既存のエンティティを追加するために使用されます
hook_inline_entity_form_table_fields_alter()
IEFテーブルでエンティティを表すために使用されるフィールドを変更します。
フィールドは、フィールドAPIフィールドまたはhook_entity_property_info()で定義されたプロパティのいずれかです。
私は最初のものがここで最も適切だと思います、おそらく次のようなものです(ここで配列キーを推測すると、それらは異なるかもしれません):
function MYMODULE_inline_entity_form_entity_form_alter(&$entity_form, &$form_state) {
if ($entity_form['#entity_type'] == 'commerce_product') {
$entity_form['commerce_price']['#title'] = t('New title.');
}
}