MembershipCheckoutComponent::setData PHP Method

setData() public method

public setData ( Order $order, array $data )
$order Order
$data array
    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();
        }
    }

Usage Example

 public function setData(Order $order, array $data)
 {
     if (isset($data['RegisterAnAccount']) && $data['RegisterAnAccount']) {
         parent::setData($order, $data);
     }
 }