ユーザーのプロフィールフィールドをチェックアウトプロセスに設定しようとしています。ユーザーは、自分のプロファイルでのみこれらのデータを変更する必要があります。 c_addresses モジュールは私のニーズには適していません。注文フォームでは、これらのフィールドを非表示にする必要があります。
現在、uc_cart_checkout_form_alter
を使用してこれを行っています:
function my_module_form_uc_cart_checkout_form_alter(&$form, $form_state, $form_id) {
// load user data
global $user;
$user_fields =user_load($user->uid);
$first_name = $user_fields->field_name['und']['0']['value'];
// add data to order form
$form['panes']['delivery']['delivery_first_name'][LANGUAGE_NONE][0]['value']['#default_value'] = $first_name;
}
しかし、デフォルト値はありません。どこで私は間違えましたか? Ubercartでプログラムを使用して注文フォーム(配信および請求情報)に記入するにはどうすればよいですか?
請求/配信アドレスペインは、カスタムuc_address
フォームフィールドによって 主導 されます。フィールドを変更するには、#default_value
オブジェクトを変更する必要があります。
例えば:
$form['panes']['delivery']['address']['#default_value']->delivery_first_name = $user_fields->field_name['und']['0']['value'];
$form['panes']['billing']['address']['#default_value']->billing_first_name = $user_fields->field_name['und']['0']['value'];