私はIEFを使用しており、すべてが順調です... ad implement hook_form_alter()を試してみるまで、および(エンティティを直接変更するのではなく)IEF UIを介してフォームにアクセスしたときに、加えた変更が有効にならないようです。
すべてがajax /システムに投稿され、フォームをアセンブルするときにプルされるのがわかります...
直接フックするときのように、IEFからフォーム要素を非表示にすることはできませんか?
何か案は?
各ラインアイテムには、反復して合計し、ルートノードに適用する必要がある価格フィールドがあります。このモジュールが商取引で使用されたので、これは標準的な方法です。
inline_entity_form.api.php ファイルで説明されているように、IEFにはフックがあります。
/**
* Perform alterations before an entity form is included in the IEF widget.
*
* @param $entity_form
* Nested array of form elements that comprise the entity form.
* @param $form_state
* The form state of the parent form.
*/
function hook_inline_entity_form_entity_form_alter(&$entity_form, &$form_state) {
if ($entity_form['#entity_type'] == 'commerce_line_item') {
$entity_form['quantity']['#description'] = t('New quantity description.');
}
}
inline_entity_form.api.php ファイルを確認してください。使用できるフックがいくつかあります。
また、hook_field_widget_WIDGET_TYPE_form_alter()も確認してください。
/**
* Implements hook_field_widget_WIDGET_TYPE_form_alter().
*/
function MY_MODULE_field_widget_inline_entity_form_form_alter(&$element, &$form_state, $context) {
// Move the Add Existing button to the left of the Add New button.
if (isset($element['actions']['ief_add_existing'])) {
$element['actions']['ief_add_existing']['#weight'] = -50;
}
}