Нужно создать свойство checkbox UF_SUBSCR, вывести в форме регистрации и вставить этот код в init.php

AddEventHandler("main", "OnAfterUserUpdate", Array("EventHandlerClass", "OnAfterUserUpdateHandler"));
class EventHandlerClass
{
	function OnAfterUserUpdateHandler(&$arFields)
    {
		
		global $USER;
		 // условие атоподписки, если пользователь подтверждает регистрацию или если admin редактирует пользователя
		if(
			($arFields['RESULT'] && $_GET['confirm_user_id'] > 0 && $_GET['confirm_code'] && $_GET['confirm_user_id'] == $arFields['ID']) || 
			$USER->IsAdmin()
		){	
				// поиск польщователя
				$filter = Array(
					"ID" => $arFields['ID'],
				);
				
				// выбираем EMAIL и свойство UF_SUBSCR
				$rsUsers = CUser::GetList(
					($by="id"), 
					($order="desc"), 
					$filter,
					array(
						'FIELDS' => array('ID', 'EMAIL'),
						'SELECT' => array('UF_SUBSCR')
					)
				);
				if($usParam = $rsUsers->Fetch()){

					CModule::IncludeModule("subscribe");
					$subscr = new CSubscription;
					
					// если свойство заполнено то полписываем
					if($usParam['UF_SUBSCR']){
					
						// поиск подписчика по mail
						$subscription = CSubscription::GetByEmail($usParam['EMAIL']);
						
						if($arSub = $subscription->Fetch()){			
							// если майл есть в подписчиках, то активируем подписку
							$res = $subscr->Update($arSub['ID'], array(
								"ACTIVE"		=> "Y",
								"USER_ID"		=> $usParam['ID'],
								"RUB_ID"		=> array(G_SUBSCRIPTION),// id подписки
								)
							);
						
						}else{
							// если нет подписки, то добавляем его
							$arFieldFiltr = Array(
								"RUB_ID"		=> array(G_SUBSCRIPTION),// id подписки
								"USER_ID"		=> $usParam['ID'],
								"FORMAT"		=> "text",
								"EMAIL"			=> $usParam['EMAIL'],
								"ACTIVE"		=> "Y",
								"SEND_CONFIRM"	=> 'N'
							);
							$ID = $subscr->Add($arFieldFiltr);							
							// поиск подписчика по mail, что бы получить код потверждения
							$subscription = CSubscription::GetByEmail($usParam['EMAIL']);				
							if($arSub = $subscription->Fetch()){		
								$arResult['DATA_SUB_USSER']	= $arSub;
							}
							
							// подтверждаем подписку
							$res = $subscr->Update($ID, 
								array(
									"CONFIRMED"		=> "Y",
									"CONFIRM_CODE"	=> $arResult['DATA_SUB_USSER']["CONFIRM_CODE"]
								)
							);
							unset($arResult);
						}
					}else{
						// если при обновлении пользователя свойство пустое, то деактивируем подписчика 
						$subscription = CSubscription::GetByEmail($usParam['EMAIL']);
						if($arSub = $subscription->Fetch()){			
							// активируем подписку
							$res = $subscr->Update($arSub['ID'], array(
								"ACTIVE"		=> "N",
								)
							);						
						}					
					}
				}
			}
	}
}