Я пытаюсь создать отдельную страницу регистрации для новых клиентов, я успешно создал ее для страницы входа, создав копию исходного файла form-login.php
и получив к ней доступ, используя следующий код в functions.php
//create a new shortcode for login PHP and input the shortcode on the created page.
function custom_sign_in( $atts ) {
return woocommerce_get_template( "myaccount/form-login-custom.php" );
}
add_shortcode('custom_sign_in', 'custom_sign_in');
Я только что создал новую страницу, а затем использовал шорткод для входа в php.
тогда код входа PHP из оригинального файла woocommerce/my-account/form-login.php
, я просто добавил какой-то класс к элементам и скрыл форму регистрации через CSS.
Теперь со страницей регистрации я делаю то же самое. К сожалению, это не работает. Когда я попытался нажать кнопку отправки, ничего не работает, даже нажатие ввода с клавиатуры не работает, даже не перезагружается страница. Я думаю, что я что-то пропустил, но я не могу понять, что это такое.
вот код для регистрации PHP, я просто добавил какой-то класс к элементам, чтобы скрыть форму входа, это тоже из исходного файла form-login.php
, я ничего не удалял, просто добавил немного CSS, чтобы скрыть ненужные элементы.
<?php
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 customer_registration" 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' ); ?> <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' ); ?> <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="<?php echo esc_url( wp_lostpassword_url() ); ?>">
<?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( 'Username', 'woocommerce' ); ?>
</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" class="csx-custom-label">
<?php esc_html_e( 'E-Mail Address', 'woocommerce' ); ?>
</label>
<div class="csx-custom-input"><i class="fas fa-at csx-custom-form-icon"></i><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'] ) ) : ''; ?>"/>
</div>
<?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" class="csx-custom-label">
<?php esc_html_e( 'Password', 'woocommerce' ); ?>
</label>
<div class="csx-custom-input"><i class="fas fa-key csx-custom-form-icon"></i><input type="password" class="woocommerce-Input woocommerce-Input--text input-text csx-password" name="password" id="reg_password" autocomplete="new-password"/><a href="#" class="btn-eye-show-password"><i class="fas fa-eye-slash"></i></a>
</div>
</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-form-row form-row">
<?php wp_nonce_field( 'woocommerce-register', 'woocommerce-register-nonce' ); ?>
<button type="submit" class="woocommerce-Button woocommerce-button button woocommerce-form-register__submit" name="register" value="<?php esc_attr_e( 'Continue', 'woocommerce' ); ?>">
<?php esc_html_e( 'Continue', 'woocommerce' ); ?>
</button>
</p>
<?php do_action( 'woocommerce_register_form_end' ); ?>
</form>
</div>
</div>
<?php endif; ?>
<?php do_action( 'woocommerce_after_customer_login_form' ); ?>
Во всяком случае, я тоже использую плагин Dokan. И это решение не работает для меня, на случай, если вы думаете, что оно дублируется .