首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载错误wc_print_notices以更正woocommerce登录或注册表

加载错误wc_print_notices以更正woocommerce登录或注册表
EN

Stack Overflow用户
提问于 2019-08-02 07:10:22
回答 1查看 402关注 0票数 0

我已经在弹出元素中编写了woocommerce登录和注册表单。我还在弹出窗口中调用了<?php wc_print_notices(); ?>,以便在适用时给出错误消息。我面临的挑战是在提交后显示正确的表单和相关的登录或注册错误。

这是我在弹出窗口中使用的php表单。弹出窗口显示一个表单,具体取决于用户在标题中选择的是sign in还是register。这一切都行得通。

代码语言:javascript
复制
function separate_registration_form() {
if ( is_admin() ) return;
ob_start();
if ( is_user_logged_in() ) {
    wc_print_notices();
    } else {
        ?>
          <?php wc_print_notices(); ?>
          <form id="woo-register-form" method="post">...etc...</form>
          <form id="woo-login-form" method="post">...etc...</form>
       <?php
    }
    return ob_get_clean();
}

我目前的解决方案是在类.woocommerce-error在DOM中时添加一个JS触发器,以便显示弹出窗口。但在本例中,它显示了两个表单,我正在寻找如何调用与链接错误相关的正确表单。因此,当有人输入了错误的登录密码,在页面加载后,它会显示弹出窗口,例如登录表单。这可以用JS或PHP来完成吗?还是一个组合?

EN

回答 1

Stack Overflow用户

发布于 2019-08-02 17:55:22

在深入研究了表单的功能之后,我提出了以下解决方案。

表单需要有一个action属性。因此,此action属性将在提交表单后出现在地址栏中。然后,可以添加JS来定义action名称是否在地址路径中,以及.woocommerce-error是否在DOM中以触发弹出窗口。

所以就像这样:

代码语言:javascript
复制
function separate_registration_form() {
if ( is_admin() ) return;
ob_start();
if ( is_user_logged_in() ) {
    wc_print_notices();
    } else {
        ?>
          <?php wc_print_notices(); ?>
          <form id="woo-register-form" action="#register" method="post">...etc...</form>
          <form id="woo-login-form" action="#login" method="post">...etc...</form>
       <?php
    }
    return ob_get_clean();
}

让我们假设login-triggerregister-trigger是用于显示表单的按钮。重要的是在页面加载后添加这些操作。JS将是:

代码语言:javascript
复制
$(window).on('load', function(){
    /*check if #register is in url*/
    if(location.href.indexOf("/#register") > -1){
        /*check if error is in the DOM*/
        if( $('.woocommerce-error').length){
            /*all good, fire off the popup*/
            $('.register-trigger').trigger('click'); 
        }
    }
    /*same for login*/
    if(location.href.indexOf("/#login") > -1){
        if( $('.woocommerce-error').length){
            $('.login-trigger').trigger('click');
        }
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57318046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档