Drupal Commerceのチェックアウトフォームを編集して、ユーザーにメールアドレスを2回入力するように要求しようとしています。フォームを送信するとき、Drupalはメールが一致するかどうかを確認し、一致form_set_error()
しない場合は電話をかける必要があります。今のところ、カスタム検証関数をフォームにアタッチしようとしていますが、これは機能しません。(私のモジュールはcheckout_confirm_emailと呼ばれます。このモジュールは私たち自身が使用するためだけのものなので、名前にはあまり力を入れていません)。
function checkout_confirm_email_form_alter(&$form, &$form_state, $form_id) {
if($form_id == 'commerce_checkout_form_checkout') {
$form['#validate'][] = 'checkout_confirm_email_form_validate';
dprint_r($form['#validate']);
dsm("I printed");
}
}
function checkout_confirm_email_form_validate($form, &$form_state) {
dsm("Never prints...");
}
ステートメントはdprint_r
を出力しますArray ([0] => checkout_confirm_email_form_validate)
。したがって、関数はフォーム配列の一部ですが、検証関数のdsmステートメントは出力されません。
私は実際にしばらく立ち往生しています。例を調べましたが、何が間違っているのかわかりません。誰?