如何在 WooCommerce 注册页面添加确认密码字段?

2024-04-05

我正在尝试添加代码

<?php
// Add the code below to your theme's functions.php file to add a confirm password field on the register form under My Accounts.
add_filter('woocommerce_registration_errors', 'registration_errors_validation', 10,3);
function registration_errors_validation($reg_errors, $sanitized_user_login, $user_email) {
    global $woocommerce;
    extract( $_POST );
    if ( strcmp( $password, $password2 ) !== 0 ) {
        return new WP_Error( 'registration-error', __( 'Passwords do not match.', 'woocommerce' ) );
    }
    return $reg_errors;
}
add_action( 'woocommerce_register_form', 'wc_register_form_password_repeat' );
function wc_register_form_password_repeat() {
    ?>
    <p class="form-row form-row-wide">
        <label for="reg_password2"><?php _e( 'Password Repeat', 'woocommerce' ); ?> <span class="required">*</span></label>
        <input type="password" class="input-text" name="password2" id="reg_password2" value="<?php if ( ! empty( $_POST['password2'] ) ) echo esc_attr( $_POST['password2'] ); ?>" />
    </p>
    <?php
}
?>

在 function.php 上但不起作用...任何关于如何在 woocommerce/my account/from-login.php 上添加密码确认字段的内容


作为后续约翰的回答 https://stackoverflow.com/a/39079966/7311767:

挂钩到woocommerce_checkout_init不再适用于 Woocommerce 3.x,因为他们引入了一个神奇的吸气剂,只会返回原始的$checkout->checkout_fields['account']场,无account2。我不知道这是一个功能还是一个错误。

对于 Woocommerce 3.x,正确的方法是使用过滤器。验证保持不变。

// Add a second password field to the checkout page in WC 3.x.
add_filter( 'woocommerce_checkout_fields', 'wc_add_confirm_password_checkout', 10, 1 );
function wc_add_confirm_password_checkout( $checkout_fields ) {
    if ( get_option( 'woocommerce_registration_generate_password' ) == 'no' ) {
        $checkout_fields['account']['account_password2'] = array(
                'type'              => 'password',
                'label'             => __( 'Confirm password', 'woocommerce' ),
                'required'          => true,
                'placeholder'       => _x( 'Confirm Password', 'placeholder', 'woocommerce' )
        );
    }

    return $checkout_fields;
}

