function __construct($controller, $name) { Requirements::javascript(ECOMMERCE_DIR . '/javascript/OrderFormWithoutShippingAddress.js'); parent::__construct($controller, $name); //stop people adding different shipping address $this->unsetActionByName("action_useDifferentShippingAddress"); $this->unsetActionByName("useDifferentShippingAddress"); $member = Member::currentMember(); if (!$member || !$member->ID || $member->Password == '') { $this->fields->addFieldToTab("", new LiteralField('MemberInfoAlso', '<p class="message good LoginCallToAction">' . self::get_login_invite_alternative_text() . '</p>', $this), "FirstName"); //improve password field TEMPORARY HACK! //$passwordField = new OptionalConfirmedPasswordField('Password', 'Password', '', null, true); //$passwordField->minLength = 6; //$passwordField->showOnClickTitle = "add password now"; //$this->fields->replaceField("Password", $passwordField); Requirements::javascript(ECOMMERCE_DIR . '/javascript/OptionalConfirmedPasswordField.js'); Requirements::block(SAPPHIRE_DIR . '/javascript/ConfirmedPasswordField.js'); } $this->fields->removeFieldFromTab("RightOrder", "MemberInfo"); //add extra fields foreach (self::$extra_fields as $fieldCombo) { $fieldCombo["FieldObject"]->setForm($this); $this->fields->addFieldToTab($fieldCombo["TabName"], $fieldCombo["FieldObject"]); } //replace field for address foreach ($this->fields->dataFields() as $i => $child) { if (is_object($child)) { $name = $child->Name(); switch ($name) { case "Membership Details": $child->setTitle('Retain Personal Details with Password'); break; case "Address": $child->setTitle('Street Address'); break; case "AddressLine2": $child->setRightTitle('<a href="' . self::$postal_code_url . '" id="OrderFormWithoutShippingAddressPostalCodeLink">' . self::$postal_code_label . '</a>'); $child->setTitle('Postal Code'); break; case "Country": if (self::$fixed_country_code) { $child->setValue(self::$fixed_country_code); ShoppingCart::set_country(self::$fixed_country_code); } break; default: break; } } } $this->fields->addFieldToTab("", new TextareaField('CustomerOrderNote', 'Note / Question', 7, 30, null, $this)); $data = $this->getData(); $this->loadDataFrom($data); }