javascript - 进程注册后显示div,woocommerce

标签 javascript php html wordpress woocommerce

在网站注册后,我想显示一个隐藏的div div 在同一页中。 但在注册后,页面将加载并显示相同的页面。

这是 form-handler.php

public static function process_registration() {
    $nonce_value = isset( $_POST['_wpnonce'] ) ? $_POST['_wpnonce'] : '';
    $nonce_value = isset( $_POST['woocommerce-register-nonce'] ) ? $_POST['woocommerce-register-nonce'] : $nonce_value;

    if ( ! empty( $_POST['register'] ) && wp_verify_nonce( $nonce_value, 'woocommerce-register' ) ) {
        $username = 'no' === get_option( 'woocommerce_registration_generate_username' ) ? $_POST['username'] : '';
        $password = 'no' === get_option( 'woocommerce_registration_generate_password' ) ? $_POST['password'] : '';
        $email    = $_POST['email'];

        try {
            $validation_error = new WP_Error();
            $validation_error = apply_filters( 'woocommerce_process_registration_errors', $validation_error, $username, $password, $email );

            if ( $validation_error->get_error_code() ) {
                throw new Exception( $validation_error->get_error_message() );
            }

            // Anti-spam trap
            if ( ! empty( $_POST['email_2'] ) ) {
                throw new Exception( __( 'Anti-spam field was filled in.', 'woocommerce' ) );
            }

            $new_customer = wc_create_new_customer( sanitize_email( $email ), wc_clean( $username ), $password );

            if ( is_wp_error( $new_customer ) ) {
                throw new Exception( $new_customer->get_error_message() );
            }

            if ( apply_filters( 'woocommerce_registration_auth_new_customer', true, $new_customer ) ) {
                wc_set_customer_auth_cookie( $new_customer );
            }

            wp_safe_redirect( apply_filters( 'woocommerce_registration_redirect', wp_get_referer() ? wp_get_referer() : wc_get_page_permalink( 'myaccount' ) ) );
            exit;

        } catch ( Exception $e ) {
            wc_add_notice( '<strong>' . __( 'Error', 'woocommerce' ) . ':</strong> ' . $e->getMessage(), 'error' );
        }
    }
}

和div

<div class="alert success">
    <span class="closebtn">&times;</span>
    <strong>Registration Success!</strong> Check Email.
</div>

这是js代码

   jQuery('input.btn.btn-default.size-new-account').click(function() {
  jQuery('.alert.success').show();
});

但问题是,我如何理解注册流程,我可以使用条件或其他方式。因此通知将显示验证是否成功,并在加载页面后显示。

最佳答案

处理您的注册(php 代码)后,执行以下行

wc_add_notice('Registration successful') ; 

那你就不需要新的div了

关于javascript - 进程注册后显示div,woocommerce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45346579/

相关文章:

javascript - 单击上一个/下一个链接并在源更改上淡入图像并保留容器尺寸

javascript - 如何在 Polymer 2.x 中设置属性值?

php - 在 HTML 中嵌入 <form> 的输出

php - 我的 php/html/mysql cms 遇到问题

PHP lambda 函数和作用域

html - 响应式表单如何让文本框展开?

JavaScript 生成的 SVG 不渲染内容

javascript - 如何制作 Nuxt 全局对象?

javascript - 限制 NodeJS 中的函数

php - pdo 执行多个查询