Вряд ли из-за 15 строк кода кто-то будет писать настолько уникальный функционал
// устанавливаем роль и дату начала тестового периода
function set_user_test_period() {
$current_date = date( 'd-m-Y H:i:s' );
// пишем в мету юзера текущее время
add_user_meta( $user_id, '_test_period_start_date', $current_date, true );
$user = new WP_User( $user_id );
// добавляем роль участника
$user->add_role( 'contributor' );
}
// проверка завершения тестового периода
function check_user_test_period() {
$current_date = date( 'd-m-Y H:i:s' );
$user_id = get_current_user_id();
$test_period_start_date = get_user_meta( $user_id, '_test_period_start_date', true );
$user = new WP_User( $user_id );
// проверяем, что текущая дата больше тестового периода
if ( strtotime( $current_date ) > strtotime( $test_period_start_date . ' + 7 days' ) ) {
// убираем роль участника
$user->remove_role( 'contributor' );
}
}
Писал без тестов, может что-то не работать и логику нужно доработать по необходимости