Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class SAGO_CoreModifications_Customer_AccountController extends Mage_Customer_AccountController {
- /**
- * Get Customer Model. Overrides Magento function to setup group depending on customer selection.
- *
- * @return Mage_Customer_Model_Customer
- */
- protected function _getCustomer()
- {
- $customer = $this->_getFromRegistry('current_customer');
- if (!$customer) {
- $customer = $this->_getModel('customer/customer')->setId(null);
- }
- if ($this->getRequest()->getParam('is_subscribed', false)) {
- $customer->setIsSubscribed(1);
- }
- /**
- * Initialize customer group id
- */
- if($this->getRequest()->getPost('group_id')){
- $customer->setGroupId($this->getRequest()->getPost('group_id'));
- } else {
- $customer->getGroupId();
- }
- return $customer;
- }
- }
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- // @codingStandardsIgnoreFile
- /** @var MagentoCustomerBlockFormRegister $block */
- ?>
- <?= $block->getChildHtml('form_fields_before') ?>
- <?php /* Extensions placeholder */ ?>
- <?= $block->getChildHtml('customer.form.register.extra') ?>
- <p>questo è l'override;</p>
- <form class="form create account form-create-account" action="<?= $block->escapeUrl($block->getPostActionUrl()) ?>" method="post" id="form-validate" enctype="multipart/form-data" autocomplete="off">
- <?= /* @noEscape */ $block->getBlockHtml('formkey'); ?>
- <fieldset class="fieldset create info">
- <legend class="legend"><span><?= $block->escapeHtml(__('Personal Information')) ?></span></legend><br>
- <input type="hidden" name="success_url" value="<?= $block->escapeUrl($block->getSuccessUrl()) ?>">
- <input type="hidden" name="error_url" value="<?= $block->escapeUrl($block->getErrorUrl()) ?>">
- <?= $block->getLayout()->createBlock('MagentoCustomerBlockWidgetName')->setObject($block->getFormData())->setForceUseCustomerAttributes(true)->toHtml() ?>
- <?php if ($block->isNewsletterEnabled()): ?>
- <div class="field choice newsletter">
- <input type="checkbox" name="is_subscribed" title="<?= $block->escapeHtmlAttr(__('Sign Up for Newsletter')) ?>" value="1" id="is_subscribed"<?php if ($block->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> class="checkbox">
- <label for="is_subscribed" class="label"><span><?= $block->escapeHtml(__('Sign Up for Newsletter')) ?></span></label>
- </div>
- <select class="radiogroup">
- <option name="group_id" class="user_type" value="4" type="radio" tabindex="1">
- <label for="group_id_4">Privato</label>
- </option>
- <option name="group_id" class="user_type" value="2" checked="checked" type="radio" tabindex="2">
- <label for="group_id_2">Wholesale</label>
- </option>
- </select>
- <?= $block->getChildHtml('customer.form.register.newsletter') ?>
- <?php endif ?>
- <?php $_dob = $block->getLayout()->createBlock('MagentoCustomerBlockWidgetDob') ?>
- <?php if ($_dob->isEnabled()): ?>
- <?= $_dob->setDate($block->getFormData()->getDob())->toHtml() ?>
- <?php endif ?>
- <?php $_taxvat = $block->getLayout()->createBlock('MagentoCustomerBlockWidgetTaxvat') ?>
- <?php if ($_taxvat->isEnabled()): ?>
- <?= $_taxvat->setTaxvat($block->getFormData()->getTaxvat())->toHtml() ?>
- <?php endif ?>
- <?php $_gender = $block->getLayout()->createBlock('MagentoCustomerBlockWidgetGender') ?>
- <?php if ($_gender->isEnabled()): ?>
- <?= $_gender->setGender($block->getFormData()->getGender())->toHtml() ?>
- <?php endif ?>
- </fieldset>
- <?php if ($block->getShowAddressFields()): ?>
- <fieldset class="fieldset address">
- <legend class="legend"><span><?= $block->escapeHtml(__('Address Information')) ?></span></legend><br>
- <input type="hidden" name="create_address" value="1" />
- <?php $_company = $block->getLayout()->createBlock('MagentoCustomerBlockWidgetCompany') ?>
- <?php if ($_company->isEnabled()): ?>
- <?= $_company->setCompany($block->getFormData()->getCompany())->toHtml() ?>
- <?php endif ?>
- <?php $_telephone = $block->getLayout()->createBlock('MagentoCustomerBlockWidgetTelephone') ?>
- <?php if ($_telephone->isEnabled()): ?>
- <?= $_telephone->setTelephone($block->getFormData()->getTelephone())->toHtml() ?>
- <?php endif ?>
- <?php $_fax = $block->getLayout()->createBlock('MagentoCustomerBlockWidgetFax') ?>
- <?php if ($_fax->isEnabled()): ?>
- <?= $_fax->setFax($block->getFormData()->getFax())->toHtml() ?>
- <?php endif ?>
- <?php $_streetValidationClass = $this->helper('MagentoCustomerHelperAddress')->getAttributeValidationClass('street'); ?>
- <div class="field street required">
- <label for="street_1" class="label"><span><?= $block->escapeHtml(__('Street Address')) ?></span></label>
- <div class="control">
- <input type="text" name="street[]" value="<?= $block->escapeHtmlAttr($block->getFormData()->getStreet(0)) ?>" title="<?= $block->escapeHtmlAttr(__('Street Address')) ?>" id="street_1" class="input-text <?= $block->escapeHtmlAttr($_streetValidationClass) ?>">
- <div class="nested">
- <?php $_streetValidationClass = trim(str_replace('required-entry', '', $_streetValidationClass)); ?>
- <?php for ($_i = 2, $_n = $this->helper('MagentoCustomerHelperAddress')->getStreetLines(); $_i <= $_n; $_i++): ?>
- <div class="field additional">
- <label class="label" for="street_<?= /* @noEscape */ $_i ?>">
- <span><?= $block->escapeHtml(__('Address')) ?></span>
- </label>
- <div class="control">
- <input type="text" name="street[]" value="<?= $block->escapeHtml($block->getFormData()->getStreetLine($_i - 1)) ?>" title="<?= $block->escapeHtmlAttr(__('Street Address %1', $_i)) ?>" id="street_<?= /* @noEscape */ $_i ?>" class="input-text <?= $block->escapeHtmlAttr($_streetValidationClass) ?>">
- </div>
- </div>
- <?php endfor; ?>
- </div>
- </div>
- </div>
- <div class="field required">
- <label for="city" class="label"><span><?= $block->escapeHtml(__('City')) ?></span></label>
- <div class="control">
- <input type="text" name="city" value="<?= $block->escapeHtmlAttr($block->getFormData()->getCity()) ?>" title="<?= $block->escapeHtmlAttr(__('City')) ?>" class="input-text <?= $block->escapeHtmlAttr($this->helper('MagentoCustomerHelperAddress')->getAttributeValidationClass('city')) ?>" id="city">
- </div>
- </div>
- <div class="field region required">
- <label for="region_id" class="label"><span><?= $block->escapeHtml(__('State/Province')) ?></span></label>
- <div class="control">
- <select id="region_id" name="region_id" title="<?= $block->escapeHtmlAttr(__('State/Province')) ?>" class="validate-select" style="display:none;">
- <option value=""><?= $block->escapeHtml(__('Please select a region, state or province.')) ?></option>
- </select>
- <input type="text" id="region" name="region" value="<?= $block->escapeHtml($block->getRegion()) ?>" title="<?= $block->escapeHtmlAttr(__('State/Province')) ?>" class="input-text <?= $block->escapeHtmlAttr($this->helper('MagentoCustomerHelperAddress')->getAttributeValidationClass('region')) ?>" style="display:none;">
- </div>
- </div>
- <div class="field zip required">
- <label for="zip" class="label"><span><?= $block->escapeHtml(__('Zip/Postal Code')) ?></span></label>
- <div class="control">
- <input type="text" name="postcode" value="<?= $block->escapeHtmlAttr($block->getFormData()->getPostcode()) ?>" title="<?= $block->escapeHtmlAttr(__('Zip/Postal Code')) ?>" id="zip" class="input-text validate-zip-international <?= $block->escapeHtmlAttr($this->helper('MagentoCustomerHelperAddress')->getAttributeValidationClass('postcode')) ?>">
- </div>
- </div>
- <div class="field country required">
- <label for="country" class="label"><span><?= $block->escapeHtml(__('Country')) ?></span></label>
- <div class="control">
- <?= $block->getCountryHtmlSelect() ?>
- </div>
- </div>
- <?php $addressAttributes = $block->getChildBlock('customer_form_address_user_attributes');?>
- <?php if ($addressAttributes): ?>
- <?php $addressAttributes->setEntityType('customer_address'); ?>
- <?php $addressAttributes->setFieldIdFormat('address:%1$s')->setFieldNameFormat('address[%1$s]');?>
- <?php $block->restoreSessionData($addressAttributes->getMetadataForm(), 'address');?>
- <?= $addressAttributes->setShowContainer(false)->toHtml() ?>
- <?php endif;?>
- <input type="hidden" name="default_billing" value="1">
- <input type="hidden" name="default_shipping" value="1">
- </fieldset>
- <?php endif; ?>
- <fieldset class="fieldset create account" data-hasrequired="<?= $block->escapeHtmlAttr(__('* Required Fields')) ?>">
- <legend class="legend"><span><?= $block->escapeHtml(__('Sign-in Information')) ?></span></legend><br>
- <div class="field required">
- <label for="email_address" class="label"><span><?= $block->escapeHtml(__('Email')) ?></span></label>
- <div class="control">
- <input type="email" name="email" autocomplete="email" id="email_address" value="<?= $block->escapeHtmlAttr($block->getFormData()->getEmail()) ?>" title="<?= $block->escapeHtmlAttr(__('Email')) ?>" class="input-text" data-validate="{required:true, 'validate-email':true}">
- </div>
- </div>
- <div class="field password required">
- <label for="password" class="label"><span><?= $block->escapeHtml(__('Password')) ?></span></label>
- <div class="control">
- <input type="password" name="password" id="password"
- title="<?= $block->escapeHtmlAttr(__('Password')) ?>"
- class="input-text"
- data-password-min-length="<?= $block->escapeHtmlAttr($block->getMinimumPasswordLength()) ?>"
- data-password-min-character-sets="<?= $block->escapeHtmlAttr($block->getRequiredCharacterClassesNumber()) ?>"
- data-validate="{required:true, 'validate-customer-password':true}"
- autocomplete="off">
- <div id="password-strength-meter-container" data-role="password-strength-meter" aria-live="polite">
- <div id="password-strength-meter" class="password-strength-meter">
- <?= $block->escapeHtml(__('Password Strength')) ?>:
- <span id="password-strength-meter-label" data-role="password-strength-meter-label">
- <?= $block->escapeHtml(__('No Password')) ?>
- </span>
- </div>
- </div>
- </div>
- </div>
- <div class="field confirmation required">
- <label for="password-confirmation" class="label"><span><?= $block->escapeHtml(__('Confirm Password')) ?></span></label>
- <div class="control">
- <input type="password" name="password_confirmation" title="<?= $block->escapeHtmlAttr(__('Confirm Password')) ?>" id="password-confirmation" class="input-text" data-validate="{required:true, equalTo:'#password'}" autocomplete="off">
- </div>
- </div>
- <?= $block->getChildHtml('form_additional_info') ?>
- </fieldset>
- <div class="actions-toolbar">
- <div class="primary">
- <button type="submit" class="action submit primary" title="<?= $block->escapeHtmlAttr(__('Create an Account')) ?>"><span><?= $block->escapeHtml(__('Create an Account')) ?></span></button>
- </div>
- <div class="secondary">
- <a class="action back" href="<?= $block->escapeUrl($block->getBackUrl()) ?>"><span><?= $block->escapeHtml(__('Back')) ?></span></a>
- </div>
- </div>
- </form>
- <script>
- require([
- 'jquery',
- 'mage/mage'
- ], function($){
- var dataForm = $('#form-validate');
- var ignore = <?= /* @noEscape */ $_dob->isEnabled() ? ''input[id$="full"]'' : 'null' ?>;
- dataForm.mage('validation', {
- <?php if ($_dob->isEnabled()): ?>
- errorPlacement: function(error, element) {
- if (element.prop('id').search('full') !== -1) {
- var dobElement = $(element).parents('.customer-dob'),
- errorClass = error.prop('class');
- error.insertAfter(element.parent());
- dobElement.find('.validate-custom').addClass(errorClass)
- .after('<div class="' + errorClass + '"></div>');
- }
- else {
- error.insertAfter(element);
- }
- },
- ignore: ':hidden:not(' + ignore + ')'
- <?php else: ?>
- ignore: ignore ? ':hidden:not(' + ignore + ')' : ':hidden'
- <?php endif ?>
- }).find('input:text').attr('autocomplete', 'off');
- });
- </script>
- <?php if ($block->getShowAddressFields()): ?>
- <script type="text/x-magento-init">
- {
- "#country": {
- "regionUpdater": {
- "optionalRegionAllowed": <?= /* @noEscape */ $block->getConfig('general/region/display_all') ? 'true' : 'false' ?>,
- "regionListId": "#region_id",
- "regionInputId": "#region",
- "postcodeId": "#zip",
- "form": "#form-validate",
- "regionJson": <?= /* @noEscape */ $this->helper(MagentoDirectoryHelperData::class)->getRegionJson() ?>,
- "defaultRegion": "<?= (int) $block->getFormData()->getRegionId() ?>",
- "countriesWithOptionalZip": <?= /* @noEscape */ $this->helper(MagentoDirectoryHelperData::class)->getCountriesWithOptionalZip(true) ?>
- }
- }
- }
- </script>
- <?php endif; ?>
- <script type="text/x-magento-init">
- {
- ".field.password": {
- "passwordStrengthIndicator": {
- "formSelector": "form.form-create-account"
- }
- }
- }
- </script>
- /public_html/app/code/SAGOext/sago_cgrpd/etc/frontend/events.xml
- <?xml version="1.0"?>
- <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
- <event name="customer_save_after">
- <observer name="setgroup" instance="SAGOsago_cgrpdObserverSetGroup" />
- </event>
- </config>
- <?php
- namespace SAGOextsago_cgrpdObserver;
- use MagentoFrameworkEventObserverInterface;
- class SetGroup implements ObserverInterface
- {
- private $customerRepository;
- public function __construct(
- MagentoFrameworkAppRequestInterface $request,
- CustomerRepositoryInterface $customerRepository
- )
- {
- $this->_request = $request;
- $this->customerRepository = $customerRepository;
- }
- //ends here
- public function execute(
- MagentoFrameworkEventObserver $observer
- ){
- $id = $observer->getEvent()->getCustomer()->getId();
- $customer = $this->customerRepository->getById($id);
- $group_id = $this->_request->getParam('group_id');
- $customer->setGroupId($group_id);
- $this->customerRepository->save($customer);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement