Автоматизируйте процесс, когда пользователь WordPress зарегистрирован - PullRequest
0 голосов
/ 25 сентября 2018

Я разрабатываю службу бронирования для учителей через веб-сайт WordPress, и мне нужно автоматизировать процесс создания календаря бронирования для каждого учителя каждый раз, когда учитель регистрируется на веб-сайте Wordpress.Как я могу автоматизировать этот процесс?Преподаватели зарегистрированы как пользователи WordPress, а в календаре написано бесплатное имя плагина Appointment Hour Booking, я думаю, мне нужно каким-то образом связать код, который запускается каждый раз, когда создается пользователь WordPress, но не уверен, как это сделать.Помощь

1 Ответ

0 голосов
/ 25 сентября 2018

Вот решение: сначала используйте действие user_register (https://codex.wordpress.org/Plugin_API/Action_Reference/user_register) для запуска некоторого кода при создании пользователя WordPress, например

add_action( 'user_register', 'myplugin_registration_save', 10, 1 );

function myplugin_registration_save( $user_id ) {
// place code here
}

... в данном случае для созданиякалендарь, используя плагин Appointment Hour Booking, вы должны сначала создать «базовый» календарь с настройками по умолчанию и клонировать этот календарь для каждого пользователя, этот код должен работать:

$base_calendar_id = 1;

$myrows = $wpdb->get_row( $wpdb->prepare("SELECT * FROM ".$wpdb->prefix."cpappbk_forms WHERE id=%d", $base_calendar_id) , ARRAY_A);   

unset($myrows["id"]);
$myrows["form_name"] = 'Cloned: '.$myrows["form_name"];
$myrows["cp_user_access"] = serialize(array($user_id));
$wpdb->insert( $wpdb->prefix.'cpappbk_forms', $myrows);

... так что полный кодбудет следующим:

add_action( 'user_register', 'myplugin_registration_save', 10, 1 );

function myplugin_registration_save( $user_id ) {
    global $wpdb;
    $base_calendar_id = 1;
    $myrows = $wpdb->get_row( $wpdb->prepare("SELECT * FROM ".$wpdb->prefix."cpappbk_forms WHERE id=%d", $base_calendar_id) , ARRAY_A);   

    unset($myrows["id"]);
    $myrows["form_name"] = 'Cloned: '.$myrows["form_name"];
    $myrows["cp_user_access"] = serialize(array($user_id));
    $wpdb->insert( $wpdb->prefix.'cpappbk_forms', $myrows);
}

В идеале поместите код в файл functions.php вашей темы, чтобы избежать перезаписи его обновлением плагина.

Надеюсь, это поможет!

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