Di Magento mutistore-multi-situs web, saya ingin memaksa pengguna untuk masuk ke situs web yang sama dengan yang mereka daftarkan. Mereka mungkin menggunakan formulir masuk apa pun, di situs web mana pun, tetapi formulir itu harus memeriksa kredensial mereka dan mengarahkan mereka ke situs web yang benar.
Saya mencoba memeriksa situs web pelanggan, dan memaksanya untuk masuk. Ini tidak bekerja dengan baik. Pengguna masuk ke situs web saat ini, bukan yang dia daftarkan.
Dalam aplikasi / kode / local / mage / Pelanggan / Session.php
public function login($username, $password)
{
/**************************************************/
$customer = Mage::getModel("customer/customer");
$customer_website = null;
foreach (Mage::app()->getWebsites() as $website) {
$customer->setWebsiteId($website->getId());
$customer->loadByEmail($username);
//check if user exists
if($customer->getName()){
$customer_website = $website->getId();
}
}
/*************************************************/
$customer = Mage::getModel('customer/customer')->setWebsiteId($customer_website);
if ($customer->authenticate($username, $password)) {
$this->setCustomerAsLoggedIn($customer);
return true;
}
return false;
}
Ada ide?
magento-1.9
multistore
login
session
zekia
sumber
sumber
Jawaban:
Pertama, Anda perlu melakukan beberapa perubahan dalam pengaturan.
Bagikan akun pelanggan antara beberapa situs web
Anda harus mengkonfigurasi fitur ini di sini:
System -> Configuration -> Customer Configuration -> Share Customer Accounts
.Buat pengaturan ini ke Global untuk berbagi setiap pelanggan ke semua situs web .
Bagikan login antar situs web
Untuk menjaga sesi ketika beralih antar toko di situs web yang berbeda , aktifkan "Gunakan SID di Frontend" di System> Configuration> General> Web :
Paksa pengguna untuk mengalihkan ke situs web yang sama dengan yang mereka daftarkan
Pelanggan secara paksa masuk ke situs web yang sama dengan yang mereka daftarkan ketika kami mencoba masuk dari situs web lain.
Menggunakan
customer_login
Tentukan acara ke config.xml
Kelas pengamat:
CATATAN:
SAYA TELAH MENGUJI KODE INI DI SITUS WEB SITUS MAGENTO DEMO.
Dua situs web ini berjalan dari instance magento yang sama menggunakan konsep situs web.
sumber
Anda dapat menulis ulang metode di bawah ini untuk keperluan Anda
tulis ulang di bawah kelas
Mage_Customer_Model_Session
setCustomerAsLoggedIn
metodesumber
Gunakan
customer_login
acara tersebut untuk menghindari mengubah / menulis ulang / mengganti file inti.Di config.xml Anda
Kelas pengamat Anda (
/app/code/local/YourCompany/YourModule/Model/Observer.php
):Perhatikan bahwa Anda harus menetapkan grup pelanggan yang berbeda untuk pelanggan dengan tampilan toko yang berbeda.
Anda juga dapat menetapkan attibute pelanggan dan mengaturnya di saat pendaftaran melalui bidang tersembunyi dalam formulir pendaftaran alih-alih menugaskan kelompok pelanggan.
sumber