Зарегистрируйте пользователя WordPress через форму Unbounce

Заранее извиняюсь за новичок в этом вопросе...

Я пытаюсь передать электронное письмо, полученное через форму целевой страницы Unbounce, в WordPress и программно зарегистрировать нового пользователя WordPress.

Это установка на данный момент:

  1. Целевая страница отмены отказов (get.slideheroes.com/testing)
  2. Передача адреса электронной почты через «данные формы публикации в URL-адрес»
  3. Целевой URL: https://www.slideheroes.com/newuser.php.
  4. Код PHP (в newuser.php) выглядит следующим образом:

    if( null == username_exists( $email ) ) {
    
      // Generate the password and create the user
      $password = wp_generate_password( 12, false );
      $user_id = wp_create_user( $email, $password, $email );
    
      // Set the nickname
      wp_update_user(
        array(
          'ID'          =>    $user_id,
          'nickname'    =>    'Trial User'
        )
      );
    
      // Set the role
      $user = new WP_User( $user_id );
      $user->set_role( 'contributor' );
    
      // Email the user
      wp_mail( $email, 'Welcome!', 'Your Password: ' . $password );
    
    } // end if
    

Любые предложения относительно того, что (возможно, многое), что я делаю неправильно?


person Michael    schedule 12.12.2014    source источник
comment
Есть ли проблема с поведением? В чем разница между спроектированным поведением и опытным поведением?   -  person Celeo    schedule 12.12.2014
comment
:-) Хороший вопрос. Опытное поведение = ни один пользователь не зарегистрирован, ничего не происходит, пустая страница Дизайнерское поведение = пользователь зарегистрирован, электронное письмо отправлено   -  person Michael    schedule 12.12.2014


Ответы (1)


Чтобы это заработало, вы должны включить wp-load.php и установить переменную $email с опубликованным значением:

require_once('/path/to/wp-load.php');

$email = $_POST['email']; // maybe some extra validation if needed

if( null == username_exists( $email ) ) {

  // Generate the password and create the user
  $password = wp_generate_password( 12, false );
  $user_id = wp_create_user( $email, $password, $email );

  // Set the nickname
  wp_update_user(
    array(
      'ID'          =>    $user_id,
      'nickname'    =>    'Trial User'
    )
  );

  // Set the role
  $user = new WP_User( $user_id );
  $user->set_role( 'contributor' );

  // Email the user
  wp_mail( $email, 'Welcome!', 'Your Password: ' . $password );

} // end if
person vicente    schedule 12.12.2014