Вот решение: сначала используйте действие 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 вашей темы, чтобы избежать перезаписи его обновлением плагина.
Надеюсь, это поможет!