Ändere das Label „Benutzername“ in „Kontonummer“ in der WooCommerce-Registrierung

Lesezeit: 7 Minuten

Fugen Sie dem Woocommerce Registrierungsformular ein Feld hinzu und bearbeiten Sie
Hurab Nair

Ich versuche, das Label „Benutzername“ auf dem WooCommerce-Registrierungsformular in das Label „Kontonummer“ zu ändern. Wenn also die Daten exportiert werden, werden Kontonummern zu Benutzernamen.

Ich habe den folgenden Code kopiert und etwas geändert:

function woocommerce_reg_form() { 

add_filter( 'gettext', 'woocommerce_register_text' ); 
add_filter( 'ngettext', 'register_text' ); 
function register_text( $translating ) { 
    $translated = str_ireplace( 'Username or Email Address', 'Acc', $translating ); 
    return $translated; 
} 

add_action( 'woocommerce_registration_form' ); 

Aber es gibt mir Fehler und funktioniert nicht. Was mache ich falsch? Bitte führen Sie mich.

  • function woocommerce_reg_form() { add_filter( ‘gettext’, ‘woocommerce_register_text’ ); add_filter( ‘ngettext’, ‘register_text’ ); function register_text( $translating ) { $translated = str_ireplace( ‘Benutzername oder E-Mail-Adresse’, ‘Acc’, $translating ); gib $übersetzt zurück; } add_action( ‘woocommerce_registration_form’ );

    – Hurab Nair

    3. Mai 2019 um 6:47 Uhr

  • Bitte setzen Sie diesen Kommentar entweder in den Beitrag, oder wenn das die Antwort ist, löschen Sie wahrscheinlich Ihren Beitrag, da Sie die Antwort ganz alleine gefunden haben, damit andere dies auch tun können.

    – Mike „Pomax“ Kamermans

    4. Mai 2019 um 3:41 Uhr

  • Überschreiben Sie die Registrierungsvorlage im benutzerdefinierten Design und nehmen Sie entsprechende Änderungen vor

    – Pramod Kharade

    4. Mai 2019 um 3:53 Uhr


Dein Code ist total falsch. Verwenden Sie stattdessen Folgendes:

add_filter( 'gettext', 'change_registration_usename_label', 10, 3 );
function change_registration_usename_label( $translated, $text, $domain ) {
    if( is_account_page() && ! is_wc_endpoint_url() ) {
        if( $text === 'Username' ) {
            $translated = __( 'Account number', $domain );
        } elseif( $text === 'Username or email address' ) {
            $translated = __( 'Account number or email address', $domain );
        }
    }

    return $translated;
}

Der Code wird in die function.php-Datei Ihres aktiven untergeordneten Designs (oder aktiven Designs) eingefügt. Getestet und funktioniert.

Geben Sie hier die Bildbeschreibung ein

  • Hallo, danke, es funktioniert tatsächlich. Aber als ich diese Funktion hinzugefügt habe und Kunden ihre Kontonummer registriert haben, können sie während des Bezahlvorgangs keine Bestellung aufgeben. die Seite wird grau

    – Hurab Nair

    6. Mai 2019 um 2:19 Uhr

  • Hallo, in der ersten Zeile steht, dass Sie absichtlich den Benutzernamen anstelle des Benutzernamens verwendet haben. Der Code gibt in irgendeiner Weise einen schwerwiegenden Fehler aus

    – Hurab Nair

    8. Mai 2019 um 3:17 Uhr


  • Hallo, wenn ich diese Zeile einfüge if( is_account_page() && ! is_wc_endpoint_url() ) { Es gibt mir einen fatalen Fehler, gibt es einen alternativen Code, der verwendet werden kann. Ich wäre Ihnen verbunden, wenn Sie mich führen könnten

    – Hurab Nair

    9. Mai 2019 um 2:45 Uhr

  • Oh, jetzt weiß ich, was das Problem ist, das es auch im WordPress-Login zeigt. Alles, was ich will, ist das Woocommerce-Registrierungs- und Anmeldeformular

    – Hurab Nair

    9. Mai 2019 um 6:28 Uhr

  • @HurabNair Mein Code verwendet offizielle bedingte WooCommerce-Tags das funktioniert einfach perfekt, wenn das WooCommerce-Plugin aktiviert ist. Mein Code hat nichts mit Ihrem Problem zu tun (dieser Code ist nur bei der WooCommerce-Registrierung aktiv).

    – LoicTheAztec

    9. Mai 2019 um 8:07 Uhr

Sie können Ihr Problem sowohl mit dem Haken als auch mit dem Überschreiben von Vorlagen lösen.

Wir können die Vorlagendatei in unserem Active-Child-Theme überschreiben:

woocommerce/templates/myaccount/form-login.php


<?php
/**
 * Login Form
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/myaccount/form-login.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see     https://docs.woocommerce.com/document/template-structure/
 * @package WooCommerce/Templates
 * @version 3.6.0
 */
if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly.
}
do_action( 'woocommerce_before_customer_login_form' ); ?>

<?php if ( 'yes' === get_option( 'woocommerce_enable_myaccount_registration' ) ) : ?>

<div class="u-columns col2-set" id="customer_login">

    <div class="u-column1 col-1">

<?php endif; ?>

        <h2><?php esc_html_e( 'Login', 'woocommerce' ); ?></h2>

        <form class="woocommerce-form woocommerce-form-login login" method="post">

            <?php do_action( 'woocommerce_login_form_start' ); ?>

            <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
                <label for="username"><?php esc_html_e( 'Username or email address', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
                <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="username" id="username" autocomplete="username" value="<?php echo ( ! empty( $_POST['username'] ) ) ? esc_attr( wp_unslash( $_POST['username'] ) ) : ''; ?>" /><?php // @codingStandardsIgnoreLine ?>
            </p>
            <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
                <label for="password"><?php esc_html_e( 'Password', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
                <input class="woocommerce-Input woocommerce-Input--text input-text" type="password" name="password" id="password" autocomplete="current-password" />
            </p>

            <?php do_action( 'woocommerce_login_form' ); ?>

            <p class="form-row">
                <label class="woocommerce-form__label woocommerce-form__label-for-checkbox woocommerce-form-login__rememberme">
                    <input class="woocommerce-form__input woocommerce-form__input-checkbox" name="rememberme" type="checkbox" id="rememberme" value="forever" /> <span><?php esc_html_e( 'Remember me', 'woocommerce' ); ?></span>
                </label>
                <?php wp_nonce_field( 'woocommerce-login', 'woocommerce-login-nonce' ); ?>
                <button type="submit" class="woocommerce-button button woocommerce-form-login__submit" name="login" value="<?php esc_attr_e( 'Log in', 'woocommerce' ); ?>"><?php esc_html_e( 'Log in', 'woocommerce' ); ?></button>
            </p>
            <p class="woocommerce-LostPassword lost_password">
                <a href="https://stackoverflow.com/questions/55964588/<?php%20echo%20esc_url(%20wp_lostpassword_url()%20);%20?>"><?php esc_html_e( 'Lost your password?', 'woocommerce' ); ?></a>
            </p>

            <?php do_action( 'woocommerce_login_form_end' ); ?>

        </form>

<?php if ( 'yes' === get_option( 'woocommerce_enable_myaccount_registration' ) ) : ?>

    </div>

    <div class="u-column2 col-2">

        <h2><?php esc_html_e( 'Register', 'woocommerce' ); ?></h2>

        <form method="post" class="woocommerce-form woocommerce-form-register register" <?php do_action( 'woocommerce_register_form_tag' ); ?> >

            <?php do_action( 'woocommerce_register_form_start' ); ?>

            <?php if ( 'no' === get_option( 'woocommerce_registration_generate_username' ) ) : ?>

                <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
                    <label for="reg_username"><?php esc_html_e( 'account number', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
                    <input type="text" class="woocommerce-Input woocommerce-Input--text input-text" name="username" id="reg_username" autocomplete="username" value="<?php echo ( ! empty( $_POST['username'] ) ) ? esc_attr( wp_unslash( $_POST['username'] ) ) : ''; ?>" /><?php // @codingStandardsIgnoreLine ?>
                </p>

            <?php endif; ?>

            <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
                <label for="reg_email"><?php esc_html_e( 'Email address', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
                <input type="email" class="woocommerce-Input woocommerce-Input--text input-text" name="email" id="reg_email" autocomplete="email" value="<?php echo ( ! empty( $_POST['email'] ) ) ? esc_attr( wp_unslash( $_POST['email'] ) ) : ''; ?>" /><?php // @codingStandardsIgnoreLine ?>
            </p>

            <?php if ( 'no' === get_option( 'woocommerce_registration_generate_password' ) ) : ?>

                <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
                    <label for="reg_password"><?php esc_html_e( 'Password', 'woocommerce' ); ?>&nbsp;<span class="required">*</span></label>
                    <input type="password" class="woocommerce-Input woocommerce-Input--text input-text" name="password" id="reg_password" autocomplete="new-password" />
                </p>

            <?php else : ?>

                <p><?php esc_html_e( 'A password will be sent to your email address.', 'woocommerce' ); ?></p>

            <?php endif; ?>

            <?php do_action( 'woocommerce_register_form' ); ?>

            <p class="woocommerce-FormRow form-row">
                <?php wp_nonce_field( 'woocommerce-register', 'woocommerce-register-nonce' ); ?>
                <button type="submit" class="woocommerce-Button button" name="register" value="<?php esc_attr_e( 'Register', 'woocommerce' ); ?>"><?php esc_html_e( 'Register', 'woocommerce' ); ?></button>
            </p>

            <?php do_action( 'woocommerce_register_form_end' ); ?>

        </form>

    </div>

</div>
<?php endif; ?>

<?php do_action( 'woocommerce_after_customer_login_form' ); ?>

Hoffe, es hilft Ihnen, Ihr Problem auf andere Weise zu lösen.

  • Hi, muss ich es zuerst in cpanel schreiben?

    – Hurab Nair

    9. Mai 2019 um 9:35 Uhr

  • Hallo, ich habe das Template kopiert und auch dein Theme kopiert, kann aber keine Änderungen im Frontend sehen

    – Hurab Nair

    9. Mai 2019 um 11:40 Uhr

  • Haben Sie das Elternthema in das Kind überschrieben?

    – Pramod Kharade

    9. Mai 2019 um 16:06 Uhr

  • Was ich getan habe, wurde aus dem Plugin-Woocommerce-Vorlagenformular in das Avada-Theme-Anmeldeformular kopiert und dort geändert

    – Hurab Nair

    11. Mai 2019 um 4:21 Uhr

1001130cookie-checkÄndere das Label „Benutzername“ in „Kontonummer“ in der WooCommerce-Registrierung

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy