Auszublendende Felder bei Auswahl "kein Kundenkonto anlegen" festlegen

Liebes Forum,

ich suche nach einer Möglichkeit, bestimmte oder alle nicht als “required” markierten Felder im Checkout-Prozess auszublenden, wenn die Option “kein Kundenkonto anlegen” ausgewählt wird. Standardmäßig verschwindet beim setzen des Häkchens nur das Passwort-Eingabefeld. Ich möchte aber auch, dass z.B. das optionale Feld “Telefonnummer” in diesem Fall ausgeblendet wird.

Ich habe die datei “jquery.register.js” in /themes/Frontend/Responsive/frontend/_public/src/js gefunden. Dort findet sich folgender Abschnitt ab Zeile #311:

        /**
         * Checks the skip account checkbox.
         * The account field set will be shown/hidden depending
         * on the check state of the checkbox.
         *
         * @public
         * @method checkSkipAccount
         */
        checkSkipAccount: function () {
            var me = this,
                opts = me.opts,
                $fieldSet = me.$accountFieldset,
                isChecked = me.$skipAccount.is(':checked'),
                requiredFields = $fieldSet.find(opts.inputSelector),
                requiredMethod = (!isChecked) ? me.setHtmlRequired : me.removeHtmlRequired,
                classMethod = (isChecked) ? 'addClass' : 'removeClass';

            requiredMethod(requiredFields);

            $fieldSet[classMethod](opts.hiddenClass);

            $.publish('plugin/swRegister/onCheckSkipAccount', [me, isChecked]);
        },

In Zeile 236

me.$accountFieldset = $el.find(opts.accountFieldSelector);

und zwischen 92 und 98 wird definiert, was zum AccountFieldset gehört?

            /**
             * Selector for the account field set.
             *
             * @property accountFieldSelector
             * @type {String}
             */
            accountFieldSelector: '.register--account-information',

Hierzu habe ich nun zwei Fragen:

Reicht es, diese .js-Datei in die Sturktur des Child-Themes zu verschieben, damit ich Anpassungen vornehmen kann? Ich habe den Eindruck, dass weiterhin die Datei aus /responsive/ verarbeitet wird und nicht die aus meinem Child-Theme.

Wie kann ich am elegantesten bewerkstelligen, dass die Klasse “.register–phone” ebenfalls ausgeblendet wird, wenn “kein Kundenkonto” ausgewählt wird?

Nevermind,

ich habe mir erschlossen, dass im Pfad /frontend/_public/src/js/ vom child-theme nur die app.js verarbeitet wird.

Diese habe ich um folgenden Code ergänzt:

$("div.register--check").click(function() {
  if (!$("a.toggle.register--checkbox").hasClass('checked')) {
     $(".register--phone" ).addClass( "is--hidden" );
     $(".register--birthdate" ).addClass( "is--hidden" );
    }
    else {
     $(".register--phone" ).removeClass( "is--hidden" );
     $(".register--birthdate" ).removeClass( "is--hidden" );
  }; 
});

Bestimmt nicht die sauberste Lösung, aber sie erreicht, was ich erreichen wollte. Ich lasse das mal hier, vielleicht hilft es jemandem der ein vergleichbares Problem hat.