web-dev-qa-db-ja.com

ユーザープロファイル情報を使用してUbercartの請求/配信ペインを変更する

ユーザーのプロフィールフィールドをチェックアウトプロセスに設定しようとしています。ユーザーは、自分のプロファイルでのみこれらのデータを変更する必要があります。 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でプログラムを使用して注文フォーム(配信および請求情報)に記入するにはどうすればよいですか?

1
alexin

請求/配信アドレスペインは、カスタム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'];
2
Shawn Conn