// Check the password and confirm password fields match before allow checkout to proceed.
add_action( 'woocommerce_after_checkout_validation', 'wc_check_confirm_password_matches_checkout', 10, 2 );
function wc_check_confirm_password_matches_checkout( $posted ) {
    $checkout = WC()->checkout;
    if ( ! is_user_logged_in() && ( $checkout->must_create_account || ! empty( $posted['createaccount'] ) ) ) {
        if ( strcmp( $posted['account_password'], $posted['account_password2'] ) !== 0 ) {
            wc_add_notice( __( 'Passwords do not match.', 'woocommerce' ), 'error' );
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 WooCommerce 注册页面添加确认密码字段? 的相关文章

  • 如何使用 xmlrpc 将 html 内容发布到 wordpress?

    我有一个脚本可以使用 xmlrpc 将一些数据发布到 WordPress 如果我在正文中使用一个简单的字符串 例如 这是一个测试 它就可以正常工作 但是 如果其中包含任何 HTML 格式 则在尝试添加帖子时会严重损坏 如何使用 xmlrpc
  • WordPress 联系表 7 日期选择器更改日期格式

    我在用着Contact Form 7WordPress 中的插件 我需要一些帮助datepicker关于如何更改我的表单前端的显示日期格式 默认显示mm dd yy我想把它改成dd mm yy但不幸的是我无法使用这段代码 dateForma
  • Woocommerce 从 woocommerce_add_to_cart_fragments 传回的错误片段

    我正在创建自定义 WooCommerce 购物车 并且更新购物车商品的数量工作正常 唯一的问题是它不会自动刷新 只有在页面加载后才起作用 我当前的代码使用woocommerce add to cart fragments挂钩并使用传入的 f
  • get_posts 不返回所有帖子

    我必须手动安装博客文章 但我不确定这是否是正确的工作方式 它只带来 9 个页面 每个页面有 4 个帖子 但博客有 83 个帖子
  • Wordpress 编辑器中的“application/gas-events-abn”对象是什么?

    我正在使用 Wordpress 创建博客 我注意到当我多次保存帖子时 代码中会出现一个奇怪的元素 在帖子底部创建一个大的空白区域 代码如下所示 post content nbsp 每次我编辑帖子时 我都必须将其删除 Joomla 有时也会发
  • WordPress ~ 如何在一页上显示多个 Google Chart?

    下面是我插入到 WordPress Visual Composer 中的原始 HTML 块中的一个 Google 图表的代码 图表 ID 名称为 chart div1 这适用于我的 WP 网页
  • 通过 wp_handle_upload 删除未放入上传文件夹中的图像

    我正在将图像保存到上传文件夹 但我正在使用文件放置内容 http php net manual en function file put contents php代替wp 句柄 上传 https codex wordpress org Fu
  • 在订单编辑页面添加自定义元框并将其显示在客户订单页面上

    在 WooCommerce 中 想要在 WooCommerce 管理订单页面上添加自定义元框 在此框中 我只想在保存到该订单的文本字段中输入跟踪号码 然后在客户查看订单页面上 我想显示一个按钮 用于打开带有跟踪信息的模式 该模式只会拉入一个
  • wp_mail(Wordpress 邮件功能)未发送到 gmail 或 live.co.uk 帐户

    我有一个网站 允许访问者通过两种方式联系我 通过其自己页面上的联系表单和侧边栏中的 ajax 小型联系表单 两种联系方式都会向我的 Gmail 帐户发送电子邮件 它自己页面上的联系表单工作正常 但ajax表单不会发送到gmail 也不会发送
  • 在 wp_query 中结合关键字搜索和税务查询

    我一直在尝试创建自定义搜索查询 并且已经取得了一些进展 但遇到了另一个障碍 我试图将 wp query 中的meta query 关键字搜索 s 和tax query 与 OR 关系结合起来 感谢这篇精彩的文章 我已经让 meta quer
  • .htaccess HTTPS 主域和通配符 HTTP 子域 + 所有非 WWW

    Stack Overflow 上有很多类似的解决方案 例如htaccess http 到 https 带 www 不重定向子域 https stackoverflow com questions 30242495 htaccess http
  • WordPress admin-ajax.php 400 错误请求

    我的 WordPress admin ajax php 文件有一个奇怪且令人沮丧的行为 当我发出 ajax 请求时 它返回 400 错误错误请求 function var ajaxscript ajax url mydomain com w
  • 向 WordPress 添加全局设置(功能切换)

    我有一个使用定制主题的 WordPress 网站 我想在管理中的某个位置添加一个功能切换 复选框设置 各个主题页面可以读取该功能切换以更改其行为 实现这一点的最佳方法是什么 如果您能包括我如何阅读该设置 我将不胜感激 Use the 主题定
  • 测试 WP_Query 对象是否为空

    如何测试 WP Query 对象是否未返回任何匹配项 我希望能够做这样的事情 这是一个模板 EDIT 更好的例子 我只想在查询找到任何内容时才显示 h2
  • 为什么我需要在 single.php 中使用 wp 循环

    在WordPress主题开发中我们可以使用single php显示具体的单个帖子 为此 通常的做法是 为什么我需要循环显示单个帖子 任何人都可以给出一些合理的理由吗 这是困扰我多年的事情 我找到了答案 不 您不需要在单页中使用 LOOP 您
  • 自定义 WP 主题时,我应该将导航栏放在“”标签之前还是之后?

    我正在通过制作子主题来自定义 WP 主题 我将 Bootstrap 中的导航栏放入子主题目录中的 header php 文件中 但是 我不确定在哪里放置导航栏代码 我可以把它都放在前面and之后标记成功 例如 无论我选择哪一个 导航栏都显示
  • WordPress 分页自定义帖子类型

    我有一个名为 新闻 的页面 使用页面模板page newslist php 它应该显示来自自定义帖子类型 也称为新闻 的帖子 我意识到两者具有相同的名称会导致问题 因此在注册自定义帖子类型时 我进行了重写以将其与页面区分开来 rewrite
  • WordPress:wpdb->插入与wpdb->准备(wpdb->查询(“INSERT

    我想知道 WordPress 的插入功能是否也向数据添加斜杠 如果没有 准备查询方法似乎可以更好地防止 SQL 注入 我尝试在 codex api 中查找问题 然而 它似乎没有记录 谢谢 这个问题有点老了 自从提出这个问题以来 法典可能已经
  • 是否存在可处理 PRC/.mobi 文件的 PHP 库?

    我正在写一个WordPress 插件 http github com chrisclarke eBook Export Plugin for WordPress以大多数主要电子书格式从选定类别创建电子书 我想支持 MobiPocket 因为
  • 如何将 WordPress 类别选择限制为只有一个?

    我有一个自定义帖子类型和一个自定义分类设置 非常标准的东西 但是 我想知道如何限制我的客户在每个帖子中选择多个分类类别 我不介意他们能够创建和删除分类类型 但我不希望他们选择多个分类类型 因为这些是复选框 所以它们可以 也许单选按钮可以工作

随机推荐