0

CE1.9.1 でこの問題が発生しています。

ユーザーが登録すると (チェックアウト中か、[アカウントの作成] リンクからかは関係ありません)、パスワードを正しく再入力しても、ユーザーはパスワードの不一致エラーを受け取り続けます。

フォームの検証では不一致は示されませんが、ユーザーが [登録] をクリックすると、不一致エラーが返されます。

Chromeコンソールにエラーはありません...

私はこれを見つけました: https://magento.stackexchange.com/questions/37381/please-make-sure-your-passwords-match-password-error-in-checkout-with-new-re

しかし、それが同じエラーだとは思いません。

すぐに修正する必要があります。どんな助けでも大歓迎です!

4

9 に答える 9

5

この問題は、ウェブショップの 1 つにもありました。ただし、チェックアウト拡張機能を使用しました。したがって、これが通常の標準チェックアウトに当てはまるかどうかはわかりません。ともかく。

問題は、チェックアウト拡張機能を使用していますか?

その場合、その拡張子のモデルのファイル内の値は次のように設定されます。

 $customer->setConfirmation($password);

ただし、次のようにする必要があります。

$customer->setPasswordConfirmation($password);

私にとって、これはコアで何も変更せずに機能しました。拡張機能が小さな更新を取得する必要があるだけです。または、私のように手動で行うこともできます。拡張機能のモデル マップのファイルでその行を見つけるだけです。

于 2015-02-11T15:47:04.050 に答える
1

同じ問題が発生し、修正しました。スネルの答えは正解に近いです。問題は外部/ローカルモジュールにある可能性があるため、チェックしないでください

app/code/core/Mage/Checkout/Model/Type/Onepage.php

もちろん、いかなる場合でも変更しないでください。しかし、あなたのケースで使用されている _validateCustomerData() メソッドを見つける必要があります。Mage::log() または debug_backtrace() を使用してください。次のようになります (ただし、この部分は何らかの理由で変更される可能性があるため、正確ではありません)。

if ($quote->getCheckoutMethod() == self::METHOD_REGISTER) {
  // set customer password
  $customer->setPassword($customerRequest->getParam('customer_password'));
  $customer->setConfirmation($customerRequest->getParam('confirm_password'));
} else {
  // emulate customer password for quest
  $password = $customer->generatePassword();
  $customer->setPassword($password);
  $customer->setConfirmation($password);
}

これらのモジュールはコアファイルの古いバージョンを拡張するため、モジュールが更新されていない場合は、自分で変更して変更する必要があります

setConfirmation()

現在使用可能なアナログに:

setPasswordConfirmation()
于 2015-01-28T13:14:14.800 に答える
1

@Pedro の提案に従って app/code/core/Mage/Customer/Model/Customer.php を変更すると、「パスワードを忘れた」ページと「顧客アカウントを編集する」ページの機能が壊れます。代わりに、次の変更を行います

app/code/core/Mage/Checkout/Model/Type/Onepage.php

369から始まる行を編集することによって

if ($quote->getCheckoutMethod() == self::METHOD_REGISTER) {
  // set customer password
  $customer->setPassword($customerRequest->getParam('customer_password'));
  $customer->setConfirmation($customerRequest->getParam('confirm_password'));
} else {
  // emulate customer password for quest
  $password = $customer->generatePassword();
  $customer->setPassword($password);
  $customer->setConfirmation($password);
}

Customer-Object の Confirmation-Property ではなく、PasswordConfirmation -Property を設定します。

if ($quote->getCheckoutMethod() == self::METHOD_REGISTER) {
  // set customer password
  $customer->setPassword($customerRequest->getParam('customer_password'));
  $customer->setPasswordConfirmation($customerRequest->getParam('confirm_password'));
} else {
  // emulate customer password for quest
  $password = $customer->generatePassword();
  $customer->setPassword($password);
  $customer->setPasswordConfirmation($password);
}
于 2015-01-20T20:47:10.660 に答える
0

1.9.2.1 に更新した後も同じ問題が発生し、ここや他の場所で提案されたコード変更の一部を使用して解決できませんでした。また、明らかな理由でコア コードを変更することに非常に消極的でした。

私の解決策 - 構成の更新。そうだった:

  • OnePage チェックアウトを有効にする = はい
  • ゲスト チェックアウトを許可 = はい
  • 顧客にログインを要求する = いいえ

上記に従ってはい/いいえ/はいに更新し、キャッシュをクリアしました。これにより、(請求情報の末尾に登録を追加するのではなく) 標準の顧客登録フォームを挿入し、登録が成功したときにその情報を請求フォームに渡すことで問題が解決しました。

ここには他の応答の行に沿ってコードの問題があるようですが、これは私にとって優れた回避策でした. それが役に立てば幸い。

チェックアウト構成設定

于 2015-10-28T23:45:28.080 に答える
0

なぜこれが起こっているのかまだわからない場合: Conlabz Useroptin 拡張機能 ( http://www.magentocommerce.com/magento-connect/newsletter-double-opt-in-for-customers.html ) が原因である可能性があります振る舞いも。

于 2015-05-28T10:14:33.440 に答える
0

これが本当にコア バグでない限り、コア ファイルを変更することはお勧めしません。

$confirmation = $this->getConfirmation();
$passwordconfirmation = $this->getPasswordConfirmation();
//if ($password != $confirmation) {
if (!(($password == $confirmation) ||
    ($password == $passwordconfirmation))) {
    $errors[] = Mage::helper('customer')->__('Please make sure your passwords match.');
}
于 2015-03-26T10:07:14.707 に答える
-1

このコードを変更

app\code\core\Mage\Customer\Model\Customer.php
$confirmation = $this->getPasswordConfirmation();

このコードに

$confirmation = $this->getConfirmation();
于 2014-12-09T21:04:02.000 に答える