簡體   English   中英

WordPress中的自定義注冊表格

[英]Custom registration form in wordpress

我是wordpress新手,我必須在wordpress中創建自定義注冊表單。 我聽說它可以與PHP和AJAX一起使用。
目前,我的代碼如下:(在模板文件中)

jQuery(document).on( "click", '.create-account-btn', function(){

   var inputEmpty = false;
     jQuery(".input__field--yoko").not("[type=submit]").each(function () {
        if (jQuery.trim(jQuery(this).val()).length == 0) inputEmpty = true;
       });
    if (inputEmpty){
        alert('Please fill all fields in the register form');
    } else {
      $.ajax({
        type: "post",
        url: "functions.php",
        dataType: 'json',
        data: {
          action: "registerAccount",
          username: $("#account-username").val(),
          password: $("#account-password").val(),
          email: $("#billing_email").val()
        },
        success:function() {
          alert("I'm created!");
        },
        error: function() {
          alert("Oh no, error! :(");
        }
    });
  }

  return false;
});

(在functions.php文件中)

function registerAccount() {
  if ( isset($_REQUEST) ) {
    $username = $_REQUEST['username'];
    $password = $_REQUEST['password]';
    $email = $_REQUEST['email'];
    $user_id = wp_create_user( $username, $password, $email );

    if (is_int($user_id)) {
      $wp_user_object = new WP_User($user_id);
    }
  }
    die();
}
add_action('wp_ajax_registerAccount', 'registerAccount');

問題是我在AJAX請求中得到錯誤功能。 這兩個文件都在同一個目錄中,您有什么線索在這段代碼中有什么不好嗎?

在Sagar的幫助下,我設法使其正常運行,因此它不再運行錯誤功能,現在它調用了成功功能,但未創建wordpress帳戶,請幫助我。

這是由wp_head灌輸的ajaxurl

<?php function frontend_custom_ajaxurl() { ?>
    <script type="text/javascript">
        var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
    </script>
    <?php
  }
add_action('wp_head','frontend_custom_ajaxurl');

這是您的php函數可以執行的任何操作並將此代碼放入functions.php

function your_function() {
    parse_str($_POST['data'], $params);
    print_r($params)
    exit;
}
add_action('wp_ajax_your_function', 'your_function');
add_action('wp_ajax_nopriv_your_function', 'your_function');

這是JQuery。

jQuery(".create-account-btn").submit(function() {
    var data = {
        action: 'your_function', // here php function such as your_function
        data: jQuery(".create-account-btn").serialize(),
    };
    jQuery.post(ajaxurl, data, function(response) {
        ......................
    },'json');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM