首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >提交表单并创建用户- Worpress + Google表单

提交表单并创建用户- Worpress + Google表单
EN

Stack Overflow用户
提问于 2022-08-22 10:58:40
回答 1查看 30关注 0票数 0

我有一个用户注册表单简单的HTML,没有插件,我想让它创建一个用户在worpress (这部分工作),并提交作为谷歌表单,没有重定向(只有消息显示的表单)。解决办法是什么?

我尝试重新创建相同的形式,谷歌格式和隐藏,但提交按钮不提交,如果它是空的,因为它提交得太晚。

此部分是HTML表单。

代码语言:javascript
运行
AI代码解释
复制
function registration_form( $username, $password, $email, $first_name, $last_name ){
echo '
 <form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
 <div>
 <label for="firstname">Jméno <strong>*</strong></label>
 <input type="text" name="fname" required id="name" value="' . ( isset( $_POST['fname']) ? $first_name : null ) . '">
 </div>
 
 <div>
 <label for="website">Příjmení <strong>*</strong></label>
 <input type="text" name="lname" required id="lastname" value="' . ( isset( $_POST['lname']) ? $last_name : null ) . '">
 </div>
 
   <div>
 <label for="email">Datum narození <strong>*</strong></label>
 <input type="date" name="bday" required id="bday" value="' . ( isset( $_POST['bday']) ? $birthday : null ) . '">
 </div>
 
  <div>
 <label for="email">E-mail <strong>*</strong></label>
 <input type="email" name="email" required id="email" value="' . ( isset( $_POST['email']) ? $email : null ) . '">
 </div>
 
   <div>
 <input type="text" name="email1" required id="email1" value="' . ( isset( $_POST['email1']) ? $email1 : null ) . '" placeholder="Potvrzení emailu">
 </div>
 
  <div>
 <label for="email">Telefon <strong>*</strong></label>
 <input type="text" name="telefon" required id="telefon" value="' . ( isset( $_POST['telefon']) ? $phone : null ) . '">
 
 <br><br><br><br>
 <div>
 <label for="username">Přihlašovací jméno <strong>*</strong></label>
 <input type="text" name="username" value="' . ( isset( $_POST['username'] ) ? $username : null ) . '" placeholder="Minimálně 4 znaky. Pouze písmena a čísla.">
 </div>
 
 <div>
 <label for="password">Heslo <strong>*</strong></label>
 <input type="password" name="password" value="' . ( isset( $_POST['password'] ) ? $password : null ) . '" placeholder="Minimálně 5 znaků">
 </div>

 <div align="center"><br>
 <input type="submit" name="submit" value="Registrovat se"/>
</div></form>
 ';
}

检查错误和验证表单

代码语言:javascript
运行
AI代码解释
复制
function registration_validation( $username, $password, $email, $first_name, $last_name ) {

global $reg_errors;
 $reg_errors = new WP_Error;

//Check empty fields
 if ( empty( $username ) || empty( $password ) || empty( $email )) {
 $reg_errors->add('field', 'Prosím vyplňte povinné informace.');
 }

 //Check user name lenght greater than 4 character.
 if ( 4 > strlen( $username ) ) {
 $reg_errors->add( 'username_length', 'Přihlašovací jméno je příliš krátké: 4 znaky nejméně' );
 }

//Check user name is exists
 if ( username_exists( $username ) ){
 $reg_errors->add('user_name', 'Již existuje uživatel se stejným uživatelským jménem. Prosím, zvolte si jiné.');
 }

//validate wp user name
 if ( ! validate_username( $username ) ) {
 $reg_errors->add( 'username_invalid', 'Sorry, the username you entered is not valid' );
 }

//check password lengh 
 if ( 5 > strlen( $password ) ) {
 $reg_errors->add( 'password', 'Heslo musí mít nejméně 5 znaků.' );
 }

//check email is correct email
 if ( !is_email( $email ) ) {
 $reg_errors->add( 'email_invalid', 'Email není správný' );
 }
    
 // check email already in use or not
 if ( email_exists( $email ) ) {
 $reg_errors->add( 'email', 'Již existuje uživatel se stejným emailem.' );
 }


if ( is_wp_error( $reg_errors ) ) {
 foreach ( $reg_errors->get_error_messages() as $error ) {
 echo '<div class="zaloha">';
 echo '<strong>ERROR</strong>:';
 echo $error . '<br/>';
 echo '</div>'; 
 }
 }
}

function complete_registration() {
 global $reg_errors, $username, $password, $email, $first_name, $last_name
 if ( 1 > count( $reg_errors->get_error_messages() ) ) {
 $userdata = array(
 'user_login' => $username,
 'user_email' => $email,
 'user_pass' => $password,
 'first_name' => $first_name,
 'last_name' => $last_name,
 'nickname' => $nickname, 
 );

 $user = wp_insert_user( $userdata );
 echo '<div class = "zaloha">Vaše registrace proběhla úspěšně.</div><br>'; 
 }
}

function registration_function() {
global $reg_errors, $username, $password, $email, $first_name, $last_name;

if ( isset($_POST['submit'] ) ) {
 registration_validation(
 $_POST['username'],
 $_POST['password'],
 $_POST['email'],
 $_POST['fname'],
 $_POST['lname'],
 $_POST['nickname'] );
    
 
 // call @function complete_registration to create the user only when no WP_error is found
 complete_registration($username, $password, $email, $first_name, $last_name);
}
 
 registration_form( $username, $password, $email, $first_name, $last_name);
}

按照注释中的建议进行编辑,我已经使用CUrl自动提交表单,一旦表单被提交到不显示Google确认页面,就会自动提交表单。

EN

回答 1

Stack Overflow用户

发布于 2022-08-22 11:40:56

假设您可以通过查看代码来控制WordPress。以下是一种方法:

  1. 安装Google集成插件
  2. 按照插件的一步一步的说明,从谷歌获得凭证。
  3. 转到Spreadsheet Integrations > Add New Integration
  4. 添加标题,在数据源中选择WordPress New User,在Sheets & worksheets中选择要将数据发送到何处的工作表。

我之所以建议使用这个插件,是因为它使生活变得更容易,而Google表单最终将数据放入Google中。

如果这有帮助或者你需要其他方法的话,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73449866

复制
相关文章

相似问题

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