使用最新版本的 WooCommerce,我试图让丢失的密码表单显示在几个不同的页面上。问题是,从 woocommerce > templates > myaccount > form-lost-password.php
复制默认表单并将代码放在另一个页面上是行不通的。
这是表单的默认代码:
<form method="post" class="lost_reset_password">
<?php if( 'lost_password' == $args['form'] ) : ?>
<p><?php echo apply_filters( 'woocommerce_lost_password_message', __( 'Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.', 'woocommerce' ) ); ?></p>
<p class="form-row form-row-first"><label for="user_login"><?php _e( 'Username or email', 'woocommerce' ); ?></label> <input class="input-text" type="text" name="user_login" id="user_login" /></p>
<?php else : ?>
<p><?php echo apply_filters( 'woocommerce_reset_password_message', __( 'Enter a new password below.', 'woocommerce') ); ?></p>
<p class="form-row form-row-first">
<label for="password_1"><?php _e( 'New password', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="password" class="input-text" name="password_1" id="password_1" />
</p>
<p class="form-row form-row-last">
<label for="password_2"><?php _e( 'Re-enter new password', 'woocommerce' ); ?> <span class="required">*</span></label>
<input type="password" class="input-text" name="password_2" id="password_2" />
</p>
<input type="hidden" name="reset_key" value="<?php echo isset( $args['key'] ) ? $args['key'] : ''; ?>" />
<input type="hidden" name="reset_login" value="<?php echo isset( $args['login'] ) ? $args['login'] : ''; ?>" />
<?php endif; ?>
<div class="clear"></div>
<p class="form-row">
<input type="hidden" name="wc_reset_password" value="true" />
<input type="submit" class="button" value="<?php echo 'lost_password' == $args['form'] ? __( 'Reset Password', 'woocommerce' ) : __( 'Save', 'woocommerce' ); ?>" />
</p>
<?php wp_nonce_field( $args['form'] ); ?>
</form>
这是我正在使用的:
<form method="post" class="lost_reset_password">
<h2 id="reset-h2">Recover your password</h2>
<p id="reset-p">Please enter your email address below to receive a link where you can create a new password</p>
<input class="input-text reset-email-password" type="text" name="user_login" id="user_login" placeholder="Enter your email"/>
<input type="hidden" name="wc_reset_password" value="true" />
<input type="submit" class="button submit-button custom-reset" value="<?php _e( 'Reset Password', 'woocommerce' ); ?>" />
<a href="#" id="reset-back">Back</a>
<?php wp_nonce_field( $args['form'] ); ?>
</form>
请注意,我删除了
else
部分原因是我只希望用户提交的表单收到一封带有重置密码链接的电子邮件(这显然会带你到我删除的代码)。我唯一能想到为什么这不起作用是因为我错过了像
<?php do_action( 'woocommerce_login_form_end' ); ?>
这样的操作。但我不知道丢失密码所需的操作是什么。很想在这方面得到一些帮助,所以如果我需要提供其他任何东西,请告诉我,谢谢!
最佳答案
尝试将这行代码插入到要显示表单的模板文件中:
wc_get_template( 'myaccount/form-lost-password.php', array( 'form' => 'lost_password' ) );
关于php - WooCommerce 在另一个页面上丢失了密码表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29568813/