public function setData(Order $order, array $data)
{
if (Member::currentUserID()) {
return;
}
if (!Checkout::membership_required() && empty($data['Password'])) {
return;
}
$factory = new ShopMemberFactory();
$member = $factory->create($data);
$member->write();
$member->logIn();
if ($order->BillingAddressID) {
$address = $order->getBillingAddress();
$address->MemberID = $member->ID;
$address->write();
$member->DefaultBillingAddressID = $order->BillingAddressID;
}
if ($order->ShippingAddressID) {
$address = $order->getShippingAddress();
$address->MemberID = $member->ID;
$address->write();
$member->DefaultShippingAddressID = $order->ShippingAddressID;
}
if ($member->isChanged()) {
$member->write();
}
}