2017-11-17 8 views
0

私はDrupalのモジュールを作成し、フォームが機能を変化させる追加しています:Drupal Commerce 2注文情報フォームに価値を追加するには?

MY_MODULE_form_alter(&$form, &$form_state, $form_id){ 
    if(($form_id === 'commerce_checkout_flow_multistep_default') && 
    ($form['#step_id'] === 'order_information')){ 

     $form['contact_information']['email']['#value'] = $email; // This is working 

     ... 

また、私はこのコードを追加:

$form['payment_information']['billing_information']['address'][0]['address']['given_name']['#value'] = $ime; 
$form['payment_information']['billing_information']['address'][0]['address']['family_name']['#value'] = $prezime; 
$form['payment_information']['billing_information']['address'][0]['address']['address_line1']['#value'] = $adresa; 
$form['payment_information']['billing_information']['address'][0]['address']['postal_code']['#value'] = $ptt; 
$form['payment_information']['billing_information']['address'][0]['address']['locality']['#value'] = $grad; 

が、これは私のために動作しません。何か案が?

+0

正確には動作しません。 $ grad、$ prezimeなどですか?変数か文字列ですか? PHPは '' $ grad ''のような単純引用変数を展開しません。変数が本当に必要な場合を除き、この場合は二重引用符を使用しないで変数を引用しないでください。第二に、 '#value'はユーザが編集できない値を設定するために使われます。これは本当にここで欲しいものですか? – EricLavault

+0

私はコマースのチェックアウトフォームからデータを取得したいと思います。ユーザーが認証されている場合は、デフォルト値を設定します。これらは文字列ですが、私は ''なしで使用しますが、私はここで間違っていました。 –

答えて

0

PHPは、'$grad'のような単純引用変数を展開しません。変数が本当に必要な場合を除き、この場合二重引用符を使用しないでください:"$grad"PHP strings and variable expansion

第2に、#valueは、ユーザーが編集できない値を設定するために使用されます。代わりに#default_valueを使用してください。 Drupal Form API

関連する問題