我有一个用户注册表单简单的HTML,没有插件,我想让它创建一个用户在worpress (这部分工作),并提交作为谷歌表单,没有重定向(只有消息显示的表单)。解决办法是什么?
我尝试重新创建相同的形式,谷歌格式和隐藏,但提交按钮不提交,如果它是空的,因为它提交得太晚。
此部分是HTML表单。
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>
';
}
检查错误和验证表单
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确认页面,就会自动提交表单。
发布于 2022-08-22 11:40:56
假设您可以通过查看代码来控制WordPress。以下是一种方法:
Spreadsheet Integrations > Add New Integration
WordPress New User
,在Sheets & worksheets中选择要将数据发送到何处的工作表。我之所以建议使用这个插件,是因为它使生活变得更容易,而Google表单最终将数据放入Google中。
如果这有帮助或者你需要其他方法的话,请告诉我。
https://stackoverflow.com/questions/73449866
复制相似问题