Как отправить форму на другой сайт из WordPress плагина ShortCoder - PullRequest
0 голосов
/ 30 августа 2018

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

В моем WordPress я использую плагин ProfileBuilder для предоставления регистрационной формы и использую плагин Shortcoder для вставки фрагмента JavaScript на той же странице.

Мой план состоял в том, чтобы извлечь входные данные формы из DOM, используя javascript, а затем каким-то образом отправить запрос на другой веб-сайт, используя собранные данные. Не могли бы вы помочь мне, представив решение этой проблемы, назвав какое-то программное обеспечение, которое мне понадобится для достижения этой цели, или просто назвав, что именно я пытаюсь сделать? Я не опытный программист, поэтому у меня нет точного языка, который мне нужен для описания моей проблемы или того, чего я хочу достичь в правильных технических терминах. Кто-то предложил мне использовать Selenium, но я хочу, чтобы это работало независимо от используемой машины; Я понимаю, что Selenium - это программное обеспечение, установленное на вашем компьютере, и я хочу, чтобы этот код запускался автоматически после отправки формы на сайт Wordpress, независимо от того, включен мой компьютер или нет. Также сайт, на который я хочу добавить нового пользователя, защищен паролем.

Вот что у меня есть:

<script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/2.0.3/fetch.min.js" charset="utf-8"></script>
<script type="text/javascript">

  var _username = document.getElementsByClassName('default_field_username')[0].value
  var _email = document.getElementsByClassName('default_field_email')[0].value
  var _password = document.getElementById('passw1').value
  var _repeated_password = document.getElementById('passw2').value
  var _userCredentials = {
    username: _username,
    email: _email,
    password: _password,
    repeatPassword: _repeated_password
  }

  function addUserToPruvan(_credHash){
    // POST request to other site would go here
  }

  document.addEventListener("click", function(){
    addUserToPruvan(_userCredentials)
  })  
</script>

1 Ответ

0 голосов
/ 31 августа 2018

EDIT:

Продолжай, как ты начал.

Я бы использовал jQuery для POST-части.

Это очень просто, вот пример того, как это может выглядеть:

<script src="https://github.com/jquery/jquery-dist/releases/tag/3.3.1"></script>
<script type="text/javascript">
  jQuery( document ).ready(function($) {

    ...

    $.post({
      url: "api.php",
      data: _userCredentials,
    }).done(function(response) {
      ......
    }).fail(function( jqXHR, textStatus ) {
      ......
    });


    ...

  });
  </script>

ПРЕДЫДУЩИЙ ОТВЕТ

Если ваш проект это позволяет, вы можете поделиться user_table между несколькими установками WordPress.

Вам нужно поместить обе базы данных WordPress в одну базу данных SQL, каждая из которых имеет свой префикс таблицы.

 //wp-config.php number 1
$table_prefix  = 'first_';
define( 'CUSTOM_USER_TABLE', $table_prefix . 'users' );
define( 'CUSTOM_USER_META_TABLE', $table_prefix . 'usermeta' );

//wp-config.php number 2
$table_prefix  = 'second_';
define( 'CUSTOM_USER_TABLE', 'first_users' );
define( 'CUSTOM_USER_META_TABLE', 'first_usermeta' );

Вы должны убедиться, что у каждого пользователя есть копии заглавных букв и уровней, например: enter image description here

// automatically copy caps and level across from 1 to 2
// repeat to do 2 to 1
function ksu_save_role( $user_id, $role ) {
    $prefix_1 = 'first_';
    $prefix_2 = 'second_';

    $caps = get_user_meta( $user_id, $prefix_1 . 'capabilities', true );
    $level = get_user_meta( $user_id, $prefix_1 . 'user_level', true );

    if ( $caps )
        update_user_meta( $user_id, $prefix_2 . 'capabilities', $caps );

    if ( $level )
        update_user_meta( $user_id, $prefix_2 . 'user_level', $level );
}
add_action( 'set_user_role', 'ksu_save_role', 10, 2 );

Вот где я узнал об этом: https://kinsta.com/blog/share-logins-wordpress/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...