이것은 Simon Cossar팀이 사용하는 것과 동일한 함수입니다. 이 링크를 참고해 주세요.
저도 동일한 함수를 사용했는데 도움이 필요합니다. 코드도 함께 게시했으며 위 메시지를 참고해 주세요.
다음은 제 멤버십 레벨 업데이트 코드입니다.
function action_pmpro_after_change_membership_level( $level_id, $user_id, $cancel_level ) {
$group_name = dcpmp_get_level_for_id( $level_id );
if ( is_wp_error( $group_name ) ) {
return null;
}
$groupname = DiscourseUtilities::get_discourse_user( $user_id, false );
// 사용자를 제거합니다.
$result = DiscourseUtilities::remove_user_from_discourse_group( $user_id, $groupname );
if ( ! empty( $result->success ) ) {
// 멤버십 레벨 메타데이터 키를 삭제합니다.
delete_user_meta( $user_id, "dcpmp_group_{$groupname}" );
}
$result1 = DiscourseUtilities::add_user_to_discourse_group( $user_id, $group_name );
if ( ! empty( $result1->success ) ) {
// 사용자가 그룹에 추가된 경우, 나중에 사용할 수 있는 메타데이터 키/값 쌍을 추가합니다.
add_user_meta( $user_id, "dcpmp_group_{$group_name}", 1, true );
}
return $result;
return $result1;
}
add_action( 'pmpro_after_change_membership_level', 'action_pmpro_after_change_membership_level', 10, 3 );