php - WooCommerce 在另一个页面上丢失了密码表单

标签 php wordpress forms woocommerce

使用最新版本的 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/

相关文章:

PHP高亮选中的元素

javascript - 从 Google 电子表格导入数据库

css - 自定义 CSS : Custom padding

ajax - Rails 3 form_for :remote => true does not submit via AJAX

php - `page-break-before` CSS 属性如何工作?

php - 如何使用 Laravel 将附件文件发送到电子邮件

不同用户/ session 之间的php共享变量

php - WordPress远程上传文件夹

javascript - 使用表行索引填充 Symfony 表单行

javascript - 我收到 WARN : IntentDialog - no intent handler found for null when I fill out a form Node. js Bot 框架